primeng 18.0.0 → 18.0.2-patch.1
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/accordion/accordion.d.ts +7 -7
- package/autocomplete/autocomplete.d.ts +21 -8
- package/badge/badge.d.ts +1 -3
- package/basecomponent/basecomponent.d.ts +2 -5
- package/blockui/blockui.d.ts +10 -5
- package/breadcrumb/breadcrumb.d.ts +9 -6
- package/button/button.d.ts +10 -4
- package/calendar/calendar.d.ts +29 -15
- package/card/card.d.ts +12 -5
- package/carousel/carousel.d.ts +10 -4
- package/cascadeselect/cascadeselect.d.ts +18 -8
- package/checkbox/checkbox.d.ts +8 -4
- package/chip/chip.d.ts +9 -7
- package/chips/chips.d.ts +237 -0
- package/chips/chips.interface.d.ts +66 -0
- package/chips/index.d.ts +5 -0
- package/chips/public_api.d.ts +2 -0
- package/chips/style/chipsstyle.d.ts +69 -0
- package/confirmdialog/confirmdialog.d.ts +14 -5
- package/confirmpopup/confirmpopup.d.ts +11 -5
- package/contextmenu/contextmenu.d.ts +10 -6
- package/datepicker/datepicker.d.ts +113 -33
- package/dialog/dialog.d.ts +15 -4
- package/divider/divider.d.ts +1 -1
- package/dock/dock.d.ts +7 -4
- package/drawer/drawer.d.ts +18 -10
- package/dropdown/dropdown.d.ts +4 -3
- package/dynamicdialog/dynamicdialog.d.ts +1 -0
- package/editor/editor.d.ts +7 -3
- package/esm2022/accordion/accordion.mjs +58 -43
- package/esm2022/autocomplete/autocomplete.mjs +153 -92
- package/esm2022/badge/badge.mjs +39 -32
- package/esm2022/basecomponent/basecomponent.mjs +3 -26
- package/esm2022/blockui/blockui.mjs +38 -18
- package/esm2022/breadcrumb/breadcrumb.mjs +50 -32
- package/esm2022/button/button.mjs +55 -28
- package/esm2022/calendar/calendar.mjs +207 -143
- package/esm2022/card/card.mjs +96 -46
- package/esm2022/carousel/carousel.mjs +74 -42
- package/esm2022/cascadeselect/cascadeselect.mjs +100 -62
- package/esm2022/checkbox/checkbox.mjs +32 -14
- package/esm2022/chip/chip.mjs +117 -96
- package/esm2022/chips/chips.interface.mjs +2 -0
- package/esm2022/chips/chips.mjs +827 -0
- package/esm2022/chips/primeng-chips.mjs +5 -0
- package/esm2022/chips/public_api.mjs +3 -0
- package/esm2022/chips/style/chipsstyle.mjs +175 -0
- package/esm2022/confirmdialog/confirmdialog.mjs +96 -57
- package/esm2022/confirmpopup/confirmpopup.mjs +57 -29
- package/esm2022/contextmenu/contextmenu.mjs +51 -20
- package/esm2022/datepicker/datepicker.mjs +198 -156
- package/esm2022/dialog/dialog.mjs +98 -52
- package/esm2022/divider/divider.mjs +2 -4
- package/esm2022/dock/dock.mjs +31 -13
- package/esm2022/drawer/drawer.mjs +112 -70
- package/esm2022/dropdown/dropdown.mjs +13 -5
- package/esm2022/dynamicdialog/dynamicdialog-config.mjs +13 -13
- package/esm2022/dynamicdialog/dynamicdialog.mjs +9 -5
- package/esm2022/editor/editor.mjs +27 -11
- package/esm2022/fieldset/fieldset.mjs +61 -33
- package/esm2022/fileupload/fileupload.mjs +139 -89
- package/esm2022/galleria/galleria.mjs +18 -9
- package/esm2022/image/image.mjs +113 -66
- package/esm2022/imagecompare/imagecompare.mjs +31 -11
- package/esm2022/inplace/inplace.mjs +49 -24
- package/esm2022/inputmask/inputmask.mjs +30 -14
- package/esm2022/inputmask/style/inputmaskstyle.mjs +2 -2
- package/esm2022/inputnumber/inputnumber.mjs +55 -47
- package/esm2022/inputotp/inputotp.mjs +30 -11
- package/esm2022/listbox/listbox.mjs +137 -78
- package/esm2022/megamenu/megamenu.mjs +105 -59
- package/esm2022/menu/menu.mjs +26 -26
- package/esm2022/menubar/menubar.mjs +70 -35
- package/esm2022/message/message.mjs +50 -26
- package/esm2022/messages/messages.mjs +13 -4
- package/esm2022/metergroup/metergroup.mjs +63 -31
- package/esm2022/multiselect/multiselect.mjs +247 -156
- package/esm2022/orderlist/orderlist.mjs +125 -70
- package/esm2022/organizationchart/organizationchart.mjs +30 -14
- package/esm2022/overlay/overlay.mjs +27 -7
- package/esm2022/overlaypanel/overlaypanel.mjs +33 -10
- package/esm2022/paginator/paginator.mjs +92 -60
- package/esm2022/panel/panel.mjs +160 -100
- package/esm2022/panelmenu/panelmenu.mjs +55 -32
- package/esm2022/password/password.mjs +88 -49
- package/esm2022/picklist/picklist.mjs +363 -259
- package/esm2022/popover/popover.mjs +29 -12
- package/esm2022/progressbar/progressbar.mjs +27 -9
- package/esm2022/rating/rating.mjs +46 -22
- package/esm2022/scroller/scroller.mjs +47 -37
- package/esm2022/scrollpanel/scrollpanel.mjs +28 -9
- package/esm2022/scrolltop/scrolltop.mjs +17 -10
- package/esm2022/select/select.mjs +198 -119
- package/esm2022/selectbutton/selectbutton.mjs +26 -11
- package/esm2022/sidebar/sidebar.mjs +82 -60
- package/esm2022/speeddial/speeddial.mjs +54 -29
- package/esm2022/splitbutton/splitbutton.mjs +41 -18
- package/esm2022/splitter/splitter.mjs +5 -5
- package/esm2022/stepper/stepper.mjs +27 -13
- package/esm2022/table/table.mjs +107 -96
- package/esm2022/tabmenu/tabmenu.mjs +54 -27
- package/esm2022/tabs/tablist.mjs +28 -20
- package/esm2022/tabview/tabview.mjs +106 -54
- package/esm2022/tag/tag.mjs +68 -44
- package/esm2022/tieredmenu/tieredmenu.mjs +44 -21
- package/esm2022/timeline/timeline.mjs +41 -17
- package/esm2022/toast/toast.mjs +31 -9
- package/esm2022/togglebutton/togglebutton.mjs +45 -30
- package/esm2022/toggleswitch/toggleswitch.mjs +28 -9
- package/esm2022/toolbar/toolbar.mjs +47 -21
- package/esm2022/tooltip/tooltip.mjs +35 -70
- package/esm2022/tree/tree.mjs +114 -97
- package/esm2022/treeselect/treeselect.mjs +156 -89
- package/esm2022/treetable/treetable.mjs +31 -12
- package/esm2022/usestyle/usestyle.mjs +2 -2
- package/fesm2022/primeng-accordion.mjs +59 -44
- package/fesm2022/primeng-accordion.mjs.map +1 -1
- package/fesm2022/primeng-animateonscroll.mjs +1 -1
- package/fesm2022/primeng-api.mjs +1 -1
- package/fesm2022/primeng-autocomplete.mjs +152 -91
- package/fesm2022/primeng-autocomplete.mjs.map +1 -1
- package/fesm2022/primeng-avatar.mjs +1 -1
- package/fesm2022/primeng-avatargroup.mjs +1 -1
- package/fesm2022/primeng-badge.mjs +40 -33
- package/fesm2022/primeng-badge.mjs.map +1 -1
- package/fesm2022/primeng-basecomponent.mjs +2 -25
- package/fesm2022/primeng-basecomponent.mjs.map +1 -1
- package/fesm2022/primeng-blockui.mjs +37 -17
- package/fesm2022/primeng-blockui.mjs.map +1 -1
- package/fesm2022/primeng-breadcrumb.mjs +49 -31
- package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
- package/fesm2022/primeng-button.mjs +54 -27
- package/fesm2022/primeng-button.mjs.map +1 -1
- package/fesm2022/primeng-buttongroup.mjs +1 -1
- package/fesm2022/primeng-calendar.mjs +207 -143
- package/fesm2022/primeng-calendar.mjs.map +1 -1
- package/fesm2022/primeng-card.mjs +95 -45
- package/fesm2022/primeng-card.mjs.map +1 -1
- package/fesm2022/primeng-carousel.mjs +73 -41
- package/fesm2022/primeng-carousel.mjs.map +1 -1
- package/fesm2022/primeng-cascadeselect.mjs +99 -61
- package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
- package/fesm2022/primeng-chart.mjs +1 -1
- package/fesm2022/primeng-checkbox.mjs +31 -13
- package/fesm2022/primeng-checkbox.mjs.map +1 -1
- package/fesm2022/primeng-chip.mjs +116 -95
- package/fesm2022/primeng-chip.mjs.map +1 -1
- package/fesm2022/primeng-chips.mjs +1006 -0
- package/fesm2022/primeng-chips.mjs.map +1 -0
- package/fesm2022/primeng-colorpicker.mjs +1 -1
- package/fesm2022/primeng-confirmdialog.mjs +95 -56
- package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
- package/fesm2022/primeng-confirmpopup.mjs +57 -29
- package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
- package/fesm2022/primeng-contextmenu.mjs +50 -19
- package/fesm2022/primeng-contextmenu.mjs.map +1 -1
- package/fesm2022/primeng-dataview.mjs +2 -2
- package/fesm2022/primeng-datepicker.mjs +198 -156
- package/fesm2022/primeng-datepicker.mjs.map +1 -1
- package/fesm2022/primeng-defer.mjs +1 -1
- package/fesm2022/primeng-dialog.mjs +97 -51
- package/fesm2022/primeng-dialog.mjs.map +1 -1
- package/fesm2022/primeng-divider.mjs +2 -4
- package/fesm2022/primeng-divider.mjs.map +1 -1
- package/fesm2022/primeng-dock.mjs +30 -12
- package/fesm2022/primeng-dock.mjs.map +1 -1
- package/fesm2022/primeng-dragdrop.mjs +1 -1
- package/fesm2022/primeng-drawer.mjs +111 -69
- package/fesm2022/primeng-drawer.mjs.map +1 -1
- package/fesm2022/primeng-dropdown.mjs +12 -4
- package/fesm2022/primeng-dropdown.mjs.map +1 -1
- package/fesm2022/primeng-dynamicdialog.mjs +21 -17
- package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
- package/fesm2022/primeng-editor.mjs +26 -10
- package/fesm2022/primeng-editor.mjs.map +1 -1
- package/fesm2022/primeng-fieldset.mjs +61 -33
- package/fesm2022/primeng-fieldset.mjs.map +1 -1
- package/fesm2022/primeng-fileupload.mjs +138 -88
- package/fesm2022/primeng-fileupload.mjs.map +1 -1
- package/fesm2022/primeng-floatlabel.mjs +1 -1
- package/fesm2022/primeng-fluid.mjs +1 -1
- package/fesm2022/primeng-galleria.mjs +17 -8
- package/fesm2022/primeng-galleria.mjs.map +1 -1
- package/fesm2022/primeng-iconfield.mjs +1 -1
- package/fesm2022/primeng-icons-baseicon.mjs +1 -1
- package/fesm2022/primeng-iftalabel.mjs +1 -1
- package/fesm2022/primeng-image.mjs +112 -65
- package/fesm2022/primeng-image.mjs.map +1 -1
- package/fesm2022/primeng-imagecompare.mjs +30 -10
- package/fesm2022/primeng-imagecompare.mjs.map +1 -1
- package/fesm2022/primeng-inplace.mjs +48 -23
- package/fesm2022/primeng-inplace.mjs.map +1 -1
- package/fesm2022/primeng-inputgroupaddon.mjs +1 -1
- package/fesm2022/primeng-inputicon.mjs +1 -1
- package/fesm2022/primeng-inputmask.mjs +30 -14
- package/fesm2022/primeng-inputmask.mjs.map +1 -1
- package/fesm2022/primeng-inputnumber.mjs +54 -46
- package/fesm2022/primeng-inputnumber.mjs.map +1 -1
- package/fesm2022/primeng-inputotp.mjs +29 -10
- package/fesm2022/primeng-inputotp.mjs.map +1 -1
- package/fesm2022/primeng-inputswitch.mjs +1 -1
- package/fesm2022/primeng-inputtext.mjs +1 -1
- package/fesm2022/primeng-inputtextarea.mjs +1 -1
- package/fesm2022/primeng-keyfilter.mjs +1 -1
- package/fesm2022/primeng-knob.mjs +1 -1
- package/fesm2022/primeng-listbox.mjs +136 -77
- package/fesm2022/primeng-listbox.mjs.map +1 -1
- package/fesm2022/primeng-megamenu.mjs +104 -58
- package/fesm2022/primeng-megamenu.mjs.map +1 -1
- package/fesm2022/primeng-menu.mjs +26 -26
- package/fesm2022/primeng-menu.mjs.map +1 -1
- package/fesm2022/primeng-menubar.mjs +69 -34
- package/fesm2022/primeng-menubar.mjs.map +1 -1
- package/fesm2022/primeng-message.mjs +49 -25
- package/fesm2022/primeng-message.mjs.map +1 -1
- package/fesm2022/primeng-messages.mjs +12 -3
- package/fesm2022/primeng-messages.mjs.map +1 -1
- package/fesm2022/primeng-metergroup.mjs +62 -30
- package/fesm2022/primeng-metergroup.mjs.map +1 -1
- package/fesm2022/primeng-multiselect.mjs +246 -155
- package/fesm2022/primeng-multiselect.mjs.map +1 -1
- package/fesm2022/primeng-orderlist.mjs +124 -69
- package/fesm2022/primeng-orderlist.mjs.map +1 -1
- package/fesm2022/primeng-organizationchart.mjs +30 -14
- package/fesm2022/primeng-organizationchart.mjs.map +1 -1
- package/fesm2022/primeng-overlay.mjs +26 -6
- package/fesm2022/primeng-overlay.mjs.map +1 -1
- package/fesm2022/primeng-overlaybadge.mjs +1 -1
- package/fesm2022/primeng-overlaypanel.mjs +33 -10
- package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
- package/fesm2022/primeng-paginator.mjs +91 -59
- package/fesm2022/primeng-paginator.mjs.map +1 -1
- package/fesm2022/primeng-panel.mjs +160 -100
- package/fesm2022/primeng-panel.mjs.map +1 -1
- package/fesm2022/primeng-panelmenu.mjs +55 -32
- package/fesm2022/primeng-panelmenu.mjs.map +1 -1
- package/fesm2022/primeng-password.mjs +87 -48
- package/fesm2022/primeng-password.mjs.map +1 -1
- package/fesm2022/primeng-picklist.mjs +362 -258
- package/fesm2022/primeng-picklist.mjs.map +1 -1
- package/fesm2022/primeng-popover.mjs +29 -12
- package/fesm2022/primeng-popover.mjs.map +1 -1
- package/fesm2022/primeng-progressbar.mjs +26 -8
- package/fesm2022/primeng-progressbar.mjs.map +1 -1
- package/fesm2022/primeng-progressspinner.mjs +1 -1
- package/fesm2022/primeng-radiobutton.mjs +1 -1
- package/fesm2022/primeng-rating.mjs +45 -21
- package/fesm2022/primeng-rating.mjs.map +1 -1
- package/fesm2022/primeng-scroller.mjs +46 -36
- package/fesm2022/primeng-scroller.mjs.map +1 -1
- package/fesm2022/primeng-scrollpanel.mjs +27 -8
- package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
- package/fesm2022/primeng-scrolltop.mjs +17 -10
- package/fesm2022/primeng-scrolltop.mjs.map +1 -1
- package/fesm2022/primeng-select.mjs +197 -118
- package/fesm2022/primeng-select.mjs.map +1 -1
- package/fesm2022/primeng-selectbutton.mjs +25 -10
- package/fesm2022/primeng-selectbutton.mjs.map +1 -1
- package/fesm2022/primeng-sidebar.mjs +81 -59
- package/fesm2022/primeng-sidebar.mjs.map +1 -1
- package/fesm2022/primeng-skeleton.mjs +1 -1
- package/fesm2022/primeng-slider.mjs +1 -1
- package/fesm2022/primeng-speeddial.mjs +53 -28
- package/fesm2022/primeng-speeddial.mjs.map +1 -1
- package/fesm2022/primeng-splitbutton.mjs +40 -17
- package/fesm2022/primeng-splitbutton.mjs.map +1 -1
- package/fesm2022/primeng-splitter.mjs +6 -6
- package/fesm2022/primeng-splitter.mjs.map +1 -1
- package/fesm2022/primeng-stepper.mjs +27 -13
- package/fesm2022/primeng-stepper.mjs.map +1 -1
- package/fesm2022/primeng-steps.mjs +1 -1
- package/fesm2022/primeng-styleclass.mjs +1 -1
- package/fesm2022/primeng-table.mjs +107 -96
- package/fesm2022/primeng-table.mjs.map +1 -1
- package/fesm2022/primeng-tabmenu.mjs +53 -26
- package/fesm2022/primeng-tabmenu.mjs.map +1 -1
- package/fesm2022/primeng-tabs.mjs +27 -19
- package/fesm2022/primeng-tabs.mjs.map +1 -1
- package/fesm2022/primeng-tabview.mjs +106 -54
- package/fesm2022/primeng-tabview.mjs.map +1 -1
- package/fesm2022/primeng-tag.mjs +67 -43
- package/fesm2022/primeng-tag.mjs.map +1 -1
- package/fesm2022/primeng-terminal.mjs +1 -1
- package/fesm2022/primeng-textarea.mjs +1 -1
- package/fesm2022/primeng-tieredmenu.mjs +43 -20
- package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
- package/fesm2022/primeng-timeline.mjs +40 -16
- package/fesm2022/primeng-timeline.mjs.map +1 -1
- package/fesm2022/primeng-toast.mjs +31 -9
- package/fesm2022/primeng-toast.mjs.map +1 -1
- package/fesm2022/primeng-togglebutton.mjs +44 -29
- package/fesm2022/primeng-togglebutton.mjs.map +1 -1
- package/fesm2022/primeng-toggleswitch.mjs +27 -8
- package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
- package/fesm2022/primeng-toolbar.mjs +46 -20
- package/fesm2022/primeng-toolbar.mjs.map +1 -1
- package/fesm2022/primeng-tooltip.mjs +35 -70
- package/fesm2022/primeng-tooltip.mjs.map +1 -1
- package/fesm2022/primeng-tree.mjs +114 -97
- package/fesm2022/primeng-tree.mjs.map +1 -1
- package/fesm2022/primeng-treeselect.mjs +155 -88
- package/fesm2022/primeng-treeselect.mjs.map +1 -1
- package/fesm2022/primeng-treetable.mjs +30 -11
- package/fesm2022/primeng-treetable.mjs.map +1 -1
- package/fesm2022/primeng-usestyle.mjs +1 -1
- package/fesm2022/primeng-usestyle.mjs.map +1 -1
- package/fieldset/fieldset.d.ts +12 -6
- package/fileupload/fileupload.d.ts +19 -8
- package/galleria/galleria.d.ts +3 -2
- package/image/image.d.ts +18 -7
- package/imagecompare/imagecompare.d.ts +7 -2
- package/inplace/inplace.d.ts +12 -6
- package/inputmask/inputmask.d.ts +8 -4
- package/inputnumber/inputnumber.d.ts +11 -6
- package/inputotp/inputotp.d.ts +7 -2
- package/listbox/listbox.d.ts +17 -4
- package/megamenu/megamenu.d.ts +16 -7
- package/menu/menu.d.ts +6 -6
- package/menubar/menubar.d.ts +13 -6
- package/message/message.d.ts +10 -4
- package/messages/messages.d.ts +4 -3
- package/metergroup/metergroup.d.ts +11 -3
- package/multiselect/multiselect.d.ts +36 -17
- package/orderlist/orderlist.d.ts +23 -11
- package/organizationchart/organizationchart.d.ts +6 -4
- package/overlay/overlay.d.ts +6 -3
- package/overlaypanel/overlaypanel.d.ts +6 -3
- package/package.json +171 -165
- package/paginator/paginator.d.ts +15 -8
- package/panel/panel.d.ts +14 -5
- package/panelmenu/panelmenu.d.ts +8 -4
- package/password/password.d.ts +15 -7
- package/picklist/picklist.d.ts +23 -3
- package/popover/popover.d.ts +8 -5
- package/progressbar/progressbar.d.ts +7 -3
- package/rating/rating.d.ts +11 -5
- package/scroller/scroller.d.ts +9 -4
- package/scrollpanel/scrollpanel.d.ts +7 -3
- package/scrolltop/scrolltop.d.ts +7 -4
- package/select/select.d.ts +31 -13
- package/selectbutton/selectbutton.d.ts +7 -3
- package/sidebar/sidebar.d.ts +9 -2
- package/speeddial/speeddial.d.ts +9 -4
- package/splitbutton/splitbutton.d.ts +9 -5
- package/splitter/splitter.d.ts +4 -4
- package/stepper/stepper.d.ts +8 -3
- package/table/table.d.ts +2 -2
- package/tabmenu/tabmenu.d.ts +12 -7
- package/tabs/tablist.d.ts +6 -2
- package/tabview/tabview.d.ts +16 -7
- package/tag/tag.d.ts +8 -9
- package/tieredmenu/tieredmenu.d.ts +10 -6
- package/timeline/timeline.d.ts +7 -2
- package/toast/toast.d.ts +7 -3
- package/togglebutton/togglebutton.d.ts +8 -3
- package/toggleswitch/toggleswitch.d.ts +6 -2
- package/toolbar/toolbar.d.ts +9 -4
- package/tooltip/tooltip.d.ts +2 -1
- package/tree/tree.d.ts +23 -10
- package/treeselect/treeselect.d.ts +26 -12
- package/treetable/treetable.d.ts +7 -5
@@ -1,8 +1,8 @@
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
2
|
-
import { ChangeDetectionStrategy, Component, computed, contentChild, ContentChild, contentChildren, effect, forwardRef, inject, input, model, NgModule, signal, ViewEncapsulation } from '@angular/core';
|
2
|
+
import { ChangeDetectionStrategy, Component, computed, contentChild, ContentChild, ContentChildren, contentChildren, effect, forwardRef, inject, input, model, NgModule, signal, ViewEncapsulation } from '@angular/core';
|
3
3
|
import { animate, state, style, transition, trigger } from '@angular/animations';
|
4
4
|
import { find, findIndexInList, uuid } from '@primeuix/utils';
|
5
|
-
import { SharedModule } from 'primeng/api';
|
5
|
+
import { PrimeTemplate, SharedModule } from 'primeng/api';
|
6
6
|
import { BaseComponent } from 'primeng/basecomponent';
|
7
7
|
import { transformToBoolean } from 'primeng/utils';
|
8
8
|
import { StepperStyle } from './style/stepperstyle';
|
@@ -44,7 +44,7 @@ function Step_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
44
44
|
i0.ɵɵtemplate(0, Step_Conditional_1_ng_container_0_Template, 1, 0, "ng-container", 3)(1, Step_Conditional_1_Conditional_1_Template, 1, 0, "p-stepper-separator");
|
45
45
|
} if (rf & 2) {
|
46
46
|
const ctx_r1 = i0.ɵɵnextContext();
|
47
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.content)("ngTemplateOutletContext", i0.ɵɵpureFunction3(3, _c2, ctx_r1.onStepClick.bind(ctx_r1), ctx_r1.value(), ctx_r1.active()));
|
47
|
+
i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.content || ctx_r1._contentTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction3(3, _c2, ctx_r1.onStepClick.bind(ctx_r1), ctx_r1.value(), ctx_r1.active()));
|
48
48
|
i0.ɵɵadvance();
|
49
49
|
i0.ɵɵconditional(ctx_r1.isSeparatorVisible() ? 1 : -1);
|
50
50
|
} }
|
@@ -61,7 +61,7 @@ function StepPanel_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
61
61
|
i0.ɵɵtemplate(0, StepPanel_Conditional_2_ng_container_0_Template, 1, 0, "ng-container", 1);
|
62
62
|
} if (rf & 2) {
|
63
63
|
const ctx_r0 = i0.ɵɵnextContext();
|
64
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.contentTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction3(2, _c2, ctx_r0.updateValue.bind(ctx_r0), ctx_r0.value(), ctx_r0.active()));
|
64
|
+
i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.contentTemplate || ctx_r0._contentTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction3(2, _c2, ctx_r0.updateValue.bind(ctx_r0), ctx_r0.value(), ctx_r0.active()));
|
65
65
|
} }
|
66
66
|
export class StepList extends BaseComponent {
|
67
67
|
static ɵfac = /*@__PURE__*/ (() => { let ɵStepList_BaseFactory; return function StepList_Factory(__ngFactoryType__) { return (ɵStepList_BaseFactory || (ɵStepList_BaseFactory = i0.ɵɵgetInheritedFactory(StepList)))(__ngFactoryType__ || StepList); }; })();
|
@@ -208,11 +208,13 @@ export class Step extends BaseComponent {
|
|
208
208
|
* @group Templates
|
209
209
|
*/
|
210
210
|
content;
|
211
|
+
templates;
|
212
|
+
_contentTemplate;
|
211
213
|
ngAfterContentInit() {
|
212
214
|
this.templates?.forEach((item) => {
|
213
215
|
switch (item.getType()) {
|
214
216
|
case 'content':
|
215
|
-
this.
|
217
|
+
this._contentTemplate = item.template;
|
216
218
|
break;
|
217
219
|
}
|
218
220
|
});
|
@@ -222,10 +224,12 @@ export class Step extends BaseComponent {
|
|
222
224
|
}
|
223
225
|
static ɵfac = /*@__PURE__*/ (() => { let ɵStep_BaseFactory; return function Step_Factory(__ngFactoryType__) { return (ɵStep_BaseFactory || (ɵStep_BaseFactory = i0.ɵɵgetInheritedFactory(Step)))(__ngFactoryType__ || Step); }; })();
|
224
226
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Step, selectors: [["p-step"]], contentQueries: function Step_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
225
|
-
i0.ɵɵcontentQuery(dirIndex, _c1,
|
227
|
+
i0.ɵɵcontentQuery(dirIndex, _c1, 4);
|
228
|
+
i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);
|
226
229
|
} if (rf & 2) {
|
227
230
|
let _t;
|
228
231
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.content = _t.first);
|
232
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);
|
229
233
|
} }, hostVars: 13, hostBindings: function Step_HostBindings(rf, ctx) { if (rf & 2) {
|
230
234
|
i0.ɵɵattribute("aria-current", ctx.active() ? "step" : undefined)("role", "presentation")("data-p-active", ctx.active())("data-p-disabled", ctx.isStepDisabled())("data-pc-name", "step");
|
231
235
|
i0.ɵɵclassProp("p-step", true)("p-step-active", ctx.active())("p-disabled", ctx.isStepDisabled())("p-component", true);
|
@@ -233,7 +237,7 @@ export class Step extends BaseComponent {
|
|
233
237
|
i0.ɵɵprojectionDef();
|
234
238
|
i0.ɵɵtemplate(0, Step_Conditional_0_Template, 6, 7)(1, Step_Conditional_1_Template, 2, 7);
|
235
239
|
} if (rf & 2) {
|
236
|
-
i0.ɵɵconditional(!ctx.content ? 0 : 1);
|
240
|
+
i0.ɵɵconditional(!ctx.content && !ctx._contentTemplate ? 0 : 1);
|
237
241
|
} }, dependencies: [CommonModule, i1.NgTemplateOutlet, StepperSeparator, SharedModule], encapsulation: 2, changeDetection: 0 });
|
238
242
|
}
|
239
243
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Step, [{
|
@@ -243,7 +247,7 @@ export class Step extends BaseComponent {
|
|
243
247
|
standalone: true,
|
244
248
|
imports: [CommonModule, StepperSeparator, SharedModule],
|
245
249
|
template: `
|
246
|
-
@if (!content) {
|
250
|
+
@if (!content && !_contentTemplate) {
|
247
251
|
<button [attr.id]="id()" class="p-step-header" [attr.role]="'tab'" [tabindex]="isStepDisabled() ? -1 : undefined" [attr.aria-controls]="ariaControls()" [disabled]="isStepDisabled()" (click)="onStepClick()">
|
248
252
|
<span class="p-step-number">{{ value() }}</span>
|
249
253
|
<span class="p-step-title">
|
@@ -254,7 +258,7 @@ export class Step extends BaseComponent {
|
|
254
258
|
<p-stepper-separator />
|
255
259
|
}
|
256
260
|
} @else {
|
257
|
-
<ng-container *ngTemplateOutlet="content; context: { activateCallback: onStepClick.bind(this), value: value(), active: active() }"></ng-container>
|
261
|
+
<ng-container *ngTemplateOutlet="content || _contentTemplate; context: { activateCallback: onStepClick.bind(this), value: value(), active: active() }"></ng-container>
|
258
262
|
@if (isSeparatorVisible()) {
|
259
263
|
<p-stepper-separator />
|
260
264
|
}
|
@@ -276,7 +280,10 @@ export class Step extends BaseComponent {
|
|
276
280
|
}]
|
277
281
|
}], null, { content: [{
|
278
282
|
type: ContentChild,
|
279
|
-
args: ['content']
|
283
|
+
args: ['content', { descendants: false }]
|
284
|
+
}], templates: [{
|
285
|
+
type: ContentChildren,
|
286
|
+
args: [PrimeTemplate]
|
280
287
|
}] }); })();
|
281
288
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(Step, { className: "Step" }); })();
|
282
289
|
/**
|
@@ -312,11 +319,13 @@ export class StepPanel extends BaseComponent {
|
|
312
319
|
* @group Templates
|
313
320
|
*/
|
314
321
|
contentTemplate;
|
322
|
+
templates;
|
323
|
+
_contentTemplate;
|
315
324
|
ngAfterContentInit() {
|
316
325
|
this.templates?.forEach((item) => {
|
317
326
|
switch (item.getType()) {
|
318
327
|
case 'content':
|
319
|
-
this.
|
328
|
+
this._contentTemplate = item.template;
|
320
329
|
break;
|
321
330
|
}
|
322
331
|
});
|
@@ -327,9 +336,11 @@ export class StepPanel extends BaseComponent {
|
|
327
336
|
static ɵfac = /*@__PURE__*/ (() => { let ɵStepPanel_BaseFactory; return function StepPanel_Factory(__ngFactoryType__) { return (ɵStepPanel_BaseFactory || (ɵStepPanel_BaseFactory = i0.ɵɵgetInheritedFactory(StepPanel)))(__ngFactoryType__ || StepPanel); }; })();
|
328
337
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: StepPanel, selectors: [["p-step-panel"]], contentQueries: function StepPanel_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
329
338
|
i0.ɵɵcontentQuery(dirIndex, _c1, 5);
|
339
|
+
i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);
|
330
340
|
} if (rf & 2) {
|
331
341
|
let _t;
|
332
342
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first);
|
343
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);
|
333
344
|
} }, hostVars: 11, hostBindings: function StepPanel_HostBindings(rf, ctx) { if (rf & 2) {
|
334
345
|
i0.ɵɵattribute("role", "tabpanel")("aria-controls", ctx.ariaControls())("id", ctx.id())("data-p-active", ctx.active())("data-pc-name", "steppanel");
|
335
346
|
i0.ɵɵclassProp("p-steppanel", true)("p-component", true)("p-steppanel-active", ctx.active());
|
@@ -371,7 +382,7 @@ export class StepPanel extends BaseComponent {
|
|
371
382
|
}
|
372
383
|
<div class="p-steppanel-content" [@content]="isVertical() ? (active() ? { value: 'visible', params: { transitionParams: transitionOptions() } } : { value: 'hidden', params: { transitionParams: transitionOptions() } }) : undefined">
|
373
384
|
@if (active()) {
|
374
|
-
<ng-container *ngTemplateOutlet="contentTemplate; context: { activateCallback: updateValue.bind(this), value: value(), active: active() }"></ng-container>
|
385
|
+
<ng-container *ngTemplateOutlet="contentTemplate || _contentTemplate; context: { activateCallback: updateValue.bind(this), value: value(), active: active() }"></ng-container>
|
375
386
|
}
|
376
387
|
</div>
|
377
388
|
`,
|
@@ -405,6 +416,9 @@ export class StepPanel extends BaseComponent {
|
|
405
416
|
}], null, { contentTemplate: [{
|
406
417
|
type: ContentChild,
|
407
418
|
args: ['content']
|
419
|
+
}], templates: [{
|
420
|
+
type: ContentChildren,
|
421
|
+
args: [PrimeTemplate]
|
408
422
|
}] }); })();
|
409
423
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(StepPanel, { className: "StepPanel" }); })();
|
410
424
|
export class StepPanels extends BaseComponent {
|
@@ -518,4 +532,4 @@ export class StepperModule {
|
|
518
532
|
}]
|
519
533
|
}], null, null); })();
|
520
534
|
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(StepperModule, { imports: [Stepper, StepList, StepPanels, StepPanel, StepItem, Step, StepperSeparator, SharedModule], exports: [Stepper, StepList, StepPanels, StepPanel, StepItem, Step, StepperSeparator, SharedModule] }); })();
|
521
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdGVwcGVyL3N0ZXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEVBQ1osWUFBWSxFQUNaLGVBQWUsRUFDZixNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBR0wsS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBRU4saUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztJQTRIcEMsc0NBQXVCOzs7O0lBUDNCLGlDQUE4TTtJQUF4Qix3S0FBUyxvQkFBYSxLQUFDO0lBQ3pNLCtCQUE0QjtJQUFBLFlBQWE7SUFBQSxpQkFBTztJQUNoRCwrQkFBMkI7SUFDdkIsa0JBQXlCO0lBRWpDLEFBREksaUJBQU8sRUFDRjtJQUNULHdGQUE0Qjs7O0lBTjRILEFBQXJGLG1FQUE4QyxxQ0FBb0U7O0lBQ3JKLGVBQWE7SUFBYixvQ0FBYTtJQUs3QyxlQUVDO0lBRkQsc0RBRUM7OztJQUVELHdCQUFrSjs7O0lBRTlJ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RSxXQUFXO29CQUMxQixXQUFXLEVBQUUsTUFBTTtpQkFDdEI7YUFDSjs7a0ZBQ1ksT0FBTztBQWdEcEIsTUFBTSxPQUFPLGFBQWE7dUdBQWIsYUFBYTs0REFBYixhQUFhO2dFQUhaLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFDWixZQUFZOztpRkFFekYsYUFBYTtjQUp6QixRQUFRO2VBQUM7Z0JBQ04sT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO2dCQUNuRyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLENBQUM7YUFDdEc7O3dGQUNZLGFBQWEsY0FoRGIsT0FBTyxFQTNTUCxRQUFRLEVBc1JSLFVBQVUsRUFoRVYsU0FBUyxFQXJMVCxRQUFRLEVBMEVSLElBQUksRUE3RkosZ0JBQWdCLEVBMFU2RCxZQUFZLGFBN0N6RixPQUFPLEVBM1NQLFFBQVEsRUFzUlIsVUFBVSxFQWhFVixTQUFTLEVBckxULFFBQVEsRUEwRVIsSUFBSSxFQTdGSixnQkFBZ0IsRUEyVTZELFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBjb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIGNvbnRlbnRDaGlsZHJlbixcbiAgICBlZmZlY3QsXG4gICAgZm9yd2FyZFJlZixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgSW5wdXRTaWduYWwsXG4gICAgSW5wdXRTaWduYWxXaXRoVHJhbnNmb3JtLFxuICAgIG1vZGVsLFxuICAgIE1vZGVsU2lnbmFsLFxuICAgIE5nTW9kdWxlLFxuICAgIHNpZ25hbCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBmaW5kLCBmaW5kSW5kZXhJbkxpc3QsIHV1aWQgfSBmcm9tICdAcHJpbWV1aXgvdXRpbHMnO1xuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ3ByaW1lbmcvYmFzZWNvbXBvbmVudCc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1Ub0Jvb2xlYW4gfSBmcm9tICdwcmltZW5nL3V0aWxzJztcbmltcG9ydCB7IFN0ZXBwZXJTdHlsZSB9IGZyb20gJy4vc3R5bGUvc3RlcHBlcnN0eWxlJztcblxuLyoqXG4gKiBDb250ZXh0IGludGVyZmFjZSBmb3IgdGhlIFN0ZXBQYW5lbCBjb250ZW50IHRlbXBsYXRlLlxuICogQHByb3BlcnR5IHsoKSA9PiB2b2lkfSBhY3RpdmF0ZUNhbGxiYWNrIC0gQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYWN0aXZhdGUgYSBzdGVwLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHZhbHVlIC0gVGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3RlcC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gYWN0aXZlIC0gQSBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGUgc3RlcCBpcyBhY3RpdmUuXG4gKiBAZ3JvdXAgSW50ZXJmYWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcENvbnRlbnRUZW1wbGF0ZUNvbnRleHQge1xuICAgIGFjdGl2YXRlQ2FsbGJhY2s6ICgpID0+IHZvaWQ7XG4gICAgdmFsdWU6IG51bWJlcjtcbiAgICBhY3RpdmU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29udGV4dCBpbnRlcmZhY2UgZm9yIHRoZSBTdGVwUGFuZWwgY29udGVudCB0ZW1wbGF0ZS5cbiAqIEBwcm9wZXJ0eSB7KGluZGV4OiBudW1iZXIpID0+IHZvaWR9IGFjdGl2YXRlQ2FsbGJhY2sgLSBDYWxsYmFjayBmdW5jdGlvbiB0byBhY3RpdmF0ZSBhIHN0ZXAuXG4gKiBAcHJvcGVydHkge251bWJlcn0gdmFsdWUgLSBUaGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBzdGVwLlxuICogQHByb3BlcnR5IHtib29sZWFufSBhY3RpdmUgLSBBIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBzdGVwIGlzIGFjdGl2ZS5cbiAqIEBncm91cCBJbnRlcmZhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGVwUGFuZWxDb250ZW50VGVtcGxhdGVDb250ZXh0IHtcbiAgICBhY3RpdmF0ZUNhbGxiYWNrOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgICB2YWx1ZTogbnVtYmVyO1xuICAgIGFjdGl2ZTogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLXN0ZXAtbGlzdCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYCA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5wLXN0ZXBsaXN0XSc6ICd0cnVlJyxcbiAgICAgICAgJ1tjbGFzcy5wLWNvbXBvbmVudF0nOiAndHJ1ZSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBMaXN0IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7fVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Atc3RlcHBlci1zZXBhcmF0b3InLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MucC1zdGVwcGVyLXNlcGFyYXRvcl0nOiAndHJ1ZScsXG4gICAgICAgICdbY2xhc3MucC1jb21wb25lbnRdJzogJ3RydWUnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBTdGVwcGVyU2VwYXJhdG9yIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7fVxuXG4vKipcbiAqIFN0ZXBJdGVtIGlzIGEgaGVscGVyIGNvbXBvbmVudCBmb3IgU3RlcHBlciBjb21wb25lbnQgdXNlZCBpbiB2ZXJ0aWNhbCBvcmllbnRhdGlvbi5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1zdGVwLWl0ZW0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MucC1zdGVwaXRlbV0nOiAndHJ1ZScsXG4gICAgICAgICdbY2xhc3MucC1jb21wb25lbnRdJzogJ3RydWUnLFxuICAgICAgICAnW2F0dHIuZGF0YS1wLWFjdGl2ZV0nOiAnaXNBY3RpdmUoKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBJdGVtIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gICAgcGNTdGVwcGVyID0gaW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gU3RlcHBlcikpO1xuICAgIC8qKlxuICAgICAqIFZhbHVlIG9mIHN0ZXAuXG4gICAgICogQHR5cGUgezxudW1iZXIgfCB1bmRlZmluZWQ+fVxuICAgICAqIEBkZWZhdWx0VmFsdWUgdW5kZWZpbmVkXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgdmFsdWU6IE1vZGVsU2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4gPSBtb2RlbDxudW1iZXIgfCB1bmRlZmluZWQ+KCk7XG5cbiAgICBpc0FjdGl2ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGNTdGVwcGVyLnZhbHVlKCkgPT09IHRoaXMudmFsdWUoKSk7XG5cbiAgICBzdGVwID0gY29udGVudENoaWxkKFN0ZXApO1xuXG4gICAgc3RlcFBhbmVsID0gY29udGVudENoaWxkKFN0ZXBQYW5lbCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZWZmZWN0KFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCgpLnZhbHVlLnNldCh0aGlzLnZhbHVlKCkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICAgICApO1xuXG4gICAgICAgIGVmZmVjdChcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXBQYW5lbCgpLnZhbHVlLnNldCh0aGlzLnZhbHVlKCkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICAgICApO1xuICAgIH1cbn1cblxuLyoqXG4gKiBTdGVwIGlzIGEgaGVscGVyIGNvbXBvbmVudCBmb3IgU3RlcHBlciBjb21wb25lbnQuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Atc3RlcCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTdGVwcGVyU2VwYXJhdG9yLCBTaGFyZWRNb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIEBpZiAoIWNvbnRlbnQpIHtcbiAgICAgICAgICAgIDxidXR0b24gW2F0dHIuaWRdPVwiaWQoKVwiIGNsYXNzPVwicC1zdGVwLWhlYWRlclwiIFthdHRyLnJvbGVdPVwiJ3RhYidcIiBbdGFiaW5kZXhdPVwiaXNTdGVwRGlzYWJsZWQoKSA/IC0xIDogdW5kZWZpbmVkXCIgW2F0dHIuYXJpYS1jb250cm9sc109XCJhcmlhQ29udHJvbHMoKVwiIFtkaXNhYmxlZF09XCJpc1N0ZXBEaXNhYmxlZCgpXCIgKGNsaWNrKT1cIm9uU3RlcENsaWNrKClcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtc3RlcC1udW1iZXJcIj57eyB2YWx1ZSgpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1zdGVwLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIEBpZiAoaXNTZXBhcmF0b3JWaXNpYmxlKCkpIHtcbiAgICAgICAgICAgICAgICA8cC1zdGVwcGVyLXNlcGFyYXRvciAvPlxuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50OyBjb250ZXh0OiB7IGFjdGl2YXRlQ2FsbGJhY2s6IG9uU3RlcENsaWNrLmJpbmQodGhpcyksIHZhbHVlOiB2YWx1ZSgpLCBhY3RpdmU6IGFjdGl2ZSgpIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIEBpZiAoaXNTZXBhcmF0b3JWaXNpYmxlKCkpIHtcbiAgICAgICAgICAgICAgICA8cC1zdGVwcGVyLXNlcGFyYXRvciAvPlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5wLXN0ZXBdJzogJ3RydWUnLFxuICAgICAgICAnW2NsYXNzLnAtc3RlcC1hY3RpdmVdJzogJ2FjdGl2ZSgpJyxcbiAgICAgICAgJ1tjbGFzcy5wLWRpc2FibGVkXSc6ICdpc1N0ZXBEaXNhYmxlZCgpJyxcbiAgICAgICAgJ1tjbGFzcy5wLWNvbXBvbmVudF0nOiAndHJ1ZScsXG4gICAgICAgICdbYXR0ci5hcmlhLWN1cnJlbnRdJzogJ2FjdGl2ZSgpID8gXCJzdGVwXCIgOiB1bmRlZmluZWQnLFxuICAgICAgICAnW2F0dHIucm9sZV0nOiAnXCJwcmVzZW50YXRpb25cIicsXG4gICAgICAgICdbYXR0ci5kYXRhLXAtYWN0aXZlXSc6ICdhY3RpdmUoKScsXG4gICAgICAgICdbYXR0ci5kYXRhLXAtZGlzYWJsZWRdJzogJ2lzU3RlcERpc2FibGVkKCknLFxuICAgICAgICAnW2F0dHIuZGF0YS1wYy1uYW1lXSc6ICdcInN0ZXBcIidcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFN0ZXAgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgcGNTdGVwcGVyID0gaW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gU3RlcHBlcikpO1xuICAgIC8qKlxuICAgICAqIEFjdGl2ZSB2YWx1ZSBvZiBzdGVwcGVyLlxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICogQGRlZmF1bHRWYWx1ZSB1bmRlZmluZWRcbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICB2YWx1ZTogTW9kZWxTaWduYWw8bnVtYmVyPiA9IG1vZGVsPG51bWJlciB8IHVuZGVmaW5lZD4oKTtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBzdGVwIGlzIGRpc2FibGVkLlxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBkaXNhYmxlZDogSW5wdXRTaWduYWxXaXRoVHJhbnNmb3JtPGFueSwgYm9vbGVhbj4gPSBpbnB1dChmYWxzZSwge1xuICAgICAgICB0cmFuc2Zvcm06ICh2OiBhbnkgfCBib29sZWFuKSA9PiB0cmFuc2Zvcm1Ub0Jvb2xlYW4odilcbiAgICB9KTtcblxuICAgIGFjdGl2ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGNTdGVwcGVyLmlzU3RlcEFjdGl2ZSh0aGlzLnZhbHVlKCkpKTtcblxuICAgIGlzU3RlcERpc2FibGVkID0gY29tcHV0ZWQoKCkgPT4gIXRoaXMuYWN0aXZlKCkgJiYgKHRoaXMucGNTdGVwcGVyLmxpbmVhcigpIHx8IHRoaXMuZGlzYWJsZWQoKSkpO1xuXG4gICAgaWQgPSBjb21wdXRlZCgoKSA9PiBgJHt0aGlzLnBjU3RlcHBlci5pZCgpfV9zdGVwXyR7dGhpcy52YWx1ZSgpfWApO1xuXG4gICAgYXJpYUNvbnRyb2xzID0gY29tcHV0ZWQoKCkgPT4gYCR7dGhpcy5wY1N0ZXBwZXIuaWQoKX1fc3RlcHBhbmVsXyR7dGhpcy52YWx1ZSgpfWApO1xuXG4gICAgaXNTZXBhcmF0b3JWaXNpYmxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5wY1N0ZXBwZXIuc3RlcExpc3QoKSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBmaW5kSW5kZXhJbkxpc3QodGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLnBjU3RlcHBlci5zdGVwTGlzdCgpLmVsLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4pO1xuICAgICAgICAgICAgY29uc3Qgc3RlcExlbiA9IGZpbmQodGhpcy5wY1N0ZXBwZXIuc3RlcExpc3QoKS5lbC5uYXRpdmVFbGVtZW50LCAnW2RhdGEtcGMtbmFtZT1cInN0ZXBcIl0nKS5sZW5ndGg7XG4gICAgICAgICAgICByZXR1cm4gaW5kZXggIT09IHN0ZXBMZW4gLSAxO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgLyoqXG4gICAgICogQ29udGVudCB0ZW1wbGF0ZS5cbiAgICAgKiBAdHlwZSB7VGVtcGxhdGVSZWY8U3RlcENvbnRlbnRUZW1wbGF0ZUNvbnRleHQ+fVxuICAgICAqIEBncm91cCBUZW1wbGF0ZXNcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdjb250ZW50JykgY29udGVudDogVGVtcGxhdGVSZWY8U3RlcENvbnRlbnRUZW1wbGF0ZUNvbnRleHQ+O1xuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnRlbXBsYXRlcz8uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChpdGVtLmdldFR5cGUoKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2NvbnRlbnQnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnQgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25TdGVwQ2xpY2soKSB7XG4gICAgICAgIHRoaXMucGNTdGVwcGVyLnVwZGF0ZVZhbHVlKHRoaXMudmFsdWUoKSk7XG4gICAgfVxufVxuXG4vKipcbiAqIFN0ZXBQYW5lbCBpcyBhIGhlbHBlciBjb21wb25lbnQgZm9yIFN0ZXBwZXIgY29tcG9uZW50LlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLXN0ZXAtcGFuZWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU3RlcHBlclNlcGFyYXRvciwgU2hhcmVkTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICBAaWYgKGlzU2VwYXJhdG9yVmlzaWJsZSgpKSB7XG4gICAgICAgICAgICA8cC1zdGVwcGVyLXNlcGFyYXRvciAvPlxuICAgICAgICB9XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLXN0ZXBwYW5lbC1jb250ZW50XCIgW0Bjb250ZW50XT1cImlzVmVydGljYWwoKSA/IChhY3RpdmUoKSA/IHsgdmFsdWU6ICd2aXNpYmxlJywgcGFyYW1zOiB7IHRyYW5zaXRpb25QYXJhbXM6IHRyYW5zaXRpb25PcHRpb25zKCkgfSB9IDogeyB2YWx1ZTogJ2hpZGRlbicsIHBhcmFtczogeyB0cmFuc2l0aW9uUGFyYW1zOiB0cmFuc2l0aW9uT3B0aW9ucygpIH0gfSkgOiB1bmRlZmluZWRcIj5cbiAgICAgICAgICAgIEBpZiAoYWN0aXZlKCkpIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFRlbXBsYXRlOyBjb250ZXh0OiB7IGFjdGl2YXRlQ2FsbGJhY2s6IHVwZGF0ZVZhbHVlLmJpbmQodGhpcyksIHZhbHVlOiB2YWx1ZSgpLCBhY3RpdmU6IGFjdGl2ZSgpIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5wLXN0ZXBwYW5lbF0nOiAndHJ1ZScsXG4gICAgICAgICdbY2xhc3MucC1jb21wb25lbnRdJzogJ3RydWUnLFxuICAgICAgICAnW2NsYXNzLnAtc3RlcHBhbmVsLWFjdGl2ZV0nOiAnYWN0aXZlKCknLFxuICAgICAgICAnW2F0dHIucm9sZV0nOiAnXCJ0YWJwYW5lbFwiJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtY29udHJvbHNdJzogJ2FyaWFDb250cm9scygpJyxcbiAgICAgICAgJ1thdHRyLmlkXSc6ICdpZCgpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtcC1hY3RpdmVdJzogJ2FjdGl2ZSgpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtcGMtbmFtZV0nOiAnXCJzdGVwcGFuZWxcIidcbiAgICB9LFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgdHJpZ2dlcignY29udGVudCcsIFtcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgICdoaWRkZW4nLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMCcsXG4gICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6ICdoaWRkZW4nXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICAndmlzaWJsZScsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcqJyxcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogJ3Zpc2libGUnXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCd2aXNpYmxlIDw9PiBoaWRkZW4nLCBbYW5pbWF0ZSgnMjUwbXMgY3ViaWMtYmV6aWVyKDAuODYsIDAsIDAuMDcsIDEpJyldKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIGFuaW1hdGUoMCkpXG4gICAgICAgIF0pXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBTdGVwUGFuZWwgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgcGNTdGVwcGVyID0gaW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gU3RlcHBlcikpO1xuXG4gICAgdHJhbnNpdGlvbk9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBjU3RlcHBlci50cmFuc2l0aW9uT3B0aW9ucygpKTtcbiAgICAvKipcbiAgICAgKiBBY3RpdmUgdmFsdWUgb2Ygc3RlcHBlci5cbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgICAqIEBkZWZhdWx0VmFsdWUgdW5kZWZpbmVkXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgdmFsdWU6IE1vZGVsU2lnbmFsPG51bWJlcj4gPSBtb2RlbDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgICBhY3RpdmUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBjU3RlcHBlci52YWx1ZSgpID09PSB0aGlzLnZhbHVlKCkpO1xuXG4gICAgYXJpYUNvbnRyb2xzID0gY29tcHV0ZWQoKCkgPT4gYCR7dGhpcy5wY1N0ZXBwZXIuaWQoKX1fc3RlcF8ke3RoaXMudmFsdWUoKX1gKTtcblxuICAgIGlkID0gY29tcHV0ZWQoKCkgPT4gYCR7dGhpcy5wY1N0ZXBwZXIuaWQoKX1fc3RlcHBhbmVsXyR7dGhpcy52YWx1ZSgpfWApO1xuXG4gICAgaXNWZXJ0aWNhbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGNTdGVwcGVyLnN0ZXBJdGVtcygpLmxlbmd0aCA+IDApO1xuXG4gICAgaXNTZXBhcmF0b3JWaXNpYmxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5wY1N0ZXBwZXIuc3RlcEl0ZW1zKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0ZXBMZW4gPSB0aGlzLnBjU3RlcHBlci5zdGVwSXRlbXMoKS5sZW5ndGg7XG4gICAgICAgICAgICBjb25zdCBzdGVwUGFuZWxFbGVtZW50cyA9IGZpbmQodGhpcy5wY1N0ZXBwZXIuZWwubmF0aXZlRWxlbWVudCwgJ1tkYXRhLXBjLW5hbWU9XCJzdGVwcGFuZWxcIl0nKTtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gZmluZEluZGV4SW5MaXN0KHRoaXMuZWwubmF0aXZlRWxlbWVudCwgc3RlcFBhbmVsRWxlbWVudHMpO1xuXG4gICAgICAgICAgICByZXR1cm4gaW5kZXggIT09IHN0ZXBMZW4gLSAxO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgLyoqXG4gICAgICogQ29udGVudCB0ZW1wbGF0ZS5cbiAgICAgKiBAcGFyYW0ge1N0ZXBQYW5lbENvbnRlbnRUZW1wbGF0ZUNvbnRleHR9IGNvbnRleHQgLSBDb250ZXh0IG9mIHRoZSB0ZW1wbGF0ZVxuICAgICAqIEBzZWUge0BsaW5rIFN0ZXBQYW5lbENvbnRlbnRUZW1wbGF0ZUNvbnRleHR9XG4gICAgICogQGdyb3VwIFRlbXBsYXRlc1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2NvbnRlbnQnKSBjb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPFN0ZXBQYW5lbENvbnRlbnRUZW1wbGF0ZUNvbnRleHQ+O1xuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnRlbXBsYXRlcz8uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChpdGVtLmdldFR5cGUoKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2NvbnRlbnQnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB1cGRhdGVWYWx1ZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMucGNTdGVwcGVyLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1zdGVwLXBhbmVscycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTaGFyZWRNb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLnAtc3RlcHBhbmVsc10nOiAndHJ1ZScsXG4gICAgICAgICdbY2xhc3MucC1jb21wb25lbnRdJzogJ3RydWUnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBTdGVwUGFuZWxzIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7fVxuXG4vKipcbiAqIFN0ZXBwZXIgaXMgYSBjb21wb25lbnQgdGhhdCBzdHJlYW1saW5lcyBhIHdpemFyZC1saWtlIHdvcmtmbG93LCBvcmdhbml6aW5nIGNvbnRlbnQgaW50byBjb2hlcmVudCBzdGVwcyBhbmQgdmlzdWFsbHkgZ3VpZGluZyB1c2VycyB0aHJvdWdoIGEgbnVtYmVyZWQgcHJvZ3Jlc3Npb24gaW4gYSBtdWx0aXN0ZXAgcHJvY2Vzcy5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1zdGVwcGVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNoYXJlZE1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtTdGVwcGVyU3R5bGVdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5wLXN0ZXBwZXJdJzogJ3RydWUnLFxuICAgICAgICAnW2NsYXNzLnAtY29tcG9uZW50XSc6ICd0cnVlJyxcbiAgICAgICAgJ1thdHRyLnJvbGVdJzogJ1widGFibGlzdFwiJyxcbiAgICAgICAgJ1thdHRyLmlkXSc6ICdpZCgpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgU3RlcHBlciBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIEEgbW9kZWwgdGhhdCBjYW4gaG9sZCBhIG51bWVyaWMgdmFsdWUgb3IgYmUgdW5kZWZpbmVkLlxuICAgICAqIEBkZWZhdWx0VmFsdWUgdW5kZWZpbmVkXG4gICAgICogQHR5cGUge01vZGVsU2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD59XG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgdmFsdWU6IE1vZGVsU2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4gPSBtb2RlbDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gICAgLyoqXG4gICAgICogQSBib29sZWFuIHZhcmlhYmxlIHRoYXQgY2FwdHVyZXMgdXNlciBpbnB1dC5cbiAgICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAgICogQHR5cGUge0lucHV0U2lnbmFsV2l0aFRyYW5zZm9ybTxhbnksIGJvb2xlYW4gPn1cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBsaW5lYXI6IElucHV0U2lnbmFsV2l0aFRyYW5zZm9ybTxhbnksIGJvb2xlYW4+ID0gaW5wdXQoZmFsc2UsIHtcbiAgICAgICAgdHJhbnNmb3JtOiAodjogYW55IHwgYm9vbGVhbikgPT4gdHJhbnNmb3JtVG9Cb29sZWFuKHYpXG4gICAgfSk7XG4gICAgLyoqXG4gICAgICogVHJhbnNpdGlvbiBvcHRpb25zIG9mIHRoZSBhbmltYXRpb24uXG4gICAgICogQGRlZmF1bHRWYWx1ZSA0MDBtcyBjdWJpYy1iZXppZXIoMC44NiwgMCwgMC4wNywgMSlcbiAgICAgKiBAdHlwZSB7SW5wdXRTaWduYWw8c3RyaW5nID59XG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgdHJhbnNpdGlvbk9wdGlvbnM6IElucHV0U2lnbmFsPHN0cmluZz4gPSBpbnB1dDxzdHJpbmc+KCc0MDBtcyBjdWJpYy1iZXppZXIoMC44NiwgMCwgMC4wNywgMSknKTtcblxuICAgIF9jb21wb25lbnRTdHlsZSA9IGluamVjdChTdGVwcGVyU3R5bGUpO1xuXG4gICAgaWQgPSBzaWduYWw8c3RyaW5nPih1dWlkKCdwbl9pZF8nKSk7XG5cbiAgICBzdGVwSXRlbXMgPSBjb250ZW50Q2hpbGRyZW4oU3RlcEl0ZW0pO1xuXG4gICAgc3RlcHMgPSBjb250ZW50Q2hpbGRyZW4oU3RlcCk7XG5cbiAgICBzdGVwTGlzdCA9IGNvbnRlbnRDaGlsZChTdGVwTGlzdCk7XG5cbiAgICB1cGRhdGVWYWx1ZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMudmFsdWUuc2V0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBpc1N0ZXBBY3RpdmUodmFsdWU6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSgpID09PSB2YWx1ZTtcbiAgICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1N0ZXBwZXIsIFN0ZXBMaXN0LCBTdGVwUGFuZWxzLCBTdGVwUGFuZWwsIFN0ZXBJdGVtLCBTdGVwLCBTdGVwcGVyU2VwYXJhdG9yLCBTaGFyZWRNb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtTdGVwcGVyLCBTdGVwTGlzdCwgU3RlcFBhbmVscywgU3RlcFBhbmVsLCBTdGVwSXRlbSwgU3RlcCwgU3RlcHBlclNlcGFyYXRvciwgU2hhcmVkTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBTdGVwcGVyTW9kdWxlIHt9XG4iXX0=
|
535
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdGVwcGVyL3N0ZXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEVBQ1osWUFBWSxFQUNaLGVBQWUsRUFDZixlQUFlLEVBQ2YsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUdMLEtBQUssRUFFTCxRQUFRLEVBRVIsTUFBTSxFQUVOLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7O0lBNEhwQyxzQ0FBdUI7Ozs7SUFQM0IsaUNBQThNO0lBQXhCLHdLQUFTLG9CQUFhLEtBQUM7SUFDek0sK0JBQTRCO0lBQUEsWUFBYTtJQUFBLGlCQUFPO0lBQ2hELCtCQUEyQjtJQUN2QixrQkFBeUI7SUFFakMsQUFESSxpQkFBTyxFQUNGO0lBQ1Qsd0ZBQTRCOzs7SUFONEgsQUFBckYsbUVBQThDLHFDQUFvRTs7SUFDckosZUFBYTtJQUFiLG9DQUFhO0lBSzdDLGVBRUM7SUFGRCxzREFFQzs7O0lBRUQsd0JBQXNLOzs7SUFFbEssc0NBQXVCOzs7SUFEM0IsQUFEQSxxRkFBdUosMkVBQzNIOzs7SUFEa0MsQUFBL0MsNEVBQStDLHlIQUF1RjtJQUNySixjQUVDO0lBRkQsc0RBRUM7Ozs7OztJQXVGRCxzQ0FBdUI7OztJQUluQix3QkFBOEs7OztJQUE5SywwRkFBK0o7OztJQUF6RixBQUF2RCxvRkFBdUQseUhBQXVGOztBQXJMN0ssTUFBTSxPQUFPLFFBQVMsU0FBUSxhQUFhOzZNQUE5QixRQUFRLHlCQUFSLFFBQVE7NkRBQVIsUUFBUTtZQUFSLDZCQUFBLElBQUksQ0FBSSxnQkFBUixJQUFJLENBQUk7OztZQVJMLGtCQUF5Qjs0QkFEM0IsWUFBWTs7aUZBU2IsUUFBUTtjQVpwQixTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBQ3ZCLFFBQVEsRUFBRSw0QkFBNEI7Z0JBQ3RDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsSUFBSSxFQUFFO29CQUNGLG9CQUFvQixFQUFFLE1BQU07b0JBQzVCLHFCQUFxQixFQUFFLE1BQU07aUJBQ2hDO2FBQ0o7O2tGQUNZLFFBQVE7QUFjckIsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGFBQWE7Nk9BQXRDLGdCQUFnQix5QkFBaEIsZ0JBQWdCOzZEQUFoQixnQkFBZ0I7WUFBaEIsc0NBQUEsSUFBSSxDQUFZLGdCQUFoQixJQUFJLENBQVk7OztZQVJiLGtCQUF5Qjs0QkFEM0IsWUFBWTs7aUZBU2IsZ0JBQWdCO2NBWjVCLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2dCQUN2QixRQUFRLEVBQUUsNEJBQTRCO2dCQUN0QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtnQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLElBQUksRUFBRTtvQkFDRiw2QkFBNkIsRUFBRSxNQUFNO29CQUNyQyxxQkFBcUIsRUFBRSxNQUFNO2lCQUNoQzthQUNKOztrRkFDWSxnQkFBZ0I7QUFFN0I7OztHQUdHO0FBY0gsTUFBTSxPQUFPLFFBQVMsU0FBUSxhQUFhO0lBQ3ZDLFNBQVMsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDOUM7Ozs7O09BS0c7SUFDSCxLQUFLLEdBQW9DLEtBQUssRUFBc0IsQ0FBQztJQUVyRSxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFFbkUsSUFBSSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUxQixTQUFTLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRXBDO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFDUixNQUFNLENBQ0YsR0FBRyxFQUFFO1lBQ0QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDeEMsQ0FBQyxFQUNELEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQzlCLENBQUM7UUFFRixNQUFNLENBQ0YsR0FBRyxFQUFFO1lBQ0QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDN0MsQ0FBQyxFQUNELEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQzlCLENBQUM7SUFDTixDQUFDO2tHQS9CUSxRQUFROzZEQUFSLFFBQVE7d0RBWUcsSUFBSTs2REFFQyxTQUFTOzs7OzRDQWR6QixjQUFVO1lBQVYsNkJBQUEsSUFBSSxDQUFJLGdCQUFSLElBQUksQ0FBSTs7O1lBVEwsa0JBQXlCOzRCQUQzQixZQUFZOztpRkFVYixRQUFRO2NBYnBCLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztnQkFDdkIsUUFBUSxFQUFFLDRCQUE0QjtnQkFDdEMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxJQUFJLEVBQUU7b0JBQ0Ysb0JBQW9CLEVBQUUsTUFBTTtvQkFDNUIscUJBQXFCLEVBQUUsTUFBTTtvQkFDN0Isc0JBQXNCLEVBQUUsWUFBWTtpQkFDdkM7YUFDSjs7a0ZBQ1ksUUFBUTtBQWtDckI7OztHQUdHO0FBcUNILE1BQU0sT0FBTyxJQUFLLFNBQVEsYUFBYTtJQUNuQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzlDOzs7OztPQUtHO0lBQ0gsS0FBSyxHQUF3QixLQUFLLEVBQXNCLENBQUM7SUFDekQ7Ozs7O09BS0c7SUFDSCxRQUFRLEdBQTJDLEtBQUssQ0FBQyxLQUFLLEVBQUU7UUFDNUQsU0FBUyxFQUFFLENBQUMsQ0FBZ0IsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0tBQ3pELENBQUMsQ0FBQztJQUVILE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVuRSxjQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRWhHLEVBQUUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxTQUFTLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFbkUsWUFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLGNBQWMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVsRixrQkFBa0IsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQy9CLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQzVCLE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDMUcsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUNqRyxPQUFPLEtBQUssS0FBSyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNIOzs7O09BSUc7SUFDOEMsT0FBTyxDQUEwQztJQUVsRSxTQUFTLENBQXVDO0lBRWhGLGdCQUFnQixDQUErQjtJQUUvQyxrQkFBa0I7UUFDZCxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzdCLFFBQVEsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7Z0JBQ3JCLEtBQUssU0FBUztvQkFDVixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztvQkFDdEMsTUFBTTtZQUNkLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQzs2TEF6RFEsSUFBSSx5QkFBSixJQUFJOzZEQUFKLElBQUk7O3dDQXlDSSxhQUFhOzs7Ozs7MkNBekNyQixZQUFRLEdBQUcsTUFBTSxHQUFHLFNBQVMsVUFBN0IsY0FBYyxtQkFBZCxZQUFRLHFCQUFSLG9CQUFnQixrQkFBaEIsTUFBTTtZQUFOLHlCQUFBLElBQUksQ0FBQSxrQkFBSixZQUFRLENBQUosZUFBSixvQkFBZ0IsQ0FBWixnQkFBSixJQUFJLENBQUE7OztZQXJCUCxBQVZGLG1EQUFxQyxzQ0FVNUI7O1lBVlQsK0RBZUM7NEJBakJLLFlBQVksdUJBNURiLGdCQUFnQixFQTREaUIsWUFBWTs7aUZBaUM3QyxJQUFJO2NBcENoQixTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO2dCQUN2RCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBaUJUO2dCQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsSUFBSSxFQUFFO29CQUNGLGdCQUFnQixFQUFFLE1BQU07b0JBQ3hCLHVCQUF1QixFQUFFLFVBQVU7b0JBQ25DLG9CQUFvQixFQUFFLGtCQUFrQjtvQkFDeEMscUJBQXFCLEVBQUUsTUFBTTtvQkFDN0IscUJBQXFCLEVBQUUsK0JBQStCO29CQUN0RCxhQUFhLEVBQUUsZ0JBQWdCO29CQUMvQixzQkFBc0IsRUFBRSxVQUFVO29CQUNsQyx3QkFBd0IsRUFBRSxrQkFBa0I7b0JBQzVDLHFCQUFxQixFQUFFLFFBQVE7aUJBQ2xDO2FBQ0o7Z0JBd0NvRCxPQUFPO2tCQUF2RCxZQUFZO21CQUFDLFNBQVMsRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7WUFFZixTQUFTO2tCQUF4QyxlQUFlO21CQUFDLGFBQWE7O2tGQXpDckIsSUFBSTtBQTREakI7OztHQUdHO0FBZ0RILE1BQU0sT0FBTyxTQUFVLFNBQVEsYUFBYTtJQUN4QyxTQUFTLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRTlDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUN2RTs7Ozs7T0FLRztJQUNILEtBQUssR0FBd0IsS0FBSyxDQUFxQixTQUFTLENBQUMsQ0FBQztJQUVsRSxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFFakUsWUFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLFNBQVMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUU3RSxFQUFFLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsY0FBYyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRXhFLFVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFbkUsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUMvQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUM3QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUNsRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsNEJBQTRCLENBQUMsQ0FBQztZQUM5RixNQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztZQUV4RSxPQUFPLEtBQUssS0FBSyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNIOzs7OztPQUtHO0lBQ3NCLGVBQWUsQ0FBK0M7SUFFdkQsU0FBUyxDQUF1QztJQUVoRixnQkFBZ0IsQ0FBK0I7SUFFL0Msa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM3QixRQUFRLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO2dCQUNyQixLQUFLLFNBQVM7b0JBQ1YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7b0JBQ3RDLE1BQU07WUFDZCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztpTkFyRFEsU0FBUyx5QkFBVCxTQUFTOzZEQUFULFNBQVM7O3dDQXFDRCxhQUFhOzs7Ozs7bUNBckNyQixVQUFVLG1CQUFWLGtCQUFjLFFBQWQsUUFBSSxtQkFBSixZQUFRLGtCQUFSLFdBQVc7WUFBWCw4QkFBQSxJQUFJLENBQUssZ0JBQVQsSUFBSSxDQUFLLHVCQUFULFlBQVEsQ0FBQzs7WUExQ2QsK0VBQTRCO1lBRzVCLDhCQUF1TztZQUNuTyx3RUFBZ0I7WUFHcEIsaUJBQU07O1lBUE4sbURBRUM7WUFDZ0MsY0FBcU07WUFBck0sME9BQXFNO1lBQ2xPLGNBRUM7WUFGRCx1Q0FFQzs0QkFSQyxZQUFZLHVCQWhLYixnQkFBZ0IsRUFnS2lCLFlBQVksd0NBdUIxQztnQkFDUixPQUFPLENBQUMsU0FBUyxFQUFFO29CQUNmLEtBQUssQ0FDRCxRQUFRLEVBQ1IsS0FBSyxDQUFDO3dCQUNGLE1BQU0sRUFBRSxHQUFHO3dCQUNYLFVBQVUsRUFBRSxRQUFRO3FCQUN2QixDQUFDLENBQ0w7b0JBQ0QsS0FBSyxDQUNELFNBQVMsRUFDVCxLQUFLLENBQUM7d0JBQ0YsTUFBTSxFQUFFLEdBQUc7d0JBQ1gsVUFBVSxFQUFFLFNBQVM7cUJBQ3hCLENBQUMsQ0FDTDtvQkFDRCxVQUFVLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxPQUFPLENBQUMsc0NBQXNDLENBQUMsQ0FBQyxDQUFDO29CQUNuRixVQUFVLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDdEMsQ0FBQzthQUNMOztpRkFFUSxTQUFTO2NBL0NyQixTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLGNBQWM7Z0JBQ3hCLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO2dCQUN2RCxRQUFRLEVBQUU7Ozs7Ozs7OztLQVNUO2dCQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsSUFBSSxFQUFFO29CQUNGLHFCQUFxQixFQUFFLE1BQU07b0JBQzdCLHFCQUFxQixFQUFFLE1BQU07b0JBQzdCLDRCQUE0QixFQUFFLFVBQVU7b0JBQ3hDLGFBQWEsRUFBRSxZQUFZO29CQUMzQixzQkFBc0IsRUFBRSxnQkFBZ0I7b0JBQ3hDLFdBQVcsRUFBRSxNQUFNO29CQUNuQixzQkFBc0IsRUFBRSxVQUFVO29CQUNsQyxxQkFBcUIsRUFBRSxhQUFhO2lCQUN2QztnQkFDRCxVQUFVLEVBQUU7b0JBQ1IsT0FBTyxDQUFDLFNBQVMsRUFBRTt3QkFDZixLQUFLLENBQ0QsUUFBUSxFQUNSLEtBQUssQ0FBQzs0QkFDRixNQUFNLEVBQUUsR0FBRzs0QkFDWCxVQUFVLEVBQUUsUUFBUTt5QkFDdkIsQ0FBQyxDQUNMO3dCQUNELEtBQUssQ0FDRCxTQUFTLEVBQ1QsS0FBSyxDQUFDOzRCQUNGLE1BQU0sRUFBRSxHQUFHOzRCQUNYLFVBQVUsRUFBRSxTQUFTO3lCQUN4QixDQUFDLENBQ0w7d0JBQ0QsVUFBVSxDQUFDLG9CQUFvQixFQUFFLENBQUMsT0FBTyxDQUFDLHNDQUFzQyxDQUFDLENBQUMsQ0FBQzt3QkFDbkYsVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ3RDLENBQUM7aUJBQ0w7YUFDSjtnQkFvQzRCLGVBQWU7a0JBQXZDLFlBQVk7bUJBQUMsU0FBUztZQUVTLFNBQVM7a0JBQXhDLGVBQWU7bUJBQUMsYUFBYTs7a0ZBckNyQixTQUFTO0FBb0V0QixNQUFNLE9BQU8sVUFBVyxTQUFRLGFBQWE7cU5BQWhDLFVBQVUseUJBQVYsVUFBVTs2REFBVixVQUFVO1lBQVYsK0JBQUEsSUFBSSxDQUFNLGdCQUFWLElBQUksQ0FBTTs7O1lBUlAsa0JBQXlCOzRCQUQzQixZQUFZLEVBQUUsWUFBWTs7aUZBUzNCLFVBQVU7Y0FadEIsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxlQUFlO2dCQUN6QixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQztnQkFDckMsUUFBUSxFQUFFLDRCQUE0QjtnQkFDdEMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxJQUFJLEVBQUU7b0JBQ0Ysc0JBQXNCLEVBQUUsTUFBTTtvQkFDOUIscUJBQXFCLEVBQUUsTUFBTTtpQkFDaEM7YUFDSjs7a0ZBQ1ksVUFBVTtBQUV2Qjs7O0dBR0c7QUFnQkgsTUFBTSxPQUFPLE9BQVEsU0FBUSxhQUFhO0lBQ3RDOzs7OztPQUtHO0lBQ0gsS0FBSyxHQUFvQyxLQUFLLENBQXFCLFNBQVMsQ0FBQyxDQUFDO0lBQzlFOzs7OztPQUtHO0lBQ0gsTUFBTSxHQUEyQyxLQUFLLENBQUMsS0FBSyxFQUFFO1FBQzFELFNBQVMsRUFBRSxDQUFDLENBQWdCLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztLQUN6RCxDQUFDLENBQUM7SUFDSDs7Ozs7T0FLRztJQUNILGlCQUFpQixHQUF3QixLQUFLLENBQVMsc0NBQXNDLENBQUMsQ0FBQztJQUUvRixlQUFlLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRXZDLEVBQUUsR0FBRyxNQUFNLENBQVMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFcEMsU0FBUyxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0QyxLQUFLLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTlCLFFBQVEsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFbEMsV0FBVyxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEtBQUssQ0FBQztJQUNsQyxDQUFDO3lNQXpDUSxPQUFPLHlCQUFQLE9BQU87NkRBQVAsT0FBTzs2REE2QlksUUFBUTt5REFFWixJQUFJOzREQUVKLFFBQVE7Ozs7bUNBakN2QixTQUFTLFFBQVQsUUFBSTtZQUFKLDRCQUFBLElBQUksQ0FBRyxnQkFBUCxJQUFJLENBQUc7d01BUkwsQ0FBQyxZQUFZLENBQUM7O1lBSGIsa0JBQXlCOzRCQUQzQixZQUFZLEVBQUUsWUFBWTs7aUZBWTNCLE9BQU87Y0FmbkIsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxXQUFXO2dCQUNyQixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQztnQkFDckMsUUFBUSxFQUFFLDRCQUE0QjtnQkFDdEMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxTQUFTLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBQ3pCLElBQUksRUFBRTtvQkFDRixtQkFBbUIsRUFBRSxNQUFNO29CQUMzQixxQkFBcUIsRUFBRSxNQUFNO29CQUM3QixhQUFhLEVBQUUsV0FBVztvQkFDMUIsV0FBVyxFQUFFLE1BQU07aUJBQ3RCO2FBQ0o7O2tGQUNZLE9BQU87QUFnRHBCLE1BQU0sT0FBTyxhQUFhO3VHQUFiLGFBQWE7NERBQWIsYUFBYTtnRUFIWixPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQ1osWUFBWTs7aUZBRXpGLGFBQWE7Y0FKekIsUUFBUTtlQUFDO2dCQUNOLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLFlBQVksQ0FBQztnQkFDbkcsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO2FBQ3RHOzt3RkFDWSxhQUFhLGNBaERiLE9BQU8sRUFuVFAsUUFBUSxFQThSUixVQUFVLEVBcEVWLFNBQVMsRUF6TFQsUUFBUSxFQTBFUixJQUFJLEVBN0ZKLGdCQUFnQixFQWtWNkQsWUFBWSxhQTdDekYsT0FBTyxFQW5UUCxRQUFRLEVBOFJSLFVBQVUsRUFwRVYsU0FBUyxFQXpMVCxRQUFRLEVBMEVSLElBQUksRUE3RkosZ0JBQWdCLEVBbVY2RCxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgY29tcHV0ZWQsXG4gICAgY29udGVudENoaWxkLFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgY29udGVudENoaWxkcmVuLFxuICAgIGVmZmVjdCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIGluamVjdCxcbiAgICBpbnB1dCxcbiAgICBJbnB1dFNpZ25hbCxcbiAgICBJbnB1dFNpZ25hbFdpdGhUcmFuc2Zvcm0sXG4gICAgbW9kZWwsXG4gICAgTW9kZWxTaWduYWwsXG4gICAgTmdNb2R1bGUsXG4gICAgUXVlcnlMaXN0LFxuICAgIHNpZ25hbCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBmaW5kLCBmaW5kSW5kZXhJbkxpc3QsIHV1aWQgfSBmcm9tICdAcHJpbWV1aXgvdXRpbHMnO1xuaW1wb3J0IHsgUHJpbWVUZW1wbGF0ZSwgU2hhcmVkTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ3ByaW1lbmcvYmFzZWNvbXBvbmVudCc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1Ub0Jvb2xlYW4gfSBmcm9tICdwcmltZW5nL3V0aWxzJztcbmltcG9ydCB7IFN0ZXBwZXJTdHlsZSB9IGZyb20gJy4vc3R5bGUvc3RlcHBlcnN0eWxlJztcblxuLyoqXG4gKiBDb250ZXh0IGludGVyZmFjZSBmb3IgdGhlIFN0ZXBQYW5lbCBjb250ZW50IHRlbXBsYXRlLlxuICogQHByb3BlcnR5IHsoKSA9PiB2b2lkfSBhY3RpdmF0ZUNhbGxiYWNrIC0gQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYWN0aXZhdGUgYSBzdGVwLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHZhbHVlIC0gVGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3RlcC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gYWN0aXZlIC0gQSBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGUgc3RlcCBpcyBhY3RpdmUuXG4gKiBAZ3JvdXAgSW50ZXJmYWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcENvbnRlbnRUZW1wbGF0ZUNvbnRleHQge1xuICAgIGFjdGl2YXRlQ2FsbGJhY2s6ICgpID0+IHZvaWQ7XG4gICAgdmFsdWU6IG51bWJlcjtcbiAgICBhY3RpdmU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29udGV4dCBpbnRlcmZhY2UgZm9yIHRoZSBTdGVwUGFuZWwgY29udGVudCB0ZW1wbGF0ZS5cbiAqIEBwcm9wZXJ0eSB7KGluZGV4OiBudW1iZXIpID0+IHZvaWR9IGFjdGl2YXRlQ2FsbGJhY2sgLSBDYWxsYmFjayBmdW5jdGlvbiB0byBhY3RpdmF0ZSBhIHN0ZXAuXG4gKiBAcHJvcGVydHkge251bWJlcn0gdmFsdWUgLSBUaGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBzdGVwLlxuICogQHByb3BlcnR5IHtib29sZWFufSBhY3RpdmUgLSBBIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBzdGVwIGlzIGFjdGl2ZS5cbiAqIEBncm91cCBJbnRlcmZhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGVwUGFuZWxDb250ZW50VGVtcGxhdGVDb250ZXh0IHtcbiAgICBhY3RpdmF0ZUNhbGxiYWNrOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgICB2YWx1ZTogbnVtYmVyO1xuICAgIGFjdGl2ZTogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLXN0ZXAtbGlzdCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYCA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5wLXN0ZXBsaXN0XSc6ICd0cnVlJyxcbiAgICAgICAgJ1tjbGFzcy5wLWNvbXBvbmVudF0nOiAndHJ1ZSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBMaXN0IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7fVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Atc3RlcHBlci1zZXBhcmF0b3InLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MucC1zdGVwcGVyLXNlcGFyYXRvcl0nOiAndHJ1ZScsXG4gICAgICAgICdbY2xhc3MucC1jb21wb25lbnRdJzogJ3RydWUnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBTdGVwcGVyU2VwYXJhdG9yIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7fVxuXG4vKipcbiAqIFN0ZXBJdGVtIGlzIGEgaGVscGVyIGNvbXBvbmVudCBmb3IgU3RlcHBlciBjb21wb25lbnQgdXNlZCBpbiB2ZXJ0aWNhbCBvcmllbnRhdGlvbi5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1zdGVwLWl0ZW0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MucC1zdGVwaXRlbV0nOiAndHJ1ZScsXG4gICAgICAgICdbY2xhc3MucC1jb21wb25lbnRdJzogJ3RydWUnLFxuICAgICAgICAnW2F0dHIuZGF0YS1wLWFjdGl2ZV0nOiAnaXNBY3RpdmUoKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBJdGVtIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gICAgcGNTdGVwcGVyID0gaW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gU3RlcHBlcikpO1xuICAgIC8qKlxuICAgICAqIFZhbHVlIG9mIHN0ZXAuXG4gICAgICogQHR5cGUgezxudW1iZXIgfCB1bmRlZmluZWQ+fVxuICAgICAqIEBkZWZhdWx0VmFsdWUgdW5kZWZpbmVkXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgdmFsdWU6IE1vZGVsU2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4gPSBtb2RlbDxudW1iZXIgfCB1bmRlZmluZWQ+KCk7XG5cbiAgICBpc0FjdGl2ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGNTdGVwcGVyLnZhbHVlKCkgPT09IHRoaXMudmFsdWUoKSk7XG5cbiAgICBzdGVwID0gY29udGVudENoaWxkKFN0ZXApO1xuXG4gICAgc3RlcFBhbmVsID0gY29udGVudENoaWxkKFN0ZXBQYW5lbCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZWZmZWN0KFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCgpLnZhbHVlLnNldCh0aGlzLnZhbHVlKCkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICAgICApO1xuXG4gICAgICAgIGVmZmVjdChcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXBQYW5lbCgpLnZhbHVlLnNldCh0aGlzLnZhbHVlKCkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICAgICApO1xuICAgIH1cbn1cblxuLyoqXG4gKiBTdGVwIGlzIGEgaGVscGVyIGNvbXBvbmVudCBmb3IgU3RlcHBlciBjb21wb25lbnQuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Atc3RlcCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTdGVwcGVyU2VwYXJhdG9yLCBTaGFyZWRNb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIEBpZiAoIWNvbnRlbnQgJiYgIV9jb250ZW50VGVtcGxhdGUpIHtcbiAgICAgICAgICAgIDxidXR0b24gW2F0dHIuaWRdPVwiaWQoKVwiIGNsYXNzPVwicC1zdGVwLWhlYWRlclwiIFthdHRyLnJvbGVdPVwiJ3RhYidcIiBbdGFiaW5kZXhdPVwiaXNTdGVwRGlzYWJsZWQoKSA/IC0xIDogdW5kZWZpbmVkXCIgW2F0dHIuYXJpYS1jb250cm9sc109XCJhcmlhQ29udHJvbHMoKVwiIFtkaXNhYmxlZF09XCJpc1N0ZXBEaXNhYmxlZCgpXCIgKGNsaWNrKT1cIm9uU3RlcENsaWNrKClcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtc3RlcC1udW1iZXJcIj57eyB2YWx1ZSgpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1zdGVwLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIEBpZiAoaXNTZXBhcmF0b3JWaXNpYmxlKCkpIHtcbiAgICAgICAgICAgICAgICA8cC1zdGVwcGVyLXNlcGFyYXRvciAvPlxuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50IHx8IF9jb250ZW50VGVtcGxhdGU7IGNvbnRleHQ6IHsgYWN0aXZhdGVDYWxsYmFjazogb25TdGVwQ2xpY2suYmluZCh0aGlzKSwgdmFsdWU6IHZhbHVlKCksIGFjdGl2ZTogYWN0aXZlKCkgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgQGlmIChpc1NlcGFyYXRvclZpc2libGUoKSkge1xuICAgICAgICAgICAgICAgIDxwLXN0ZXBwZXItc2VwYXJhdG9yIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLnAtc3RlcF0nOiAndHJ1ZScsXG4gICAgICAgICdbY2xhc3MucC1zdGVwLWFjdGl2ZV0nOiAnYWN0aXZlKCknLFxuICAgICAgICAnW2NsYXNzLnAtZGlzYWJsZWRdJzogJ2lzU3RlcERpc2FibGVkKCknLFxuICAgICAgICAnW2NsYXNzLnAtY29tcG9uZW50XSc6ICd0cnVlJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtY3VycmVudF0nOiAnYWN0aXZlKCkgPyBcInN0ZXBcIiA6IHVuZGVmaW5lZCcsXG4gICAgICAgICdbYXR0ci5yb2xlXSc6ICdcInByZXNlbnRhdGlvblwiJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtcC1hY3RpdmVdJzogJ2FjdGl2ZSgpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtcC1kaXNhYmxlZF0nOiAnaXNTdGVwRGlzYWJsZWQoKScsXG4gICAgICAgICdbYXR0ci5kYXRhLXBjLW5hbWVdJzogJ1wic3RlcFwiJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgU3RlcCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBwY1N0ZXBwZXIgPSBpbmplY3QoZm9yd2FyZFJlZigoKSA9PiBTdGVwcGVyKSk7XG4gICAgLyoqXG4gICAgICogQWN0aXZlIHZhbHVlIG9mIHN0ZXBwZXIuXG4gICAgICogQHR5cGUge251bWJlcn1cbiAgICAgKiBAZGVmYXVsdFZhbHVlIHVuZGVmaW5lZFxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIHZhbHVlOiBNb2RlbFNpZ25hbDxudW1iZXI+ID0gbW9kZWw8bnVtYmVyIHwgdW5kZWZpbmVkPigpO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHN0ZXAgaXMgZGlzYWJsZWQuXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIGRpc2FibGVkOiBJbnB1dFNpZ25hbFdpdGhUcmFuc2Zvcm08YW55LCBib29sZWFuPiA9IGlucHV0KGZhbHNlLCB7XG4gICAgICAgIHRyYW5zZm9ybTogKHY6IGFueSB8IGJvb2xlYW4pID0+IHRyYW5zZm9ybVRvQm9vbGVhbih2KVxuICAgIH0pO1xuXG4gICAgYWN0aXZlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wY1N0ZXBwZXIuaXNTdGVwQWN0aXZlKHRoaXMudmFsdWUoKSkpO1xuXG4gICAgaXNTdGVwRGlzYWJsZWQgPSBjb21wdXRlZCgoKSA9PiAhdGhpcy5hY3RpdmUoKSAmJiAodGhpcy5wY1N0ZXBwZXIubGluZWFyKCkgfHwgdGhpcy5kaXNhYmxlZCgpKSk7XG5cbiAgICBpZCA9IGNvbXB1dGVkKCgpID0+IGAke3RoaXMucGNTdGVwcGVyLmlkKCl9X3N0ZXBfJHt0aGlzLnZhbHVlKCl9YCk7XG5cbiAgICBhcmlhQ29udHJvbHMgPSBjb21wdXRlZCgoKSA9PiBgJHt0aGlzLnBjU3RlcHBlci5pZCgpfV9zdGVwcGFuZWxfJHt0aGlzLnZhbHVlKCl9YCk7XG5cbiAgICBpc1NlcGFyYXRvclZpc2libGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnBjU3RlcHBlci5zdGVwTGlzdCgpKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IGZpbmRJbmRleEluTGlzdCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMucGNTdGVwcGVyLnN0ZXBMaXN0KCkuZWwubmF0aXZlRWxlbWVudC5jaGlsZHJlbik7XG4gICAgICAgICAgICBjb25zdCBzdGVwTGVuID0gZmluZCh0aGlzLnBjU3RlcHBlci5zdGVwTGlzdCgpLmVsLm5hdGl2ZUVsZW1lbnQsICdbZGF0YS1wYy1uYW1lPVwic3RlcFwiXScpLmxlbmd0aDtcbiAgICAgICAgICAgIHJldHVybiBpbmRleCAhPT0gc3RlcExlbiAtIDE7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICAvKipcbiAgICAgKiBDb250ZW50IHRlbXBsYXRlLlxuICAgICAqIEB0eXBlIHtUZW1wbGF0ZVJlZjxTdGVwQ29udGVudFRlbXBsYXRlQ29udGV4dD59XG4gICAgICogQGdyb3VwIFRlbXBsYXRlc1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2NvbnRlbnQnLCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KSBjb250ZW50OiBUZW1wbGF0ZVJlZjxTdGVwQ29udGVudFRlbXBsYXRlQ29udGV4dD47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFByaW1lVGVtcGxhdGUpIHRlbXBsYXRlczogUXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+IHwgdW5kZWZpbmVkO1xuXG4gICAgX2NvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXM/LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAoaXRlbS5nZXRUeXBlKCkpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdjb250ZW50JzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29udGVudFRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uU3RlcENsaWNrKCkge1xuICAgICAgICB0aGlzLnBjU3RlcHBlci51cGRhdGVWYWx1ZSh0aGlzLnZhbHVlKCkpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBTdGVwUGFuZWwgaXMgYSBoZWxwZXIgY29tcG9uZW50IGZvciBTdGVwcGVyIGNvbXBvbmVudC5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1zdGVwLXBhbmVsJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFN0ZXBwZXJTZXBhcmF0b3IsIFNoYXJlZE1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgQGlmIChpc1NlcGFyYXRvclZpc2libGUoKSkge1xuICAgICAgICAgICAgPHAtc3RlcHBlci1zZXBhcmF0b3IgLz5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2IGNsYXNzPVwicC1zdGVwcGFuZWwtY29udGVudFwiIFtAY29udGVudF09XCJpc1ZlcnRpY2FsKCkgPyAoYWN0aXZlKCkgPyB7IHZhbHVlOiAndmlzaWJsZScsIHBhcmFtczogeyB0cmFuc2l0aW9uUGFyYW1zOiB0cmFuc2l0aW9uT3B0aW9ucygpIH0gfSA6IHsgdmFsdWU6ICdoaWRkZW4nLCBwYXJhbXM6IHsgdHJhbnNpdGlvblBhcmFtczogdHJhbnNpdGlvbk9wdGlvbnMoKSB9IH0pIDogdW5kZWZpbmVkXCI+XG4gICAgICAgICAgICBAaWYgKGFjdGl2ZSgpKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRUZW1wbGF0ZSB8fCBfY29udGVudFRlbXBsYXRlOyBjb250ZXh0OiB7IGFjdGl2YXRlQ2FsbGJhY2s6IHVwZGF0ZVZhbHVlLmJpbmQodGhpcyksIHZhbHVlOiB2YWx1ZSgpLCBhY3RpdmU6IGFjdGl2ZSgpIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5wLXN0ZXBwYW5lbF0nOiAndHJ1ZScsXG4gICAgICAgICdbY2xhc3MucC1jb21wb25lbnRdJzogJ3RydWUnLFxuICAgICAgICAnW2NsYXNzLnAtc3RlcHBhbmVsLWFjdGl2ZV0nOiAnYWN0aXZlKCknLFxuICAgICAgICAnW2F0dHIucm9sZV0nOiAnXCJ0YWJwYW5lbFwiJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtY29udHJvbHNdJzogJ2FyaWFDb250cm9scygpJyxcbiAgICAgICAgJ1thdHRyLmlkXSc6ICdpZCgpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtcC1hY3RpdmVdJzogJ2FjdGl2ZSgpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtcGMtbmFtZV0nOiAnXCJzdGVwcGFuZWxcIidcbiAgICB9LFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgdHJpZ2dlcignY29udGVudCcsIFtcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgICdoaWRkZW4nLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMCcsXG4gICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6ICdoaWRkZW4nXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICAndmlzaWJsZScsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcqJyxcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogJ3Zpc2libGUnXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCd2aXNpYmxlIDw9PiBoaWRkZW4nLCBbYW5pbWF0ZSgnMjUwbXMgY3ViaWMtYmV6aWVyKDAuODYsIDAsIDAuMDcsIDEpJyldKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIGFuaW1hdGUoMCkpXG4gICAgICAgIF0pXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBTdGVwUGFuZWwgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgcGNTdGVwcGVyID0gaW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gU3RlcHBlcikpO1xuXG4gICAgdHJhbnNpdGlvbk9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBjU3RlcHBlci50cmFuc2l0aW9uT3B0aW9ucygpKTtcbiAgICAvKipcbiAgICAgKiBBY3RpdmUgdmFsdWUgb2Ygc3RlcHBlci5cbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgICAqIEBkZWZhdWx0VmFsdWUgdW5kZWZpbmVkXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgdmFsdWU6IE1vZGVsU2lnbmFsPG51bWJlcj4gPSBtb2RlbDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgICBhY3RpdmUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBjU3RlcHBlci52YWx1ZSgpID09PSB0aGlzLnZhbHVlKCkpO1xuXG4gICAgYXJpYUNvbnRyb2xzID0gY29tcHV0ZWQoKCkgPT4gYCR7dGhpcy5wY1N0ZXBwZXIuaWQoKX1fc3RlcF8ke3RoaXMudmFsdWUoKX1gKTtcblxuICAgIGlkID0gY29tcHV0ZWQoKCkgPT4gYCR7dGhpcy5wY1N0ZXBwZXIuaWQoKX1fc3RlcHBhbmVsXyR7dGhpcy52YWx1ZSgpfWApO1xuXG4gICAgaXNWZXJ0aWNhbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGNTdGVwcGVyLnN0ZXBJdGVtcygpLmxlbmd0aCA+IDApO1xuXG4gICAgaXNTZXBhcmF0b3JWaXNpYmxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5wY1N0ZXBwZXIuc3RlcEl0ZW1zKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0ZXBMZW4gPSB0aGlzLnBjU3RlcHBlci5zdGVwSXRlbXMoKS5sZW5ndGg7XG4gICAgICAgICAgICBjb25zdCBzdGVwUGFuZWxFbGVtZW50cyA9IGZpbmQodGhpcy5wY1N0ZXBwZXIuZWwubmF0aXZlRWxlbWVudCwgJ1tkYXRhLXBjLW5hbWU9XCJzdGVwcGFuZWxcIl0nKTtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gZmluZEluZGV4SW5MaXN0KHRoaXMuZWwubmF0aXZlRWxlbWVudCwgc3RlcFBhbmVsRWxlbWVudHMpO1xuXG4gICAgICAgICAgICByZXR1cm4gaW5kZXggIT09IHN0ZXBMZW4gLSAxO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgLyoqXG4gICAgICogQ29udGVudCB0ZW1wbGF0ZS5cbiAgICAgKiBAcGFyYW0ge1N0ZXBQYW5lbENvbnRlbnRUZW1wbGF0ZUNvbnRleHR9IGNvbnRleHQgLSBDb250ZXh0IG9mIHRoZSB0ZW1wbGF0ZVxuICAgICAqIEBzZWUge0BsaW5rIFN0ZXBQYW5lbENvbnRlbnRUZW1wbGF0ZUNvbnRleHR9XG4gICAgICogQGdyb3VwIFRlbXBsYXRlc1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2NvbnRlbnQnKSBjb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPFN0ZXBQYW5lbENvbnRlbnRUZW1wbGF0ZUNvbnRleHQ+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihQcmltZVRlbXBsYXRlKSB0ZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxQcmltZVRlbXBsYXRlPiB8IHVuZGVmaW5lZDtcblxuICAgIF9jb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMudGVtcGxhdGVzPy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKGl0ZW0uZ2V0VHlwZSgpKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnY29udGVudCc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB1cGRhdGVWYWx1ZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMucGNTdGVwcGVyLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1zdGVwLXBhbmVscycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTaGFyZWRNb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLnAtc3RlcHBhbmVsc10nOiAndHJ1ZScsXG4gICAgICAgICdbY2xhc3MucC1jb21wb25lbnRdJzogJ3RydWUnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBTdGVwUGFuZWxzIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7fVxuXG4vKipcbiAqIFN0ZXBwZXIgaXMgYSBjb21wb25lbnQgdGhhdCBzdHJlYW1saW5lcyBhIHdpemFyZC1saWtlIHdvcmtmbG93LCBvcmdhbml6aW5nIGNvbnRlbnQgaW50byBjb2hlcmVudCBzdGVwcyBhbmQgdmlzdWFsbHkgZ3VpZGluZyB1c2VycyB0aHJvdWdoIGEgbnVtYmVyZWQgcHJvZ3Jlc3Npb24gaW4gYSBtdWx0aXN0ZXAgcHJvY2Vzcy5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1zdGVwcGVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNoYXJlZE1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtTdGVwcGVyU3R5bGVdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5wLXN0ZXBwZXJdJzogJ3RydWUnLFxuICAgICAgICAnW2NsYXNzLnAtY29tcG9uZW50XSc6ICd0cnVlJyxcbiAgICAgICAgJ1thdHRyLnJvbGVdJzogJ1widGFibGlzdFwiJyxcbiAgICAgICAgJ1thdHRyLmlkXSc6ICdpZCgpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgU3RlcHBlciBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIEEgbW9kZWwgdGhhdCBjYW4gaG9sZCBhIG51bWVyaWMgdmFsdWUgb3IgYmUgdW5kZWZpbmVkLlxuICAgICAqIEBkZWZhdWx0VmFsdWUgdW5kZWZpbmVkXG4gICAgICogQHR5cGUge01vZGVsU2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD59XG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgdmFsdWU6IE1vZGVsU2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4gPSBtb2RlbDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gICAgLyoqXG4gICAgICogQSBib29sZWFuIHZhcmlhYmxlIHRoYXQgY2FwdHVyZXMgdXNlciBpbnB1dC5cbiAgICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAgICogQHR5cGUge0lucHV0U2lnbmFsV2l0aFRyYW5zZm9ybTxhbnksIGJvb2xlYW4gPn1cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBsaW5lYXI6IElucHV0U2lnbmFsV2l0aFRyYW5zZm9ybTxhbnksIGJvb2xlYW4+ID0gaW5wdXQoZmFsc2UsIHtcbiAgICAgICAgdHJhbnNmb3JtOiAodjogYW55IHwgYm9vbGVhbikgPT4gdHJhbnNmb3JtVG9Cb29sZWFuKHYpXG4gICAgfSk7XG4gICAgLyoqXG4gICAgICogVHJhbnNpdGlvbiBvcHRpb25zIG9mIHRoZSBhbmltYXRpb24uXG4gICAgICogQGRlZmF1bHRWYWx1ZSA0MDBtcyBjdWJpYy1iZXppZXIoMC44NiwgMCwgMC4wNywgMSlcbiAgICAgKiBAdHlwZSB7SW5wdXRTaWduYWw8c3RyaW5nID59XG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgdHJhbnNpdGlvbk9wdGlvbnM6IElucHV0U2lnbmFsPHN0cmluZz4gPSBpbnB1dDxzdHJpbmc+KCc0MDBtcyBjdWJpYy1iZXppZXIoMC44NiwgMCwgMC4wNywgMSknKTtcblxuICAgIF9jb21wb25lbnRTdHlsZSA9IGluamVjdChTdGVwcGVyU3R5bGUpO1xuXG4gICAgaWQgPSBzaWduYWw8c3RyaW5nPih1dWlkKCdwbl9pZF8nKSk7XG5cbiAgICBzdGVwSXRlbXMgPSBjb250ZW50Q2hpbGRyZW4oU3RlcEl0ZW0pO1xuXG4gICAgc3RlcHMgPSBjb250ZW50Q2hpbGRyZW4oU3RlcCk7XG5cbiAgICBzdGVwTGlzdCA9IGNvbnRlbnRDaGlsZChTdGVwTGlzdCk7XG5cbiAgICB1cGRhdGVWYWx1ZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMudmFsdWUuc2V0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBpc1N0ZXBBY3RpdmUodmFsdWU6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSgpID09PSB2YWx1ZTtcbiAgICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1N0ZXBwZXIsIFN0ZXBMaXN0LCBTdGVwUGFuZWxzLCBTdGVwUGFuZWwsIFN0ZXBJdGVtLCBTdGVwLCBTdGVwcGVyU2VwYXJhdG9yLCBTaGFyZWRNb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtTdGVwcGVyLCBTdGVwTGlzdCwgU3RlcFBhbmVscywgU3RlcFBhbmVsLCBTdGVwSXRlbSwgU3RlcCwgU3RlcHBlclNlcGFyYXRvciwgU2hhcmVkTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBTdGVwcGVyTW9kdWxlIHt9XG4iXX0=
|