@tolle_/tolle-ui 18.2.24 → 18.2.25
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.
- package/esm2022/lib/accordion-item.component.mjs +17 -5
- package/esm2022/lib/alert-dialog-dynamic.component.mjs +1 -1
- package/esm2022/lib/alert-dialog.component.mjs +48 -10
- package/esm2022/lib/alert-dialog.service.mjs +13 -2
- package/esm2022/lib/alert.component.mjs +5 -5
- package/esm2022/lib/avatar.component.mjs +30 -9
- package/esm2022/lib/badge.component.mjs +41 -15
- package/esm2022/lib/breadcrumb-link.component.mjs +5 -5
- package/esm2022/lib/button.component.mjs +14 -3
- package/esm2022/lib/calendar.component.mjs +99 -17
- package/esm2022/lib/card.component.mjs +29 -9
- package/esm2022/lib/carousel/carousel.component.mjs +19 -3
- package/esm2022/lib/checkbox.component.mjs +44 -21
- package/esm2022/lib/collapsible.component.mjs +12 -4
- package/esm2022/lib/country-selector.component.mjs +140 -20
- package/esm2022/lib/data-table.component.mjs +27 -16
- package/esm2022/lib/date-picker.component.mjs +24 -4
- package/esm2022/lib/date-range-picker.component.mjs +37 -9
- package/esm2022/lib/dropdown-item.component.mjs +19 -5
- package/esm2022/lib/dropdown-label.component.mjs +3 -3
- package/esm2022/lib/dropdown-menu.component.mjs +3 -3
- package/esm2022/lib/dropdown-separator.component.mjs +3 -3
- package/esm2022/lib/dropdown-trigger.directive.mjs +7 -3
- package/esm2022/lib/empty-state.component.mjs +3 -3
- package/esm2022/lib/hover-card.component.mjs +4 -2
- package/esm2022/lib/input.component.mjs +7 -5
- package/esm2022/lib/label.component.mjs +2 -2
- package/esm2022/lib/masked-input.component.mjs +3 -3
- package/esm2022/lib/modal.component.mjs +58 -22
- package/esm2022/lib/modal.service.mjs +13 -1
- package/esm2022/lib/multi-select.component.mjs +228 -20
- package/esm2022/lib/otp.component.mjs +6 -3
- package/esm2022/lib/pagination.component.mjs +19 -9
- package/esm2022/lib/progress.component.mjs +8 -5
- package/esm2022/lib/radio-group.component.mjs +51 -3
- package/esm2022/lib/radio-item.component.mjs +46 -8
- package/esm2022/lib/radio-service.mjs +60 -1
- package/esm2022/lib/range-calendar.component.mjs +317 -98
- package/esm2022/lib/resizable-panel.component.mjs +5 -4
- package/esm2022/lib/scroll-area.component.mjs +5 -5
- package/esm2022/lib/segment.component.mjs +73 -7
- package/esm2022/lib/select-item.component.mjs +20 -2
- package/esm2022/lib/select-separator.component.mjs +3 -3
- package/esm2022/lib/select.component.mjs +221 -14
- package/esm2022/lib/separator.component.mjs +12 -6
- package/esm2022/lib/sheet-ref.mjs +8 -1
- package/esm2022/lib/sheet-wrapper.component.mjs +27 -11
- package/esm2022/lib/sheet.component.mjs +57 -16
- package/esm2022/lib/sheet.service.mjs +5 -1
- package/esm2022/lib/sidebar.component.mjs +73 -15
- package/esm2022/lib/skeleton.component.mjs +19 -5
- package/esm2022/lib/switch.component.mjs +59 -53
- package/esm2022/lib/tabs.component.mjs +75 -13
- package/esm2022/lib/tag-input.component.mjs +6 -3
- package/esm2022/lib/textarea.component.mjs +9 -7
- package/esm2022/lib/theme.service.mjs +114 -138
- package/esm2022/lib/toaster.component.mjs +19 -9
- package/esm2022/lib/toggle-group.component.mjs +76 -4
- package/esm2022/lib/tolle-config.mjs +1 -1
- package/esm2022/lib/tooltip.directive.mjs +41 -17
- package/esm2022/lib/utils/color.mjs +324 -0
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/tolle-ui.mjs +2645 -637
- package/fesm2022/tolle-ui.mjs.map +1 -1
- package/lib/alert-dialog.component.d.ts +10 -1
- package/lib/avatar.component.d.ts +16 -3
- package/lib/badge.component.d.ts +17 -5
- package/lib/button.component.d.ts +10 -3
- package/lib/calendar.component.d.ts +21 -3
- package/lib/card.component.d.ts +6 -0
- package/lib/carousel/carousel.component.d.ts +1 -0
- package/lib/checkbox.component.d.ts +12 -4
- package/lib/country-selector.component.d.ts +11 -2
- package/lib/date-picker.component.d.ts +1 -0
- package/lib/date-range-picker.component.d.ts +4 -1
- package/lib/dropdown-item.component.d.ts +4 -2
- package/lib/dropdown-trigger.directive.d.ts +1 -1
- package/lib/modal.component.d.ts +6 -0
- package/lib/multi-select.component.d.ts +20 -0
- package/lib/otp.component.d.ts +1 -0
- package/lib/progress.component.d.ts +1 -0
- package/lib/radio-group.component.d.ts +8 -0
- package/lib/radio-item.component.d.ts +10 -4
- package/lib/radio-service.d.ts +29 -0
- package/lib/range-calendar.component.d.ts +33 -4
- package/lib/segment.component.d.ts +13 -0
- package/lib/select-item.component.d.ts +4 -1
- package/lib/select.component.d.ts +20 -0
- package/lib/separator.component.d.ts +2 -0
- package/lib/sheet-wrapper.component.d.ts +4 -0
- package/lib/sheet.component.d.ts +10 -1
- package/lib/sidebar.component.d.ts +2 -0
- package/lib/skeleton.component.d.ts +9 -3
- package/lib/switch.component.d.ts +13 -20
- package/lib/tabs.component.d.ts +11 -1
- package/lib/theme.service.d.ts +21 -6
- package/lib/toaster.component.d.ts +2 -2
- package/lib/toggle-group.component.d.ts +20 -2
- package/lib/toggle.component.d.ts +1 -1
- package/lib/tolle-config.d.ts +8 -0
- package/lib/tooltip.directive.d.ts +3 -0
- package/lib/utils/color.d.ts +87 -0
- package/package.json +4 -1
- package/preset.js +28 -0
- package/public-api.d.ts +1 -0
- package/registry/docs-content.json +4214 -0
- package/registry/llms-full.txt +1599 -0
- package/registry/llms.txt +83 -0
- package/registry/manifest.json +4925 -0
- package/registry/r/accordion-item.json +21 -0
- package/registry/r/accordion.json +23 -0
- package/registry/r/alert-dialog-dynamic.json +31 -0
- package/registry/r/alert-dialog.json +26 -0
- package/registry/r/alert.json +23 -0
- package/registry/r/aspect-ratio.json +21 -0
- package/registry/r/avatar-fallback.json +16 -0
- package/registry/r/avatar.json +23 -0
- package/registry/r/badge.json +23 -0
- package/registry/r/breadcrumb-item.json +16 -0
- package/registry/r/breadcrumb-link.json +16 -0
- package/registry/r/breadcrumb-separator.json +16 -0
- package/registry/r/breadcrumb.json +21 -0
- package/registry/r/button-group.json +21 -0
- package/registry/r/button.json +23 -0
- package/registry/r/calendar.json +23 -0
- package/registry/r/card.json +21 -0
- package/registry/r/carousel.json +18 -0
- package/registry/r/checkbox.json +23 -0
- package/registry/r/collapsible.json +21 -0
- package/registry/r/context-menu-trigger.json +23 -0
- package/registry/r/context-menu.json +28 -0
- package/registry/r/country-selector.json +31 -0
- package/registry/r/data-table.json +38 -0
- package/registry/r/date-picker.json +27 -0
- package/registry/r/date-range-picker.json +32 -0
- package/registry/r/dropdown-item.json +21 -0
- package/registry/r/dropdown-label.json +16 -0
- package/registry/r/dropdown-menu.json +16 -0
- package/registry/r/dropdown-separator.json +16 -0
- package/registry/r/dropdown-trigger.json +20 -0
- package/registry/r/empty-state.json +23 -0
- package/registry/r/hover-card.json +23 -0
- package/registry/r/input.json +21 -0
- package/registry/r/label.json +21 -0
- package/registry/r/masked-input.json +21 -0
- package/registry/r/modal.json +36 -0
- package/registry/r/multi-select.json +33 -0
- package/registry/r/otp-group.json +16 -0
- package/registry/r/otp-slot.json +21 -0
- package/registry/r/otp.json +21 -0
- package/registry/r/pagination.json +32 -0
- package/registry/r/phone-number-input.json +34 -0
- package/registry/r/popover-content.json +21 -0
- package/registry/r/popover.json +18 -0
- package/registry/r/progress.json +21 -0
- package/registry/r/radio-group.json +26 -0
- package/registry/r/radio-item.json +26 -0
- package/registry/r/range-calendar.json +28 -0
- package/registry/r/resizable-panel-item.json +23 -0
- package/registry/r/resizable-panel.json +23 -0
- package/registry/r/resizable.json +21 -0
- package/registry/r/scroll-area.json +21 -0
- package/registry/r/segment.json +21 -0
- package/registry/r/select-group.json +21 -0
- package/registry/r/select-item.json +26 -0
- package/registry/r/select-separator.json +21 -0
- package/registry/r/select.json +31 -0
- package/registry/r/separator.json +21 -0
- package/registry/r/sheet-wrapper.json +31 -0
- package/registry/r/sheet.json +21 -0
- package/registry/r/sidebar.json +21 -0
- package/registry/r/skeleton.json +23 -0
- package/registry/r/slider.json +21 -0
- package/registry/r/switch.json +23 -0
- package/registry/r/tabs.json +23 -0
- package/registry/r/tag-input.json +25 -0
- package/registry/r/textarea.json +21 -0
- package/registry/r/toaster.json +26 -0
- package/registry/r/toggle-group.json +25 -0
- package/registry/r/toggle.json +23 -0
- package/registry/r/tolle-cell.json +16 -0
- package/registry/r/tooltip.json +23 -0
- package/registry/registry.json +1540 -0
- package/theme.css +56 -1
|
@@ -147,13 +147,13 @@ export class SidebarComponent {
|
|
|
147
147
|
[disabled]="collapsed"
|
|
148
148
|
[attr.aria-expanded]="isParentExpanded(group, item, gIndex, i)"
|
|
149
149
|
[class]="cn(
|
|
150
|
-
'group w-full relative flex items-center rounded-md px-3 py-2 text-sm font-medium transition-colors',
|
|
150
|
+
'group w-full relative flex items-center rounded-md px-3 py-2 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',
|
|
151
151
|
'hover:bg-accent hover:text-accent-foreground',
|
|
152
152
|
isParentExpanded(group, item, gIndex, i) ? 'text-foreground bg-accent/50' : 'text-muted-foreground',
|
|
153
153
|
collapsed ? 'justify-center' : 'justify-start'
|
|
154
154
|
)"
|
|
155
155
|
>
|
|
156
|
-
<i [class]="cn(
|
|
156
|
+
<i aria-hidden="true" [class]="cn(
|
|
157
157
|
item.icon || 'ri-circle-fill',
|
|
158
158
|
'h-4 w-4 text-lg shrink-0 transition-transform',
|
|
159
159
|
!collapsed && 'group-hover:scale-110'
|
|
@@ -189,8 +189,9 @@ export class SidebarComponent {
|
|
|
189
189
|
<button
|
|
190
190
|
type="button"
|
|
191
191
|
(click)="toggleChild(group, item, subItem, gIndex, i, j); $event.stopPropagation()"
|
|
192
|
+
[attr.aria-expanded]="isChildExpanded(group, item, subItem, gIndex, i, j)"
|
|
192
193
|
[class]="cn(
|
|
193
|
-
'group w-full relative flex items-center rounded-md px-3 py-1.5 text-sm font-medium transition-colors',
|
|
194
|
+
'group w-full relative flex items-center rounded-md px-3 py-1.5 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',
|
|
194
195
|
'hover:bg-accent hover:text-accent-foreground text-muted-foreground',
|
|
195
196
|
isChildExpanded(group, item, subItem, gIndex, i, j) ? 'text-foreground bg-accent/30' : ''
|
|
196
197
|
)"
|
|
@@ -214,7 +215,7 @@ export class SidebarComponent {
|
|
|
214
215
|
[routerLink]="grandChild.url"
|
|
215
216
|
[routerLinkActive]="activeClasses"
|
|
216
217
|
[routerLinkActiveOptions]="{ exact: true }"
|
|
217
|
-
class="flex items-center gap-2 hover:no-underline rounded-md px-3 py-1.5 text-sm transition-colors hover:bg-accent hover:text-accent-foreground text-muted-foreground whitespace-nowrap"
|
|
218
|
+
class="flex items-center gap-2 hover:no-underline rounded-md px-3 py-1.5 text-sm transition-colors hover:bg-accent hover:text-accent-foreground text-muted-foreground whitespace-nowrap focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
|
|
218
219
|
>
|
|
219
220
|
<span class="w-1.5 h-1.5 rounded-full bg-border/70 shrink-0"></span>
|
|
220
221
|
<span class="truncate">{{ grandChild.title }}</span>
|
|
@@ -231,7 +232,7 @@ export class SidebarComponent {
|
|
|
231
232
|
[routerLink]="subItem.url"
|
|
232
233
|
[routerLinkActive]="activeClasses"
|
|
233
234
|
[routerLinkActiveOptions]="{ exact: true }"
|
|
234
|
-
class="flex items-center gap-2 hover:no-underline rounded-md px-3 py-1.5 text-sm transition-colors hover:bg-accent hover:text-accent-foreground text-muted-foreground whitespace-nowrap"
|
|
235
|
+
class="flex items-center gap-2 hover:no-underline rounded-md px-3 py-1.5 text-sm transition-colors hover:bg-accent hover:text-accent-foreground text-muted-foreground whitespace-nowrap focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
|
|
235
236
|
>
|
|
236
237
|
<span class="w-1.5 h-1.5 rounded-full bg-border shrink-0"></span>
|
|
237
238
|
<span class="truncate">{{ subItem.title }}</span>
|
|
@@ -243,6 +244,34 @@ export class SidebarComponent {
|
|
|
243
244
|
</div>
|
|
244
245
|
</div>
|
|
245
246
|
}
|
|
247
|
+
@else if (item.external) {
|
|
248
|
+
<!-- External / static-file Item (opens in a new tab) -->
|
|
249
|
+
<a
|
|
250
|
+
[href]="item.url"
|
|
251
|
+
target="_blank"
|
|
252
|
+
rel="noopener noreferrer"
|
|
253
|
+
[class]="cn(
|
|
254
|
+
'group relative hover:no-underline flex items-center rounded-md px-3 py-2 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',
|
|
255
|
+
'hover:bg-accent hover:text-accent-foreground text-muted-foreground',
|
|
256
|
+
collapsed ? 'justify-center' : 'justify-start'
|
|
257
|
+
)"
|
|
258
|
+
>
|
|
259
|
+
<i aria-hidden="true" [class]="cn(
|
|
260
|
+
item.icon || 'ri-circle-fill',
|
|
261
|
+
'h-4 w-4 text-lg shrink-0 transition-transform',
|
|
262
|
+
!collapsed && 'group-hover:scale-110'
|
|
263
|
+
)"></i>
|
|
264
|
+
<span [class]="cn(
|
|
265
|
+
'truncate transition-all duration-300',
|
|
266
|
+
collapsed ? 'opacity-0 w-0 ml-0' : 'opacity-100 w-auto ml-3'
|
|
267
|
+
)">
|
|
268
|
+
{{ item.title }}
|
|
269
|
+
</span>
|
|
270
|
+
@if (!collapsed) {
|
|
271
|
+
<i aria-hidden="true" class="ri-external-link-line ml-auto text-xs opacity-50 transition-opacity group-hover:opacity-100"></i>
|
|
272
|
+
}
|
|
273
|
+
</a>
|
|
274
|
+
}
|
|
246
275
|
@else {
|
|
247
276
|
<!-- Standard Top-Level Item -->
|
|
248
277
|
<a
|
|
@@ -250,12 +279,12 @@ export class SidebarComponent {
|
|
|
250
279
|
[routerLinkActive]="activeClasses"
|
|
251
280
|
[routerLinkActiveOptions]="{ exact: true }"
|
|
252
281
|
[class]="cn(
|
|
253
|
-
'group relative hover:no-underline flex items-center rounded-md px-3 py-2 text-sm font-medium transition-colors',
|
|
282
|
+
'group relative hover:no-underline flex items-center rounded-md px-3 py-2 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',
|
|
254
283
|
'hover:bg-accent hover:text-accent-foreground text-muted-foreground',
|
|
255
284
|
collapsed ? 'justify-center' : 'justify-start'
|
|
256
285
|
)"
|
|
257
286
|
>
|
|
258
|
-
<i [class]="cn(
|
|
287
|
+
<i aria-hidden="true" [class]="cn(
|
|
259
288
|
item.icon || 'ri-circle-fill',
|
|
260
289
|
'h-4 w-4 text-lg shrink-0 transition-transform',
|
|
261
290
|
!collapsed && 'group-hover:scale-110'
|
|
@@ -316,13 +345,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
316
345
|
[disabled]="collapsed"
|
|
317
346
|
[attr.aria-expanded]="isParentExpanded(group, item, gIndex, i)"
|
|
318
347
|
[class]="cn(
|
|
319
|
-
'group w-full relative flex items-center rounded-md px-3 py-2 text-sm font-medium transition-colors',
|
|
348
|
+
'group w-full relative flex items-center rounded-md px-3 py-2 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',
|
|
320
349
|
'hover:bg-accent hover:text-accent-foreground',
|
|
321
350
|
isParentExpanded(group, item, gIndex, i) ? 'text-foreground bg-accent/50' : 'text-muted-foreground',
|
|
322
351
|
collapsed ? 'justify-center' : 'justify-start'
|
|
323
352
|
)"
|
|
324
353
|
>
|
|
325
|
-
<i [class]="cn(
|
|
354
|
+
<i aria-hidden="true" [class]="cn(
|
|
326
355
|
item.icon || 'ri-circle-fill',
|
|
327
356
|
'h-4 w-4 text-lg shrink-0 transition-transform',
|
|
328
357
|
!collapsed && 'group-hover:scale-110'
|
|
@@ -358,8 +387,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
358
387
|
<button
|
|
359
388
|
type="button"
|
|
360
389
|
(click)="toggleChild(group, item, subItem, gIndex, i, j); $event.stopPropagation()"
|
|
390
|
+
[attr.aria-expanded]="isChildExpanded(group, item, subItem, gIndex, i, j)"
|
|
361
391
|
[class]="cn(
|
|
362
|
-
'group w-full relative flex items-center rounded-md px-3 py-1.5 text-sm font-medium transition-colors',
|
|
392
|
+
'group w-full relative flex items-center rounded-md px-3 py-1.5 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',
|
|
363
393
|
'hover:bg-accent hover:text-accent-foreground text-muted-foreground',
|
|
364
394
|
isChildExpanded(group, item, subItem, gIndex, i, j) ? 'text-foreground bg-accent/30' : ''
|
|
365
395
|
)"
|
|
@@ -383,7 +413,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
383
413
|
[routerLink]="grandChild.url"
|
|
384
414
|
[routerLinkActive]="activeClasses"
|
|
385
415
|
[routerLinkActiveOptions]="{ exact: true }"
|
|
386
|
-
class="flex items-center gap-2 hover:no-underline rounded-md px-3 py-1.5 text-sm transition-colors hover:bg-accent hover:text-accent-foreground text-muted-foreground whitespace-nowrap"
|
|
416
|
+
class="flex items-center gap-2 hover:no-underline rounded-md px-3 py-1.5 text-sm transition-colors hover:bg-accent hover:text-accent-foreground text-muted-foreground whitespace-nowrap focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
|
|
387
417
|
>
|
|
388
418
|
<span class="w-1.5 h-1.5 rounded-full bg-border/70 shrink-0"></span>
|
|
389
419
|
<span class="truncate">{{ grandChild.title }}</span>
|
|
@@ -400,7 +430,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
400
430
|
[routerLink]="subItem.url"
|
|
401
431
|
[routerLinkActive]="activeClasses"
|
|
402
432
|
[routerLinkActiveOptions]="{ exact: true }"
|
|
403
|
-
class="flex items-center gap-2 hover:no-underline rounded-md px-3 py-1.5 text-sm transition-colors hover:bg-accent hover:text-accent-foreground text-muted-foreground whitespace-nowrap"
|
|
433
|
+
class="flex items-center gap-2 hover:no-underline rounded-md px-3 py-1.5 text-sm transition-colors hover:bg-accent hover:text-accent-foreground text-muted-foreground whitespace-nowrap focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
|
|
404
434
|
>
|
|
405
435
|
<span class="w-1.5 h-1.5 rounded-full bg-border shrink-0"></span>
|
|
406
436
|
<span class="truncate">{{ subItem.title }}</span>
|
|
@@ -412,6 +442,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
412
442
|
</div>
|
|
413
443
|
</div>
|
|
414
444
|
}
|
|
445
|
+
@else if (item.external) {
|
|
446
|
+
<!-- External / static-file Item (opens in a new tab) -->
|
|
447
|
+
<a
|
|
448
|
+
[href]="item.url"
|
|
449
|
+
target="_blank"
|
|
450
|
+
rel="noopener noreferrer"
|
|
451
|
+
[class]="cn(
|
|
452
|
+
'group relative hover:no-underline flex items-center rounded-md px-3 py-2 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',
|
|
453
|
+
'hover:bg-accent hover:text-accent-foreground text-muted-foreground',
|
|
454
|
+
collapsed ? 'justify-center' : 'justify-start'
|
|
455
|
+
)"
|
|
456
|
+
>
|
|
457
|
+
<i aria-hidden="true" [class]="cn(
|
|
458
|
+
item.icon || 'ri-circle-fill',
|
|
459
|
+
'h-4 w-4 text-lg shrink-0 transition-transform',
|
|
460
|
+
!collapsed && 'group-hover:scale-110'
|
|
461
|
+
)"></i>
|
|
462
|
+
<span [class]="cn(
|
|
463
|
+
'truncate transition-all duration-300',
|
|
464
|
+
collapsed ? 'opacity-0 w-0 ml-0' : 'opacity-100 w-auto ml-3'
|
|
465
|
+
)">
|
|
466
|
+
{{ item.title }}
|
|
467
|
+
</span>
|
|
468
|
+
@if (!collapsed) {
|
|
469
|
+
<i aria-hidden="true" class="ri-external-link-line ml-auto text-xs opacity-50 transition-opacity group-hover:opacity-100"></i>
|
|
470
|
+
}
|
|
471
|
+
</a>
|
|
472
|
+
}
|
|
415
473
|
@else {
|
|
416
474
|
<!-- Standard Top-Level Item -->
|
|
417
475
|
<a
|
|
@@ -419,12 +477,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
419
477
|
[routerLinkActive]="activeClasses"
|
|
420
478
|
[routerLinkActiveOptions]="{ exact: true }"
|
|
421
479
|
[class]="cn(
|
|
422
|
-
'group relative hover:no-underline flex items-center rounded-md px-3 py-2 text-sm font-medium transition-colors',
|
|
480
|
+
'group relative hover:no-underline flex items-center rounded-md px-3 py-2 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',
|
|
423
481
|
'hover:bg-accent hover:text-accent-foreground text-muted-foreground',
|
|
424
482
|
collapsed ? 'justify-center' : 'justify-start'
|
|
425
483
|
)"
|
|
426
484
|
>
|
|
427
|
-
<i [class]="cn(
|
|
485
|
+
<i aria-hidden="true" [class]="cn(
|
|
428
486
|
item.icon || 'ri-circle-fill',
|
|
429
487
|
'h-4 w-4 text-lg shrink-0 transition-transform',
|
|
430
488
|
!collapsed && 'group-hover:scale-110'
|
|
@@ -457,4 +515,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
457
515
|
}], variant: [{
|
|
458
516
|
type: Input
|
|
459
517
|
}] } });
|
|
460
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3NpZGViYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7OztBQW1NaEMsTUFBTSxPQUFPLGdCQUFnQjtJQUNsQixLQUFLLEdBQW1CLEVBQUUsQ0FBQztJQUMzQixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLEtBQUssR0FBRyxFQUFFLENBQUM7SUFFcEI7Ozs7OztPQU1HO0lBQ00sT0FBTyxHQUFrRCxTQUFTLENBQUM7SUFFNUUsZUFBZSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDcEMsZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUVsQixFQUFFLEdBQUcsRUFBRSxDQUFDO0lBRTNCLElBQUksYUFBYTtRQUNmLE9BQU8sRUFBRSxDQUNQLG1CQUFtQjtRQUNuQixnRkFBZ0Y7UUFDaEYsSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksc0ZBQXNGO1FBRXBILDZCQUE2QjtRQUM3QixJQUFJLENBQUMsT0FBTyxLQUFLLFdBQVcsSUFBSSw4REFBOEQ7UUFFOUYsOENBQThDO1FBQzlDLElBQUksQ0FBQyxPQUFPLEtBQUssT0FBTyxJQUFJLGtDQUFrQztRQUU5RCxvQkFBb0I7UUFDcEIsSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksaUdBQWlHLENBQ2hJLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFLVDs4QkFRUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBU0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbi8vIC0tLSBJbnRlcmZhY2VzIC0tLVxuZXhwb3J0IHR5cGUgU2lkZWJhckl0ZW0gPSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHVybD86IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgaXNBY3RpdmU/OiBib29sZWFuO1xuICBpdGVtcz86IFNpZGViYXJJdGVtW107XG4gIGlkPzogc3RyaW5nO1xuICBleHBhbmRlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIFNpZGViYXJHcm91cCA9IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgaXRlbXM6IFNpZGViYXJJdGVtW107XG4gIGlkPzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1zaWRlYmFyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YXNpZGUgW2NsYXNzXT1cImNuKFxuICAgICAgJ2ZsZXggZmxleC1jb2wgaC1mdWxsIGJnLWJhY2tncm91bmQgdHJhbnNpdGlvbi1bd2lkdGhdIGR1cmF0aW9uLTMwMCBlYXNlLWluLW91dCBzaHJpbmstMCBvdmVyZmxvdy1oaWRkZW4nLFxuICAgICAgY29sbGFwc2VkID8gJ3ctMTYnIDogJ3ctNjQnLFxuICAgICAgY2xhc3NcbiAgICApXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBoLTE0IHNocmluay0wIGl0ZW1zLWNlbnRlciBweC0zIG92ZXJmbG93LWhpZGRlbiB3aGl0ZXNwYWNlLW5vd3JhcFwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaGVhZGVyXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xIG1pbi1oLTAgb3ZlcmZsb3cteS1hdXRvIG92ZXJmbG93LXgtaGlkZGVuIHB5LTQgcHgtM1wiPlxuXG4gICAgICAgIEBmb3IgKGdyb3VwIG9mIGl0ZW1zOyB0cmFjayBncm91cC5pZCB8fCBncm91cC50aXRsZSB8fCAkaW5kZXg7IGxldCBnSW5kZXggPSAkaW5kZXgpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNlwiPlxuXG4gICAgICAgICAgICA8ZGl2IFtjbGFzc109XCJjbihcbiAgICAgICAgICAgICAgJ21iLTIgcHgtMiB0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVyIHRleHQtbXV0ZWQtZm9yZWdyb3VuZC83MCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0yMDAgb3ZlcmZsb3ctaGlkZGVuJyxcbiAgICAgICAgICAgICAgY29sbGFwc2VkID8gJ29wYWNpdHktMCBoLTAgbWItMCBweC0wJyA6ICdvcGFjaXR5LTEwMCBoLWF1dG8nXG4gICAgICAgICAgICApXCI+XG4gICAgICAgICAgICAgIHt7IGdyb3VwLnRpdGxlIH19XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTFcIj5cbiAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBncm91cC5pdGVtczsgdHJhY2sgaXRlbS5pZCB8fCBpdGVtLnRpdGxlIHx8ICRpbmRleDsgbGV0IGkgPSAkaW5kZXgpIHtcblxuICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5pdGVtcyAmJiBpdGVtLml0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgPCEtLSBQYXJlbnQgSXRlbSAoR3JvdXApIC0tPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUGFyZW50KGdyb3VwLCBpdGVtLCBnSW5kZXgsIGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY29sbGFwc2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzUGFyZW50RXhwYW5kZWQoZ3JvdXAsIGl0ZW0sIGdJbmRleCwgaSlcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJjbihcbiAgICAgICAgICAgICAgICAgICAgICAgICdncm91cCB3LWZ1bGwgcmVsYXRpdmUgZmxleCBpdGVtcy1jZW50ZXIgcm91bmRlZC1tZCBweC0zIHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0cmFuc2l0aW9uLWNvbG9ycycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNQYXJlbnRFeHBhbmRlZChncm91cCwgaXRlbSwgZ0luZGV4LCBpKSA/ICd0ZXh0LWZvcmVncm91bmQgYmctYWNjZW50LzUwJyA6ICd0ZXh0LW11dGVkLWZvcmVncm91bmQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VkID8gJ2p1c3RpZnktY2VudGVyJyA6ICdqdXN0aWZ5LXN0YXJ0J1xuICAgICAgICAgICAgICAgICAgICAgIClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmljb24gfHwgJ3JpLWNpcmNsZS1maWxsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2gtNCB3LTQgdGV4dC1sZyBzaHJpbmstMCB0cmFuc2l0aW9uLXRyYW5zZm9ybScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICFjb2xsYXBzZWQgJiYgJ2dyb3VwLWhvdmVyOnNjYWxlLTExMCdcbiAgICAgICAgICAgICAgICAgICAgICAgIClcIj48L2k+XG5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAgICAgICAgICAgICAndHJ1bmNhdGUgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxhcHNlZCA/ICdvcGFjaXR5LTAgdy0wIG1sLTAnIDogJ29wYWNpdHktMTAwIHctYXV0byBtbC0zJ1xuICAgICAgICAgICAgICAgICAgICAgIClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFjb2xsYXBzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtjbGFzc109XCJjbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JpLWFycm93LWRvd24tcy1saW5lIG1sLWF1dG8gdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQYXJlbnRFeHBhbmRlZChncm91cCwgaXRlbSwgZ0luZGV4LCBpKSA/ICdyb3RhdGUtMTgwJyA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICApXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSBTdWJtZW51IEdyaWQgVHJhbnNpdGlvbiAtLT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAgICAgICAgICAgJ2dyaWQgdHJhbnNpdGlvbi1bZ3JpZC10ZW1wbGF0ZS1yb3dzXSBkdXJhdGlvbi0zMDAgZWFzZS1pbi1vdXQnLFxuICAgICAgICAgICAgICAgICAgICAgIGlzUGFyZW50RXhwYW5kZWQoZ3JvdXAsIGl0ZW0sIGdJbmRleCwgaSkgJiYgIWNvbGxhcHNlZCA/ICdncmlkLXJvd3MtWzFmcl0gb3BhY2l0eS0xMDAnIDogJ2dyaWQtcm93cy1bMGZyXSBvcGFjaXR5LTAnXG4gICAgICAgICAgICAgICAgICAgIClcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMSBtdC0xIG1sLTQgYm9yZGVyLWwgYm9yZGVyLWJvcmRlci81MCBwbC0yXCI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoc3ViSXRlbSBvZiBpdGVtLml0ZW1zOyB0cmFjayBzdWJJdGVtLmlkIHx8IHN1Ykl0ZW0udGl0bGUgfHwgJGluZGV4OyBsZXQgaiA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoc3ViSXRlbS5pdGVtcyAmJiBzdWJJdGVtLml0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBHcmFuZGNoaWxkIEl0ZW0gR3JvdXAgKFJlY3Vyc2l2ZS1pc2ggbG9naWMgZm9yIGRlcHRoIDIpIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ2hpbGQoZ3JvdXAsIGl0ZW0sIHN1Ykl0ZW0sIGdJbmRleCwgaSwgaik7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dyb3VwIHctZnVsbCByZWxhdGl2ZSBmbGV4IGl0ZW1zLWNlbnRlciByb3VuZGVkLW1kIHB4LTMgcHktMS41IHRleHQtc20gZm9udC1tZWRpdW0gdHJhbnNpdGlvbi1jb2xvcnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0NoaWxkRXhwYW5kZWQoZ3JvdXAsIGl0ZW0sIHN1Ykl0ZW0sIGdJbmRleCwgaSwgaikgPyAndGV4dC1mb3JlZ3JvdW5kIGJnLWFjY2VudC8zMCcgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LTEuNSBoLTEuNSByb3VuZGVkLWZ1bGwgYmctYm9yZGVyIHNocmluay0wXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWwtMiB0cnVuY2F0ZVwiPnt7IHN1Ykl0ZW0udGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JpLWFycm93LXJpZ2h0LXMtbGluZSBtbC1hdXRvIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMCB0ZXh0LXhzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQ2hpbGRFeHBhbmRlZChncm91cCwgaXRlbSwgc3ViSXRlbSwgZ0luZGV4LCBpLCBqKSA/ICdyb3RhdGUtOTAnIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtjbGFzc109XCJjbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ3JpZCB0cmFuc2l0aW9uLVtncmlkLXRlbXBsYXRlLXJvd3NdIGR1cmF0aW9uLTMwMCBlYXNlLWluLW91dCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNDaGlsZEV4cGFuZGVkKGdyb3VwLCBpdGVtLCBzdWJJdGVtLCBnSW5kZXgsIGksIGopID8gJ2dyaWQtcm93cy1bMWZyXSBvcGFjaXR5LTEwMCcgOiAnZ3JpZC1yb3dzLVswZnJdIG9wYWNpdHktMCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0xIG10LTEgbWwtNCBib3JkZXItbCBib3JkZXItYm9yZGVyLzMwIHBsLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoZ3JhbmRDaGlsZCBvZiBzdWJJdGVtLml0ZW1zOyB0cmFjayBncmFuZENoaWxkLnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cImdyYW5kQ2hpbGQudXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlXT1cImFjdGl2ZUNsYXNzZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cInsgZXhhY3Q6IHRydWUgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGhvdmVyOm5vLXVuZGVybGluZSByb3VuZGVkLW1kIHB4LTMgcHktMS41IHRleHQtc20gdHJhbnNpdGlvbi1jb2xvcnMgaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmQgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHdoaXRlc3BhY2Utbm93cmFwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMS41IGgtMS41IHJvdW5kZWQtZnVsbCBiZy1ib3JkZXIvNzAgc2hyaW5rLTBcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRydW5jYXRlXCI+e3sgZ3JhbmRDaGlsZC50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFN0YW5kYXJkIFN1YiBJdGVtIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwic3ViSXRlbS51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZV09XCJhY3RpdmVDbGFzc2VzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cInsgZXhhY3Q6IHRydWUgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgaG92ZXI6bm8tdW5kZXJsaW5lIHJvdW5kZWQtbWQgcHgtMyBweS0xLjUgdGV4dC1zbSB0cmFuc2l0aW9uLWNvbG9ycyBob3ZlcjpiZy1hY2NlbnQgaG92ZXI6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZCB0ZXh0LW11dGVkLWZvcmVncm91bmQgd2hpdGVzcGFjZS1ub3dyYXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMS41IGgtMS41IHJvdW5kZWQtZnVsbCBiZy1ib3JkZXIgc2hyaW5rLTBcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGVcIj57eyBzdWJJdGVtLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIDwhLS0gU3RhbmRhcmQgVG9wLUxldmVsIEl0ZW0gLS0+XG4gICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJpdGVtLnVybFwiXG4gICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlXT1cImFjdGl2ZUNsYXNzZXNcIlxuICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwieyBleGFjdDogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICdncm91cCByZWxhdGl2ZSBob3Zlcjpuby11bmRlcmxpbmUgZmxleCBpdGVtcy1jZW50ZXIgcm91bmRlZC1tZCBweC0zIHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0cmFuc2l0aW9uLWNvbG9ycycsXG4gICAgICAgICAgICAgICAgICAgICAgJ2hvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCcsXG4gICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VkID8gJ2p1c3RpZnktY2VudGVyJyA6ICdqdXN0aWZ5LXN0YXJ0J1xuICAgICAgICAgICAgICAgICAgICApXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5pY29uIHx8ICdyaS1jaXJjbGUtZmlsbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAnaC00IHctNCB0ZXh0LWxnIHNocmluay0wIHRyYW5zaXRpb24tdHJhbnNmb3JtJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICFjb2xsYXBzZWQgJiYgJ2dyb3VwLWhvdmVyOnNjYWxlLTExMCdcbiAgICAgICAgICAgICAgICAgICAgICApXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAgICAgICAgICAgJ3RydW5jYXRlIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VkID8gJ29wYWNpdHktMCB3LTAgbWwtMCcgOiAnb3BhY2l0eS0xMDAgdy1hdXRvIG1sLTMnXG4gICAgICAgICAgICAgICAgICAgIClcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInNocmluay0wIHAtMyBvdmVyZmxvdy1oaWRkZW4gd2hpdGVzcGFjZS1ub3dyYXBcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Zvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2FzaWRlPlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgOmhvc3QgeyBkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAxMDAlOyB9XG4gICAgYnV0dG9uOmRpc2FibGVkIHsgY3Vyc29yOiBub3QtYWxsb3dlZDsgb3BhY2l0eTogMC42OyB9XG4gICAgKiB7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIFNpZGViYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBpdGVtczogU2lkZWJhckdyb3VwW10gPSBbXTtcbiAgQElucHV0KCkgY29sbGFwc2VkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG5cbiAgLyoqXG4gICAqIFN0eWxpbmcgdmFyaWFudCBmb3IgYWN0aXZlIGl0ZW1zLlxuICAgKiAtIGRlZmF1bHQ6IFNvbGlkIHByaW1hcnkgYmFja2dyb3VuZCwgbGlnaHQgdGV4dCAoTWF0Y2hlcyBCYWRnZSBEZWZhdWx0KVxuICAgKiAtIHNlY29uZGFyeTogU29saWQgc2Vjb25kYXJ5IGJhY2tncm91bmRcbiAgICogLSBnaG9zdDogVHJhbnNwYXJlbnQgYmFja2dyb3VuZCwgYWNjZW50IHRleHQgKFNoYWRjbiBzdGFuZGFyZClcbiAgICogLSBvdXRsaW5lOiBCb3JkZXJlZFxuICAgKi9cbiAgQElucHV0KCkgdmFyaWFudDogJ2RlZmF1bHQnIHwgJ3NlY29uZGFyeScgfCAnZ2hvc3QnIHwgJ291dGxpbmUnID0gJ2RlZmF1bHQnO1xuXG4gIGV4cGFuZGVkUGFyZW50cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBleHBhbmRlZENoaWxkcmVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNuID0gY247XG5cbiAgZ2V0IGFjdGl2ZUNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY24oXG4gICAgICAndHJhbnNpdGlvbi1jb2xvcnMnLFxuICAgICAgLy8gRGVmYXVsdDogU29saWQgUHJpbWFyeSAoQmFkZ2UtbGlrZSkgd2l0aCBsaWdodGVyIG9wYWNpdHkgKDgwJSBpbnN0ZWFkIG9mIDkwJSlcbiAgICAgIHRoaXMudmFyaWFudCA9PT0gJ2RlZmF1bHQnICYmICdiZy1wcmltYXJ5LzgwIHRleHQtcHJpbWFyeS1mb3JlZ3JvdW5kIGhvdmVyOmJnLXByaW1hcnkgaG92ZXI6dGV4dC1wcmltYXJ5LWZvcmVncm91bmQnLFxuXG4gICAgICAvLyBTZWNvbmRhcnk6IFNvbGlkIFNlY29uZGFyeVxuICAgICAgdGhpcy52YXJpYW50ID09PSAnc2Vjb25kYXJ5JyAmJiAnYmctc2Vjb25kYXJ5IHRleHQtc2Vjb25kYXJ5LWZvcmVncm91bmQgaG92ZXI6Ymctc2Vjb25kYXJ5LzgwJyxcblxuICAgICAgLy8gR2hvc3Q6IFN1YnRsZSBiYWNrZ3JvdW5kIChTaWRlYmFyIHN0YW5kYXJkKVxuICAgICAgdGhpcy52YXJpYW50ID09PSAnZ2hvc3QnICYmICdiZy1hY2NlbnQgdGV4dC1hY2NlbnQtZm9yZWdyb3VuZCcsXG5cbiAgICAgIC8vIE91dGxpbmU6IEJvcmRlcmVkXG4gICAgICB0aGlzLnZhcmlhbnQgPT09ICdvdXRsaW5lJyAmJiAnYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctYmFja2dyb3VuZCB0ZXh0LWZvcmVncm91bmQgaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmQnXG4gICAgKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snY29sbGFwc2VkJ10gJiYgdGhpcy5jb2xsYXBzZWQpIHtcbiAgICAgIHRoaXMuY29sbGFwc2VBbGwoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2l0ZW1zJ10pIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZVN0YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0tIFNUQVRFIElOSVQgLS0tXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVN0YXRlKCkge1xuICAgIHRoaXMuY29sbGFwc2VBbGwoKTtcbiAgICBpZiAoIXRoaXMuaXRlbXMpIHJldHVybjtcblxuICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoZ3JvdXAsIGdJbmRleCkgPT4ge1xuICAgICAgZ3JvdXAuaXRlbXMuZm9yRWFjaCgoaXRlbSwgaUluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcmVudElkID0gdGhpcy5nZXRQYXJlbnRJZChncm91cCwgaXRlbSwgZ0luZGV4LCBpSW5kZXgpO1xuXG4gICAgICAgIGlmIChpdGVtLmV4cGFuZGVkKSB7XG4gICAgICAgICAgdGhpcy5leHBhbmRlZFBhcmVudHMuYWRkKHBhcmVudElkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpdGVtLml0ZW1zKSB7XG4gICAgICAgICAgaXRlbS5pdGVtcy5mb3JFYWNoKChzdWJJdGVtLCBzSW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChzdWJJdGVtLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGNoaWxkSWQgPSB0aGlzLmdldENoaWxkSWQoZ3JvdXAsIGl0ZW0sIHN1Ykl0ZW0sIGdJbmRleCwgaUluZGV4LCBzSW5kZXgpO1xuICAgICAgICAgICAgICB0aGlzLmV4cGFuZGVkQ2hpbGRyZW4uYWRkKGNoaWxkSWQpO1xuICAgICAgICAgICAgICB0aGlzLmV4cGFuZGVkUGFyZW50cy5hZGQocGFyZW50SWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIC0tLSBJRCBHRU5FUkFUT1JTIC0tLVxuICBnZXRHcm91cElkKGdyb3VwOiBTaWRlYmFyR3JvdXAsIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBncm91cC5pZCB8fCBncm91cC50aXRsZSB8fCBgZy0ke2luZGV4fWA7XG4gIH1cblxuICBnZXRQYXJlbnRJZChncm91cDogU2lkZWJhckdyb3VwLCBpdGVtOiBTaWRlYmFySXRlbSwgZ0luZGV4OiBudW1iZXIsIGlJbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBncm91cElkID0gdGhpcy5nZXRHcm91cElkKGdyb3VwLCBnSW5kZXgpO1xuICAgIGNvbnN0IGl0ZW1JZCA9IGl0ZW0uaWQgfHwgaXRlbS50aXRsZSB8fCBgcC0ke2lJbmRleH1gO1xuICAgIHJldHVybiBgJHtncm91cElkfV9fJHtpdGVtSWR9YDtcbiAgfVxuXG4gIGdldENoaWxkSWQoZ3JvdXA6IFNpZGViYXJHcm91cCwgcGFyZW50OiBTaWRlYmFySXRlbSwgc3ViSXRlbTogU2lkZWJhckl0ZW0sIGdJbmRleDogbnVtYmVyLCBpSW5kZXg6IG51bWJlciwgc0luZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhcmVudElkID0gdGhpcy5nZXRQYXJlbnRJZChncm91cCwgcGFyZW50LCBnSW5kZXgsIGlJbmRleCk7XG4gICAgY29uc3Qgc3ViSXRlbUlkID0gc3ViSXRlbS5pZCB8fCBzdWJJdGVtLnRpdGxlIHx8IGBjLSR7c0luZGV4fWA7XG4gICAgcmV0dXJuIGAke3BhcmVudElkfV9fJHtzdWJJdGVtSWR9YDtcbiAgfVxuXG4gIC8vIC0tLSBBQ1RJT05TIC0tLVxuICB0b2dnbGVQYXJlbnQoZ3JvdXA6IFNpZGViYXJHcm91cCwgaXRlbTogU2lkZWJhckl0ZW0sIGdJbmRleDogbnVtYmVyLCBpSW5kZXg6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmNvbGxhcHNlZCkgcmV0dXJuO1xuICAgIGNvbnN0IGlkID0gdGhpcy5nZXRQYXJlbnRJZChncm91cCwgaXRlbSwgZ0luZGV4LCBpSW5kZXgpO1xuXG4gICAgY29uc3QgbmV3U2V0ID0gbmV3IFNldCh0aGlzLmV4cGFuZGVkUGFyZW50cyk7XG4gICAgaWYgKG5ld1NldC5oYXMoaWQpKSB7XG4gICAgICBuZXdTZXQuZGVsZXRlKGlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3U2V0LmFkZChpZCk7XG4gICAgfVxuICAgIHRoaXMuZXhwYW5kZWRQYXJlbnRzID0gbmV3U2V0O1xuICB9XG5cbiAgdG9nZ2xlQ2hpbGQoZ3JvdXA6IFNpZGViYXJHcm91cCwgcGFyZW50OiBTaWRlYmFySXRlbSwgc3ViSXRlbTogU2lkZWJhckl0ZW0sIGdJbmRleDogbnVtYmVyLCBpSW5kZXg6IG51bWJlciwgc0luZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBpZCA9IHRoaXMuZ2V0Q2hpbGRJZChncm91cCwgcGFyZW50LCBzdWJJdGVtLCBnSW5kZXgsIGlJbmRleCwgc0luZGV4KTtcblxuICAgIGNvbnN0IG5ld1NldCA9IG5ldyBTZXQodGhpcy5leHBhbmRlZENoaWxkcmVuKTtcbiAgICBpZiAobmV3U2V0LmhhcyhpZCkpIHtcbiAgICAgIG5ld1NldC5kZWxldGUoaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdTZXQuYWRkKGlkKTtcbiAgICB9XG4gICAgdGhpcy5leHBhbmRlZENoaWxkcmVuID0gbmV3U2V0O1xuICB9XG5cbiAgcHJpdmF0ZSBjb2xsYXBzZUFsbCgpIHtcbiAgICB0aGlzLmV4cGFuZGVkUGFyZW50cyA9IG5ldyBTZXQoKTtcbiAgICB0aGlzLmV4cGFuZGVkQ2hpbGRyZW4gPSBuZXcgU2V0KCk7XG4gIH1cblxuICAvLyAtLS0gVEVNUExBVEUgSEVMUEVSUyAtLS1cbiAgaXNQYXJlbnRFeHBhbmRlZChncm91cDogU2lkZWJhckdyb3VwLCBpdGVtOiBTaWRlYmFySXRlbSwgZ0luZGV4OiBudW1iZXIsIGlJbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXhwYW5kZWRQYXJlbnRzLmhhcyh0aGlzLmdldFBhcmVudElkKGdyb3VwLCBpdGVtLCBnSW5kZXgsIGlJbmRleCkpO1xuICB9XG5cbiAgaXNDaGlsZEV4cGFuZGVkKGdyb3VwOiBTaWRlYmFyR3JvdXAsIHBhcmVudDogU2lkZWJhckl0ZW0sIHN1Ykl0ZW06IFNpZGViYXJJdGVtLCBnSW5kZXg6IG51bWJlciwgaUluZGV4OiBudW1iZXIsIHNJbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXhwYW5kZWRDaGlsZHJlbi5oYXModGhpcy5nZXRDaGlsZElkKGdyb3VwLCBwYXJlbnQsIHN1Ykl0ZW0sIGdJbmRleCwgaUluZGV4LCBzSW5kZXgpKTtcbiAgfVxufVxuIl19
|
|
518
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3NpZGViYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7OztBQWtPaEMsTUFBTSxPQUFPLGdCQUFnQjtJQUNsQixLQUFLLEdBQW1CLEVBQUUsQ0FBQztJQUMzQixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLEtBQUssR0FBRyxFQUFFLENBQUM7SUFFcEI7Ozs7OztPQU1HO0lBQ00sT0FBTyxHQUFrRCxTQUFTLENBQUM7SUFFNUUsZUFBZSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDcEMsZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUVsQixFQUFFLEdBQUcsRUFBRSxDQUFDO0lBRTNCLElBQUksYUFBYTtRQUNmLE9BQU8sRUFBRSxDQUNQLG1CQUFtQjtRQUNuQixnRkFBZ0Y7UUFDaEYsSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksc0ZBQXNGO1FBRXBILDZCQUE2QjtRQUM3QixJQUFJLENBQUMsT0FBTyxLQUFLLFdBQVcsSUFBSSw4REFBOEQ7UUFFOUYsOENBQThDO1FBQzlDLElBQUksQ0FBQyxPQUFPLEtBQUssT0FBTyxJQUFJLGtDQUFrQztRQUU5RCxvQkFBb0I7UUFDcEIsSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksaUdBQWlHLENBQ2hJLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrTVQ7OEJBUVEsS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQVNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuXG4vLyAtLS0gSW50ZXJmYWNlcyAtLS1cbmV4cG9ydCB0eXBlIFNpZGViYXJJdGVtID0ge1xuICB0aXRsZTogc3RyaW5nO1xuICB1cmw/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcbiAgaXRlbXM/OiBTaWRlYmFySXRlbVtdO1xuICBpZD86IHN0cmluZztcbiAgZXhwYW5kZWQ/OiBib29sZWFuO1xuICAvKiogUmVuZGVyIGFzIGEgcGxhaW4gYW5jaG9yIHRvIGFuIGV4dGVybmFsIFVSTCAvIHN0YXRpYyBmaWxlIChvcGVucyBpbiBhIG5ldyB0YWIpIGluc3RlYWQgb2YgYSByb3V0ZXIgbGluay4gKi9cbiAgZXh0ZXJuYWw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBTaWRlYmFyR3JvdXAgPSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGl0ZW1zOiBTaWRlYmFySXRlbVtdO1xuICBpZD86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtc2lkZWJhcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJvdXRlck1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGFzaWRlIFtjbGFzc109XCJjbihcbiAgICAgICdmbGV4IGZsZXgtY29sIGgtZnVsbCBiZy1iYWNrZ3JvdW5kIHRyYW5zaXRpb24tW3dpZHRoXSBkdXJhdGlvbi0zMDAgZWFzZS1pbi1vdXQgc2hyaW5rLTAgb3ZlcmZsb3ctaGlkZGVuJyxcbiAgICAgIGNvbGxhcHNlZCA/ICd3LTE2JyA6ICd3LTY0JyxcbiAgICAgIGNsYXNzXG4gICAgKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaC0xNCBzaHJpbmstMCBpdGVtcy1jZW50ZXIgcHgtMyBvdmVyZmxvdy1oaWRkZW4gd2hpdGVzcGFjZS1ub3dyYXBcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2hlYWRlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgtMSBtaW4taC0wIG92ZXJmbG93LXktYXV0byBvdmVyZmxvdy14LWhpZGRlbiBweS00IHB4LTNcIj5cblxuICAgICAgICBAZm9yIChncm91cCBvZiBpdGVtczsgdHJhY2sgZ3JvdXAuaWQgfHwgZ3JvdXAudGl0bGUgfHwgJGluZGV4OyBsZXQgZ0luZGV4ID0gJGluZGV4KSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTZcIj5cblxuICAgICAgICAgICAgPGRpdiBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAgICdtYi0yIHB4LTIgdGV4dC14cyBmb250LXNlbWlib2xkIHVwcGVyY2FzZSB0cmFja2luZy13aWRlciB0ZXh0LW11dGVkLWZvcmVncm91bmQvNzAgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMjAwIG92ZXJmbG93LWhpZGRlbicsXG4gICAgICAgICAgICAgIGNvbGxhcHNlZCA/ICdvcGFjaXR5LTAgaC0wIG1iLTAgcHgtMCcgOiAnb3BhY2l0eS0xMDAgaC1hdXRvJ1xuICAgICAgICAgICAgKVwiPlxuICAgICAgICAgICAgICB7eyBncm91cC50aXRsZSB9fVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0xXCI+XG4gICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgZ3JvdXAuaXRlbXM7IHRyYWNrIGl0ZW0uaWQgfHwgaXRlbS50aXRsZSB8fCAkaW5kZXg7IGxldCBpID0gJGluZGV4KSB7XG5cbiAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uaXRlbXMgJiYgaXRlbS5pdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgIDwhLS0gUGFyZW50IEl0ZW0gKEdyb3VwKSAtLT5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVBhcmVudChncm91cCwgaXRlbSwgZ0luZGV4LCBpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbGxhcHNlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc1BhcmVudEV4cGFuZGVkKGdyb3VwLCBpdGVtLCBnSW5kZXgsIGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAgICAgICAgICAgICAnZ3JvdXAgdy1mdWxsIHJlbGF0aXZlIGZsZXggaXRlbXMtY2VudGVyIHJvdW5kZWQtbWQgcHgtMyBweS0yIHRleHQtc20gZm9udC1tZWRpdW0gdHJhbnNpdGlvbi1jb2xvcnMgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2hvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzUGFyZW50RXhwYW5kZWQoZ3JvdXAsIGl0ZW0sIGdJbmRleCwgaSkgPyAndGV4dC1mb3JlZ3JvdW5kIGJnLWFjY2VudC81MCcgOiAndGV4dC1tdXRlZC1mb3JlZ3JvdW5kJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxhcHNlZCA/ICdqdXN0aWZ5LWNlbnRlcicgOiAnanVzdGlmeS1zdGFydCdcbiAgICAgICAgICAgICAgICAgICAgICApXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtjbGFzc109XCJjbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5pY29uIHx8ICdyaS1jaXJjbGUtZmlsbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdoLTQgdy00IHRleHQtbGcgc2hyaW5rLTAgdHJhbnNpdGlvbi10cmFuc2Zvcm0nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAhY29sbGFwc2VkICYmICdncm91cC1ob3ZlcjpzY2FsZS0xMTAnXG4gICAgICAgICAgICAgICAgICAgICAgICApXCI+PC9pPlxuXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3RydW5jYXRlIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xsYXBzZWQgPyAnb3BhY2l0eS0wIHctMCBtbC0wJyA6ICdvcGFjaXR5LTEwMCB3LWF1dG8gbWwtMydcbiAgICAgICAgICAgICAgICAgICAgICApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgICAgICAgQGlmICghY29sbGFwc2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdyaS1hcnJvdy1kb3duLXMtbGluZSBtbC1hdXRvIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzUGFyZW50RXhwYW5kZWQoZ3JvdXAsIGl0ZW0sIGdJbmRleCwgaSkgPyAncm90YXRlLTE4MCcgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gU3VibWVudSBHcmlkIFRyYW5zaXRpb24gLS0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICdncmlkIHRyYW5zaXRpb24tW2dyaWQtdGVtcGxhdGUtcm93c10gZHVyYXRpb24tMzAwIGVhc2UtaW4tb3V0JyxcbiAgICAgICAgICAgICAgICAgICAgICBpc1BhcmVudEV4cGFuZGVkKGdyb3VwLCBpdGVtLCBnSW5kZXgsIGkpICYmICFjb2xsYXBzZWQgPyAnZ3JpZC1yb3dzLVsxZnJdIG9wYWNpdHktMTAwJyA6ICdncmlkLXJvd3MtWzBmcl0gb3BhY2l0eS0wJ1xuICAgICAgICAgICAgICAgICAgICApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTEgbXQtMSBtbC00IGJvcmRlci1sIGJvcmRlci1ib3JkZXIvNTAgcGwtMlwiPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKHN1Ykl0ZW0gb2YgaXRlbS5pdGVtczsgdHJhY2sgc3ViSXRlbS5pZCB8fCBzdWJJdGVtLnRpdGxlIHx8ICRpbmRleDsgbGV0IGogPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHN1Ykl0ZW0uaXRlbXMgJiYgc3ViSXRlbS5pdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gR3JhbmRjaGlsZCBJdGVtIEdyb3VwIChSZWN1cnNpdmUtaXNoIGxvZ2ljIGZvciBkZXB0aCAyKSAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNoaWxkKGdyb3VwLCBpdGVtLCBzdWJJdGVtLCBnSW5kZXgsIGksIGopOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNDaGlsZEV4cGFuZGVkKGdyb3VwLCBpdGVtLCBzdWJJdGVtLCBnSW5kZXgsIGksIGopXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ3JvdXAgdy1mdWxsIHJlbGF0aXZlIGZsZXggaXRlbXMtY2VudGVyIHJvdW5kZWQtbWQgcHgtMyBweS0xLjUgdGV4dC1zbSBmb250LW1lZGl1bSB0cmFuc2l0aW9uLWNvbG9ycyBmb2N1cy12aXNpYmxlOm91dGxpbmUtbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmQgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQ2hpbGRFeHBhbmRlZChncm91cCwgaXRlbSwgc3ViSXRlbSwgZ0luZGV4LCBpLCBqKSA/ICd0ZXh0LWZvcmVncm91bmQgYmctYWNjZW50LzMwJyA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMS41IGgtMS41IHJvdW5kZWQtZnVsbCBiZy1ib3JkZXIgc2hyaW5rLTBcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC0yIHRydW5jYXRlXCI+e3sgc3ViSXRlbS50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmktYXJyb3ctcmlnaHQtcy1saW5lIG1sLWF1dG8gdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIHRleHQteHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNDaGlsZEV4cGFuZGVkKGdyb3VwLCBpdGVtLCBzdWJJdGVtLCBnSW5kZXgsIGksIGopID8gJ3JvdGF0ZS05MCcgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdncmlkIHRyYW5zaXRpb24tW2dyaWQtdGVtcGxhdGUtcm93c10gZHVyYXRpb24tMzAwIGVhc2UtaW4tb3V0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0NoaWxkRXhwYW5kZWQoZ3JvdXAsIGl0ZW0sIHN1Ykl0ZW0sIGdJbmRleCwgaSwgaikgPyAnZ3JpZC1yb3dzLVsxZnJdIG9wYWNpdHktMTAwJyA6ICdncmlkLXJvd3MtWzBmcl0gb3BhY2l0eS0wJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTEgbXQtMSBtbC00IGJvcmRlci1sIGJvcmRlci1ib3JkZXIvMzAgcGwtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChncmFuZENoaWxkIG9mIHN1Ykl0ZW0uaXRlbXM7IHRyYWNrIGdyYW5kQ2hpbGQudGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiZ3JhbmRDaGlsZC51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwiYWN0aXZlQ2xhc3Nlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwieyBleGFjdDogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgaG92ZXI6bm8tdW5kZXJsaW5lIHJvdW5kZWQtbWQgcHgtMyBweS0xLjUgdGV4dC1zbSB0cmFuc2l0aW9uLWNvbG9ycyBob3ZlcjpiZy1hY2NlbnQgaG92ZXI6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZCB0ZXh0LW11dGVkLWZvcmVncm91bmQgd2hpdGVzcGFjZS1ub3dyYXAgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy0xLjUgaC0xLjUgcm91bmRlZC1mdWxsIGJnLWJvcmRlci83MCBzaHJpbmstMFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGVcIj57eyBncmFuZENoaWxkLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU3RhbmRhcmQgU3ViIEl0ZW0gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJzdWJJdGVtLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlXT1cImFjdGl2ZUNsYXNzZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwieyBleGFjdDogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBob3Zlcjpuby11bmRlcmxpbmUgcm91bmRlZC1tZCBweC0zIHB5LTEuNSB0ZXh0LXNtIHRyYW5zaXRpb24tY29sb3JzIGhvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCB3aGl0ZXNwYWNlLW5vd3JhcCBmb2N1cy12aXNpYmxlOm91dGxpbmUtbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy0xLjUgaC0xLjUgcm91bmRlZC1mdWxsIGJnLWJvcmRlciBzaHJpbmstMFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZVwiPnt7IHN1Ykl0ZW0udGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGVsc2UgaWYgKGl0ZW0uZXh0ZXJuYWwpIHtcbiAgICAgICAgICAgICAgICAgIDwhLS0gRXh0ZXJuYWwgLyBzdGF0aWMtZmlsZSBJdGVtIChvcGVucyBpbiBhIG5ldyB0YWIpIC0tPlxuICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiaXRlbS51cmxcIlxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICdncm91cCByZWxhdGl2ZSBob3Zlcjpuby11bmRlcmxpbmUgZmxleCBpdGVtcy1jZW50ZXIgcm91bmRlZC1tZCBweC0zIHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0cmFuc2l0aW9uLWNvbG9ycyBmb2N1cy12aXNpYmxlOm91dGxpbmUtbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZycsXG4gICAgICAgICAgICAgICAgICAgICAgJ2hvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCcsXG4gICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VkID8gJ2p1c3RpZnktY2VudGVyJyA6ICdqdXN0aWZ5LXN0YXJ0J1xuICAgICAgICAgICAgICAgICAgICApXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5pY29uIHx8ICdyaS1jaXJjbGUtZmlsbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAnaC00IHctNCB0ZXh0LWxnIHNocmluay0wIHRyYW5zaXRpb24tdHJhbnNmb3JtJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICFjb2xsYXBzZWQgJiYgJ2dyb3VwLWhvdmVyOnNjYWxlLTExMCdcbiAgICAgICAgICAgICAgICAgICAgICApXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAgICAgICAgICAgJ3RydW5jYXRlIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VkID8gJ29wYWNpdHktMCB3LTAgbWwtMCcgOiAnb3BhY2l0eS0xMDAgdy1hdXRvIG1sLTMnXG4gICAgICAgICAgICAgICAgICAgIClcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgQGlmICghY29sbGFwc2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJyaS1leHRlcm5hbC1saW5rLWxpbmUgbWwtYXV0byB0ZXh0LXhzIG9wYWNpdHktNTAgdHJhbnNpdGlvbi1vcGFjaXR5IGdyb3VwLWhvdmVyOm9wYWNpdHktMTAwXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIDwhLS0gU3RhbmRhcmQgVG9wLUxldmVsIEl0ZW0gLS0+XG4gICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJpdGVtLnVybFwiXG4gICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlXT1cImFjdGl2ZUNsYXNzZXNcIlxuICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwieyBleGFjdDogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICdncm91cCByZWxhdGl2ZSBob3Zlcjpuby11bmRlcmxpbmUgZmxleCBpdGVtcy1jZW50ZXIgcm91bmRlZC1tZCBweC0zIHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0cmFuc2l0aW9uLWNvbG9ycyBmb2N1cy12aXNpYmxlOm91dGxpbmUtbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZycsXG4gICAgICAgICAgICAgICAgICAgICAgJ2hvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCcsXG4gICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VkID8gJ2p1c3RpZnktY2VudGVyJyA6ICdqdXN0aWZ5LXN0YXJ0J1xuICAgICAgICAgICAgICAgICAgICApXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5pY29uIHx8ICdyaS1jaXJjbGUtZmlsbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAnaC00IHctNCB0ZXh0LWxnIHNocmluay0wIHRyYW5zaXRpb24tdHJhbnNmb3JtJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICFjb2xsYXBzZWQgJiYgJ2dyb3VwLWhvdmVyOnNjYWxlLTExMCdcbiAgICAgICAgICAgICAgICAgICAgICApXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAgICAgICAgICAgJ3RydW5jYXRlIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VkID8gJ29wYWNpdHktMCB3LTAgbWwtMCcgOiAnb3BhY2l0eS0xMDAgdy1hdXRvIG1sLTMnXG4gICAgICAgICAgICAgICAgICAgIClcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInNocmluay0wIHAtMyBvdmVyZmxvdy1oaWRkZW4gd2hpdGVzcGFjZS1ub3dyYXBcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Zvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2FzaWRlPlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgOmhvc3QgeyBkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAxMDAlOyB9XG4gICAgYnV0dG9uOmRpc2FibGVkIHsgY3Vyc29yOiBub3QtYWxsb3dlZDsgb3BhY2l0eTogMC42OyB9XG4gICAgKiB7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIFNpZGViYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBpdGVtczogU2lkZWJhckdyb3VwW10gPSBbXTtcbiAgQElucHV0KCkgY29sbGFwc2VkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG5cbiAgLyoqXG4gICAqIFN0eWxpbmcgdmFyaWFudCBmb3IgYWN0aXZlIGl0ZW1zLlxuICAgKiAtIGRlZmF1bHQ6IFNvbGlkIHByaW1hcnkgYmFja2dyb3VuZCwgbGlnaHQgdGV4dCAoTWF0Y2hlcyBCYWRnZSBEZWZhdWx0KVxuICAgKiAtIHNlY29uZGFyeTogU29saWQgc2Vjb25kYXJ5IGJhY2tncm91bmRcbiAgICogLSBnaG9zdDogVHJhbnNwYXJlbnQgYmFja2dyb3VuZCwgYWNjZW50IHRleHQgKFNoYWRjbiBzdGFuZGFyZClcbiAgICogLSBvdXRsaW5lOiBCb3JkZXJlZFxuICAgKi9cbiAgQElucHV0KCkgdmFyaWFudDogJ2RlZmF1bHQnIHwgJ3NlY29uZGFyeScgfCAnZ2hvc3QnIHwgJ291dGxpbmUnID0gJ2RlZmF1bHQnO1xuXG4gIGV4cGFuZGVkUGFyZW50cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBleHBhbmRlZENoaWxkcmVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNuID0gY247XG5cbiAgZ2V0IGFjdGl2ZUNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY24oXG4gICAgICAndHJhbnNpdGlvbi1jb2xvcnMnLFxuICAgICAgLy8gRGVmYXVsdDogU29saWQgUHJpbWFyeSAoQmFkZ2UtbGlrZSkgd2l0aCBsaWdodGVyIG9wYWNpdHkgKDgwJSBpbnN0ZWFkIG9mIDkwJSlcbiAgICAgIHRoaXMudmFyaWFudCA9PT0gJ2RlZmF1bHQnICYmICdiZy1wcmltYXJ5LzgwIHRleHQtcHJpbWFyeS1mb3JlZ3JvdW5kIGhvdmVyOmJnLXByaW1hcnkgaG92ZXI6dGV4dC1wcmltYXJ5LWZvcmVncm91bmQnLFxuXG4gICAgICAvLyBTZWNvbmRhcnk6IFNvbGlkIFNlY29uZGFyeVxuICAgICAgdGhpcy52YXJpYW50ID09PSAnc2Vjb25kYXJ5JyAmJiAnYmctc2Vjb25kYXJ5IHRleHQtc2Vjb25kYXJ5LWZvcmVncm91bmQgaG92ZXI6Ymctc2Vjb25kYXJ5LzgwJyxcblxuICAgICAgLy8gR2hvc3Q6IFN1YnRsZSBiYWNrZ3JvdW5kIChTaWRlYmFyIHN0YW5kYXJkKVxuICAgICAgdGhpcy52YXJpYW50ID09PSAnZ2hvc3QnICYmICdiZy1hY2NlbnQgdGV4dC1hY2NlbnQtZm9yZWdyb3VuZCcsXG5cbiAgICAgIC8vIE91dGxpbmU6IEJvcmRlcmVkXG4gICAgICB0aGlzLnZhcmlhbnQgPT09ICdvdXRsaW5lJyAmJiAnYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctYmFja2dyb3VuZCB0ZXh0LWZvcmVncm91bmQgaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmQnXG4gICAgKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snY29sbGFwc2VkJ10gJiYgdGhpcy5jb2xsYXBzZWQpIHtcbiAgICAgIHRoaXMuY29sbGFwc2VBbGwoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2l0ZW1zJ10pIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZVN0YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0tIFNUQVRFIElOSVQgLS0tXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVN0YXRlKCkge1xuICAgIHRoaXMuY29sbGFwc2VBbGwoKTtcbiAgICBpZiAoIXRoaXMuaXRlbXMpIHJldHVybjtcblxuICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoZ3JvdXAsIGdJbmRleCkgPT4ge1xuICAgICAgZ3JvdXAuaXRlbXMuZm9yRWFjaCgoaXRlbSwgaUluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcmVudElkID0gdGhpcy5nZXRQYXJlbnRJZChncm91cCwgaXRlbSwgZ0luZGV4LCBpSW5kZXgpO1xuXG4gICAgICAgIGlmIChpdGVtLmV4cGFuZGVkKSB7XG4gICAgICAgICAgdGhpcy5leHBhbmRlZFBhcmVudHMuYWRkKHBhcmVudElkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpdGVtLml0ZW1zKSB7XG4gICAgICAgICAgaXRlbS5pdGVtcy5mb3JFYWNoKChzdWJJdGVtLCBzSW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChzdWJJdGVtLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGNoaWxkSWQgPSB0aGlzLmdldENoaWxkSWQoZ3JvdXAsIGl0ZW0sIHN1Ykl0ZW0sIGdJbmRleCwgaUluZGV4LCBzSW5kZXgpO1xuICAgICAgICAgICAgICB0aGlzLmV4cGFuZGVkQ2hpbGRyZW4uYWRkKGNoaWxkSWQpO1xuICAgICAgICAgICAgICB0aGlzLmV4cGFuZGVkUGFyZW50cy5hZGQocGFyZW50SWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIC0tLSBJRCBHRU5FUkFUT1JTIC0tLVxuICBnZXRHcm91cElkKGdyb3VwOiBTaWRlYmFyR3JvdXAsIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBncm91cC5pZCB8fCBncm91cC50aXRsZSB8fCBgZy0ke2luZGV4fWA7XG4gIH1cblxuICBnZXRQYXJlbnRJZChncm91cDogU2lkZWJhckdyb3VwLCBpdGVtOiBTaWRlYmFySXRlbSwgZ0luZGV4OiBudW1iZXIsIGlJbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBncm91cElkID0gdGhpcy5nZXRHcm91cElkKGdyb3VwLCBnSW5kZXgpO1xuICAgIGNvbnN0IGl0ZW1JZCA9IGl0ZW0uaWQgfHwgaXRlbS50aXRsZSB8fCBgcC0ke2lJbmRleH1gO1xuICAgIHJldHVybiBgJHtncm91cElkfV9fJHtpdGVtSWR9YDtcbiAgfVxuXG4gIGdldENoaWxkSWQoZ3JvdXA6IFNpZGViYXJHcm91cCwgcGFyZW50OiBTaWRlYmFySXRlbSwgc3ViSXRlbTogU2lkZWJhckl0ZW0sIGdJbmRleDogbnVtYmVyLCBpSW5kZXg6IG51bWJlciwgc0luZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhcmVudElkID0gdGhpcy5nZXRQYXJlbnRJZChncm91cCwgcGFyZW50LCBnSW5kZXgsIGlJbmRleCk7XG4gICAgY29uc3Qgc3ViSXRlbUlkID0gc3ViSXRlbS5pZCB8fCBzdWJJdGVtLnRpdGxlIHx8IGBjLSR7c0luZGV4fWA7XG4gICAgcmV0dXJuIGAke3BhcmVudElkfV9fJHtzdWJJdGVtSWR9YDtcbiAgfVxuXG4gIC8vIC0tLSBBQ1RJT05TIC0tLVxuICB0b2dnbGVQYXJlbnQoZ3JvdXA6IFNpZGViYXJHcm91cCwgaXRlbTogU2lkZWJhckl0ZW0sIGdJbmRleDogbnVtYmVyLCBpSW5kZXg6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmNvbGxhcHNlZCkgcmV0dXJuO1xuICAgIGNvbnN0IGlkID0gdGhpcy5nZXRQYXJlbnRJZChncm91cCwgaXRlbSwgZ0luZGV4LCBpSW5kZXgpO1xuXG4gICAgY29uc3QgbmV3U2V0ID0gbmV3IFNldCh0aGlzLmV4cGFuZGVkUGFyZW50cyk7XG4gICAgaWYgKG5ld1NldC5oYXMoaWQpKSB7XG4gICAgICBuZXdTZXQuZGVsZXRlKGlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3U2V0LmFkZChpZCk7XG4gICAgfVxuICAgIHRoaXMuZXhwYW5kZWRQYXJlbnRzID0gbmV3U2V0O1xuICB9XG5cbiAgdG9nZ2xlQ2hpbGQoZ3JvdXA6IFNpZGViYXJHcm91cCwgcGFyZW50OiBTaWRlYmFySXRlbSwgc3ViSXRlbTogU2lkZWJhckl0ZW0sIGdJbmRleDogbnVtYmVyLCBpSW5kZXg6IG51bWJlciwgc0luZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBpZCA9IHRoaXMuZ2V0Q2hpbGRJZChncm91cCwgcGFyZW50LCBzdWJJdGVtLCBnSW5kZXgsIGlJbmRleCwgc0luZGV4KTtcblxuICAgIGNvbnN0IG5ld1NldCA9IG5ldyBTZXQodGhpcy5leHBhbmRlZENoaWxkcmVuKTtcbiAgICBpZiAobmV3U2V0LmhhcyhpZCkpIHtcbiAgICAgIG5ld1NldC5kZWxldGUoaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdTZXQuYWRkKGlkKTtcbiAgICB9XG4gICAgdGhpcy5leHBhbmRlZENoaWxkcmVuID0gbmV3U2V0O1xuICB9XG5cbiAgcHJpdmF0ZSBjb2xsYXBzZUFsbCgpIHtcbiAgICB0aGlzLmV4cGFuZGVkUGFyZW50cyA9IG5ldyBTZXQoKTtcbiAgICB0aGlzLmV4cGFuZGVkQ2hpbGRyZW4gPSBuZXcgU2V0KCk7XG4gIH1cblxuICAvLyAtLS0gVEVNUExBVEUgSEVMUEVSUyAtLS1cbiAgaXNQYXJlbnRFeHBhbmRlZChncm91cDogU2lkZWJhckdyb3VwLCBpdGVtOiBTaWRlYmFySXRlbSwgZ0luZGV4OiBudW1iZXIsIGlJbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXhwYW5kZWRQYXJlbnRzLmhhcyh0aGlzLmdldFBhcmVudElkKGdyb3VwLCBpdGVtLCBnSW5kZXgsIGlJbmRleCkpO1xuICB9XG5cbiAgaXNDaGlsZEV4cGFuZGVkKGdyb3VwOiBTaWRlYmFyR3JvdXAsIHBhcmVudDogU2lkZWJhckl0ZW0sIHN1Ykl0ZW06IFNpZGViYXJJdGVtLCBnSW5kZXg6IG51bWJlciwgaUluZGV4OiBudW1iZXIsIHNJbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXhwYW5kZWRDaGlsZHJlbi5oYXModGhpcy5nZXRDaGlsZElkKGdyb3VwLCBwYXJlbnQsIHN1Ykl0ZW0sIGdJbmRleCwgaUluZGV4LCBzSW5kZXgpKTtcbiAgfVxufVxuIl19
|
|
@@ -1,15 +1,29 @@
|
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { cva } from 'class-variance-authority';
|
|
3
4
|
import { cn } from './utils/cn';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
6
|
+
const skeletonVariants = cva(
|
|
7
|
+
// The background matches the Google Dark Mode "Muted" color
|
|
8
|
+
'animate-pulse bg-muted dark:bg-secondary rounded-md', {
|
|
9
|
+
variants: {
|
|
10
|
+
variant: {
|
|
11
|
+
rect: '',
|
|
12
|
+
circle: 'rounded-full',
|
|
13
|
+
pill: 'rounded-full',
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
defaultVariants: {
|
|
17
|
+
variant: 'rect',
|
|
18
|
+
},
|
|
19
|
+
});
|
|
5
20
|
export class SkeletonComponent {
|
|
21
|
+
/** Shape of the skeleton placeholder. @default 'rect' */
|
|
6
22
|
variant = 'rect';
|
|
23
|
+
/** Extra Tailwind classes merged onto the skeleton via `cn()` (last-wins). */
|
|
7
24
|
class = '';
|
|
8
|
-
cn = cn;
|
|
9
25
|
get computedClass() {
|
|
10
|
-
return cn(
|
|
11
|
-
// The background matches the Google Dark Mode "Muted" color
|
|
12
|
-
'animate-pulse bg-muted dark:bg-secondary rounded-md', this.variant === 'circle' && 'rounded-full', this.variant === 'pill' && 'rounded-full', this.class);
|
|
26
|
+
return cn(skeletonVariants({ variant: this.variant }), this.class);
|
|
13
27
|
}
|
|
14
28
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SkeletonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15
29
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SkeletonComponent, isStandalone: true, selector: "tolle-skeleton", inputs: { variant: "variant", class: "class" }, ngImport: i0, template: `
|
|
@@ -31,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
31
45
|
}], class: [{
|
|
32
46
|
type: Input
|
|
33
47
|
}] } });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9za2VsZXRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxHQUFHLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFFaEMsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHO0FBQzFCLDREQUE0RDtBQUM1RCxxREFBcUQsRUFDckQ7SUFDRSxRQUFRLEVBQUU7UUFDUixPQUFPLEVBQUU7WUFDUCxJQUFJLEVBQUUsRUFBRTtZQUNSLE1BQU0sRUFBRSxjQUFjO1lBQ3RCLElBQUksRUFBRSxjQUFjO1NBQ3JCO0tBQ0Y7SUFDRCxlQUFlLEVBQUU7UUFDZixPQUFPLEVBQUUsTUFBTTtLQUNoQjtDQUNGLENBQ0YsQ0FBQztBQVlGLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIseURBQXlEO0lBQ2hELE9BQU8sR0FBNkIsTUFBTSxDQUFDO0lBQ3BELDhFQUE4RTtJQUNyRSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBRXBCLElBQUksYUFBYTtRQUNmLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRSxDQUFDO3dHQVJVLGlCQUFpQjs0RkFBakIsaUJBQWlCLDBIQUpsQjs7R0FFVCwyREFIUyxZQUFZOzs0RkFLWCxpQkFBaUI7a0JBUjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsUUFBUSxFQUFFOztHQUVUO2lCQUNGOzhCQUdVLE9BQU87c0JBQWYsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY3ZhLCB0eXBlIFZhcmlhbnRQcm9wcyB9IGZyb20gJ2NsYXNzLXZhcmlhbmNlLWF1dGhvcml0eSc7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuXG5jb25zdCBza2VsZXRvblZhcmlhbnRzID0gY3ZhKFxuICAvLyBUaGUgYmFja2dyb3VuZCBtYXRjaGVzIHRoZSBHb29nbGUgRGFyayBNb2RlIFwiTXV0ZWRcIiBjb2xvclxuICAnYW5pbWF0ZS1wdWxzZSBiZy1tdXRlZCBkYXJrOmJnLXNlY29uZGFyeSByb3VuZGVkLW1kJyxcbiAge1xuICAgIHZhcmlhbnRzOiB7XG4gICAgICB2YXJpYW50OiB7XG4gICAgICAgIHJlY3Q6ICcnLFxuICAgICAgICBjaXJjbGU6ICdyb3VuZGVkLWZ1bGwnLFxuICAgICAgICBwaWxsOiAncm91bmRlZC1mdWxsJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBkZWZhdWx0VmFyaWFudHM6IHtcbiAgICAgIHZhcmlhbnQ6ICdyZWN0JyxcbiAgICB9LFxuICB9XG4pO1xuXG5leHBvcnQgdHlwZSBTa2VsZXRvblByb3BzID0gVmFyaWFudFByb3BzPHR5cGVvZiBza2VsZXRvblZhcmlhbnRzPjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtc2tlbGV0b24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtjbGFzc109XCJjb21wdXRlZENsYXNzXCI+PC9kaXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFNrZWxldG9uQ29tcG9uZW50IHtcbiAgLyoqIFNoYXBlIG9mIHRoZSBza2VsZXRvbiBwbGFjZWhvbGRlci4gQGRlZmF1bHQgJ3JlY3QnICovXG4gIEBJbnB1dCgpIHZhcmlhbnQ6IFNrZWxldG9uUHJvcHNbJ3ZhcmlhbnQnXSA9ICdyZWN0JztcbiAgLyoqIEV4dHJhIFRhaWx3aW5kIGNsYXNzZXMgbWVyZ2VkIG9udG8gdGhlIHNrZWxldG9uIHZpYSBgY24oKWAgKGxhc3Qtd2lucykuICovXG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG5cbiAgZ2V0IGNvbXB1dGVkQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGNuKHNrZWxldG9uVmFyaWFudHMoeyB2YXJpYW50OiB0aGlzLnZhcmlhbnQgfSksIHRoaXMuY2xhc3MpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,12 +1,58 @@
|
|
|
1
1
|
import { Component, Input, forwardRef } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
+
import { cva } from 'class-variance-authority';
|
|
4
5
|
import { cn } from './utils/cn';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
7
|
+
const switchTrackVariants = cva('peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50', {
|
|
8
|
+
variants: {
|
|
9
|
+
size: {
|
|
10
|
+
xs: 'h-4 w-7',
|
|
11
|
+
sm: 'h-5 w-9',
|
|
12
|
+
default: 'h-6 w-11',
|
|
13
|
+
lg: 'h-7 w-[3.25rem]',
|
|
14
|
+
},
|
|
15
|
+
checked: {
|
|
16
|
+
true: 'bg-primary',
|
|
17
|
+
false: 'bg-input',
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
defaultVariants: {
|
|
21
|
+
size: 'default',
|
|
22
|
+
checked: false,
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
const switchThumbVariants = cva('pointer-events-none block rounded-full bg-background shadow-lg ring-0 transition-transform', {
|
|
26
|
+
variants: {
|
|
27
|
+
size: {
|
|
28
|
+
xs: 'h-3 w-3',
|
|
29
|
+
sm: 'h-4 w-4',
|
|
30
|
+
default: 'h-5 w-5',
|
|
31
|
+
lg: 'h-6 w-6',
|
|
32
|
+
},
|
|
33
|
+
checked: {
|
|
34
|
+
true: '',
|
|
35
|
+
false: 'translate-x-0',
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
compoundVariants: [
|
|
39
|
+
{ size: 'xs', checked: true, class: 'translate-x-3' },
|
|
40
|
+
{ size: 'sm', checked: true, class: 'translate-x-4' },
|
|
41
|
+
{ size: 'default', checked: true, class: 'translate-x-5' },
|
|
42
|
+
{ size: 'lg', checked: true, class: 'translate-x-6' },
|
|
43
|
+
],
|
|
44
|
+
defaultVariants: {
|
|
45
|
+
size: 'default',
|
|
46
|
+
checked: false,
|
|
47
|
+
},
|
|
48
|
+
});
|
|
6
49
|
export class SwitchComponent {
|
|
7
50
|
cdr;
|
|
51
|
+
/** Extra Tailwind classes merged onto the switch track via `cn()` (last-wins). */
|
|
8
52
|
class = '';
|
|
53
|
+
/** Disables the switch and blocks toggling. @default false */
|
|
9
54
|
disabled = false;
|
|
55
|
+
/** Size of the switch. @default 'default' */
|
|
10
56
|
size = 'default';
|
|
11
57
|
checked = false;
|
|
12
58
|
onChange = () => { };
|
|
@@ -14,32 +60,12 @@ export class SwitchComponent {
|
|
|
14
60
|
constructor(cdr) {
|
|
15
61
|
this.cdr = cdr;
|
|
16
62
|
}
|
|
17
|
-
get
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
translate: 'translate-x-3'
|
|
23
|
-
},
|
|
24
|
-
sm: {
|
|
25
|
-
track: 'h-5 w-9',
|
|
26
|
-
thumb: 'h-4 w-4',
|
|
27
|
-
translate: 'translate-x-4'
|
|
28
|
-
},
|
|
29
|
-
default: {
|
|
30
|
-
track: 'h-6 w-11',
|
|
31
|
-
thumb: 'h-5 w-5',
|
|
32
|
-
translate: 'translate-x-5'
|
|
33
|
-
},
|
|
34
|
-
lg: {
|
|
35
|
-
track: 'h-7 w-[3.25rem]',
|
|
36
|
-
thumb: 'h-6 w-6',
|
|
37
|
-
translate: 'translate-x-6'
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
return sizes[this.size];
|
|
63
|
+
get trackClass() {
|
|
64
|
+
return cn(switchTrackVariants({ size: this.size, checked: this.checked }), this.class);
|
|
65
|
+
}
|
|
66
|
+
get thumbClass() {
|
|
67
|
+
return cn(switchThumbVariants({ size: this.size, checked: this.checked }));
|
|
41
68
|
}
|
|
42
|
-
cn = cn;
|
|
43
69
|
toggle() {
|
|
44
70
|
if (this.disabled)
|
|
45
71
|
return;
|
|
@@ -54,7 +80,7 @@ export class SwitchComponent {
|
|
|
54
80
|
}
|
|
55
81
|
registerOnChange(fn) { this.onChange = fn; }
|
|
56
82
|
registerOnTouched(fn) { this.onTouched = fn; }
|
|
57
|
-
setDisabledState(isDisabled) { this.disabled = isDisabled; }
|
|
83
|
+
setDisabledState(isDisabled) { this.disabled = isDisabled; this.cdr.markForCheck(); }
|
|
58
84
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwitchComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
59
85
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SwitchComponent, isStandalone: true, selector: "tolle-switch", inputs: { class: "class", disabled: "disabled", size: "size" }, providers: [
|
|
60
86
|
{
|
|
@@ -67,22 +93,12 @@ export class SwitchComponent {
|
|
|
67
93
|
type="button"
|
|
68
94
|
role="switch"
|
|
69
95
|
[attr.aria-checked]="checked"
|
|
96
|
+
[attr.data-state]="checked ? 'checked' : 'unchecked'"
|
|
70
97
|
[disabled]="disabled"
|
|
71
98
|
(click)="toggle()"
|
|
72
|
-
[class]="
|
|
73
|
-
'peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50',
|
|
74
|
-
sizeClasses.track,
|
|
75
|
-
checked ? 'bg-primary' : 'bg-input',
|
|
76
|
-
class
|
|
77
|
-
)"
|
|
99
|
+
[class]="trackClass"
|
|
78
100
|
>
|
|
79
|
-
|
|
80
|
-
[class]="cn(
|
|
81
|
-
'pointer-events-none block rounded-full bg-background shadow-lg ring-0 transition-transform',
|
|
82
|
-
sizeClasses.thumb,
|
|
83
|
-
checked ? sizeClasses.translate : 'translate-x-0'
|
|
84
|
-
)"
|
|
85
|
-
></span>
|
|
101
|
+
<span [class]="thumbClass"></span>
|
|
86
102
|
</button>
|
|
87
103
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
88
104
|
}
|
|
@@ -104,22 +120,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
104
120
|
type="button"
|
|
105
121
|
role="switch"
|
|
106
122
|
[attr.aria-checked]="checked"
|
|
123
|
+
[attr.data-state]="checked ? 'checked' : 'unchecked'"
|
|
107
124
|
[disabled]="disabled"
|
|
108
125
|
(click)="toggle()"
|
|
109
|
-
[class]="
|
|
110
|
-
'peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50',
|
|
111
|
-
sizeClasses.track,
|
|
112
|
-
checked ? 'bg-primary' : 'bg-input',
|
|
113
|
-
class
|
|
114
|
-
)"
|
|
126
|
+
[class]="trackClass"
|
|
115
127
|
>
|
|
116
|
-
|
|
117
|
-
[class]="cn(
|
|
118
|
-
'pointer-events-none block rounded-full bg-background shadow-lg ring-0 transition-transform',
|
|
119
|
-
sizeClasses.thumb,
|
|
120
|
-
checked ? sizeClasses.translate : 'translate-x-0'
|
|
121
|
-
)"
|
|
122
|
-
></span>
|
|
128
|
+
<span [class]="thumbClass"></span>
|
|
123
129
|
</button>
|
|
124
130
|
`
|
|
125
131
|
}]
|
|
@@ -130,4 +136,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
130
136
|
}], size: [{
|
|
131
137
|
type: Input
|
|
132
138
|
}] } });
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvc3dpdGNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLEdBQUcsRUFBcUIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDOztBQUVoQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FDN0IsMlNBQTJTLEVBQzNTO0lBQ0UsUUFBUSxFQUFFO1FBQ1IsSUFBSSxFQUFFO1lBQ0osRUFBRSxFQUFFLFNBQVM7WUFDYixFQUFFLEVBQUUsU0FBUztZQUNiLE9BQU8sRUFBRSxVQUFVO1lBQ25CLEVBQUUsRUFBRSxpQkFBaUI7U0FDdEI7UUFDRCxPQUFPLEVBQUU7WUFDUCxJQUFJLEVBQUUsWUFBWTtZQUNsQixLQUFLLEVBQUUsVUFBVTtTQUNsQjtLQUNGO0lBQ0QsZUFBZSxFQUFFO1FBQ2YsSUFBSSxFQUFFLFNBQVM7UUFDZixPQUFPLEVBQUUsS0FBSztLQUNmO0NBQ0YsQ0FDRixDQUFDO0FBRUYsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQzdCLDRGQUE0RixFQUM1RjtJQUNFLFFBQVEsRUFBRTtRQUNSLElBQUksRUFBRTtZQUNKLEVBQUUsRUFBRSxTQUFTO1lBQ2IsRUFBRSxFQUFFLFNBQVM7WUFDYixPQUFPLEVBQUUsU0FBUztZQUNsQixFQUFFLEVBQUUsU0FBUztTQUNkO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsSUFBSSxFQUFFLEVBQUU7WUFDUixLQUFL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QUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7NEJBQzlDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO29CQUNELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7O0dBWVQ7aUJBQ0Y7c0ZBR1UsS0FBSztzQkFBYixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgZm9yd2FyZFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjdmEsIHR5cGUgVmFyaWFudFByb3BzIH0gZnJvbSAnY2xhc3MtdmFyaWFuY2UtYXV0aG9yaXR5JztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbmNvbnN0IHN3aXRjaFRyYWNrVmFyaWFudHMgPSBjdmEoXG4gICdwZWVyIGlubGluZS1mbGV4IHNocmluay0wIGN1cnNvci1wb2ludGVyIGl0ZW1zLWNlbnRlciByb3VuZGVkLWZ1bGwgYm9yZGVyLTIgYm9yZGVyLXRyYW5zcGFyZW50IHRyYW5zaXRpb24tY29sb3JzIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nIGZvY3VzLXZpc2libGU6cmluZy1vZmZzZXQtMiBmb2N1cy12aXNpYmxlOnJpbmctb2Zmc2V0LWJhY2tncm91bmQgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkIGRpc2FibGVkOm9wYWNpdHktNTAnLFxuICB7XG4gICAgdmFyaWFudHM6IHtcbiAgICAgIHNpemU6IHtcbiAgICAgICAgeHM6ICdoLTQgdy03JyxcbiAgICAgICAgc206ICdoLTUgdy05JyxcbiAgICAgICAgZGVmYXVsdDogJ2gtNiB3LTExJyxcbiAgICAgICAgbGc6ICdoLTcgdy1bMy4yNXJlbV0nLFxuICAgICAgfSxcbiAgICAgIGNoZWNrZWQ6IHtcbiAgICAgICAgdHJ1ZTogJ2JnLXByaW1hcnknLFxuICAgICAgICBmYWxzZTogJ2JnLWlucHV0JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBkZWZhdWx0VmFyaWFudHM6IHtcbiAgICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgIH0sXG4gIH1cbik7XG5cbmNvbnN0IHN3aXRjaFRodW1iVmFyaWFudHMgPSBjdmEoXG4gICdwb2ludGVyLWV2ZW50cy1ub25lIGJsb2NrIHJvdW5kZWQtZnVsbCBiZy1iYWNrZ3JvdW5kIHNoYWRvdy1sZyByaW5nLTAgdHJhbnNpdGlvbi10cmFuc2Zvcm0nLFxuICB7XG4gICAgdmFyaWFudHM6IHtcbiAgICAgIHNpemU6IHtcbiAgICAgICAgeHM6ICdoLTMgdy0zJyxcbiAgICAgICAgc206ICdoLTQgdy00JyxcbiAgICAgICAgZGVmYXVsdDogJ2gtNSB3LTUnLFxuICAgICAgICBsZzogJ2gtNiB3LTYnLFxuICAgICAgfSxcbiAgICAgIGNoZWNrZWQ6IHtcbiAgICAgICAgdHJ1ZTogJycsXG4gICAgICAgIGZhbHNlOiAndHJhbnNsYXRlLXgtMCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY29tcG91bmRWYXJpYW50czogW1xuICAgICAgeyBzaXplOiAneHMnLCBjaGVja2VkOiB0cnVlLCBjbGFzczogJ3RyYW5zbGF0ZS14LTMnIH0sXG4gICAgICB7IHNpemU6ICdzbScsIGNoZWNrZWQ6IHRydWUsIGNsYXNzOiAndHJhbnNsYXRlLXgtNCcgfSxcbiAgICAgIHsgc2l6ZTogJ2RlZmF1bHQnLCBjaGVja2VkOiB0cnVlLCBjbGFzczogJ3RyYW5zbGF0ZS14LTUnIH0sXG4gICAgICB7IHNpemU6ICdsZycsIGNoZWNrZWQ6IHRydWUsIGNsYXNzOiAndHJhbnNsYXRlLXgtNicgfSxcbiAgICBdLFxuICAgIGRlZmF1bHRWYXJpYW50czoge1xuICAgICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgfSxcbiAgfVxuKTtcblxuZXhwb3J0IHR5cGUgU3dpdGNoUHJvcHMgPSBWYXJpYW50UHJvcHM8dHlwZW9mIHN3aXRjaFRyYWNrVmFyaWFudHM+O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1zd2l0Y2gnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTd2l0Y2hDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICByb2xlPVwic3dpdGNoXCJcbiAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09XCJjaGVja2VkXCJcbiAgICAgIFthdHRyLmRhdGEtc3RhdGVdPVwiY2hlY2tlZCA/ICdjaGVja2VkJyA6ICd1bmNoZWNrZWQnXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlKClcIlxuICAgICAgW2NsYXNzXT1cInRyYWNrQ2xhc3NcIlxuICAgID5cbiAgICAgIDxzcGFuIFtjbGFzc109XCJ0aHVtYkNsYXNzXCI+PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIFN3aXRjaENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgLyoqIEV4dHJhIFRhaWx3aW5kIGNsYXNzZXMgbWVyZ2VkIG9udG8gdGhlIHN3aXRjaCB0cmFjayB2aWEgYGNuKClgIChsYXN0LXdpbnMpLiAqL1xuICBASW5wdXQoKSBjbGFzcyA9ICcnO1xuICAvKiogRGlzYWJsZXMgdGhlIHN3aXRjaCBhbmQgYmxvY2tzIHRvZ2dsaW5nLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICAvKiogU2l6ZSBvZiB0aGUgc3dpdGNoLiBAZGVmYXVsdCAnZGVmYXVsdCcgKi9cbiAgQElucHV0KCkgc2l6ZTogU3dpdGNoUHJvcHNbJ3NpemUnXSA9ICdkZWZhdWx0JztcblxuICBjaGVja2VkID0gZmFsc2U7XG5cbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBnZXQgdHJhY2tDbGFzcygpIHtcbiAgICByZXR1cm4gY24oXG4gICAgICBzd2l0Y2hUcmFja1ZhcmlhbnRzKHsgc2l6ZTogdGhpcy5zaXplLCBjaGVja2VkOiB0aGlzLmNoZWNrZWQgfSksXG4gICAgICB0aGlzLmNsYXNzXG4gICAgKTtcbiAgfVxuXG4gIGdldCB0aHVtYkNsYXNzKCkge1xuICAgIHJldHVybiBjbihzd2l0Y2hUaHVtYlZhcmlhbnRzKHsgc2l6ZTogdGhpcy5zaXplLCBjaGVja2VkOiB0aGlzLmNoZWNrZWQgfSkpO1xuICB9XG5cbiAgdG9nZ2xlKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgdGhpcy5jaGVja2VkID0gIXRoaXMuY2hlY2tlZDtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuY2hlY2tlZCk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIC8vIC0tLSBDb250cm9sVmFsdWVBY2Nlc3NvciAtLS1cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tlZCA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7IHRoaXMub25DaGFuZ2UgPSBmbjsgfVxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7IHRoaXMub25Ub3VjaGVkID0gZm47IH1cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7IHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkOyB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTsgfVxufVxuIl19
|