@salutejs/plasma-new-hope 0.327.0-canary.2021.15821149221.0 → 0.327.0-canary.2022.15704348481.0
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/cjs/components/Autocomplete/Autocomplete.js +3 -3
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Autocomplete/FloatingPopover.js +2 -2
- package/cjs/components/Autocomplete/FloatingPopover.js.map +1 -1
- package/cjs/components/Calendar/CalendarBase/CalendarBase.js +0 -12
- package/cjs/components/Calendar/CalendarBase/CalendarBase.js.map +1 -1
- package/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +0 -12
- package/cjs/components/Calendar/CalendarDouble/CalendarDouble.js.map +1 -1
- package/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js +0 -3
- package/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js.map +1 -1
- package/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js +0 -3
- package/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js.map +1 -1
- package/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +0 -3
- package/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js.map +1 -1
- package/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js +0 -3
- package/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.js +1 -2
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/Combobox/ComboboxNew/Combobox.js +1 -2
- package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
- package/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
- package/cjs/components/Combobox/ComboboxNew/FloatingPopover.js.map +1 -1
- package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +2 -2
- package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
- package/cjs/components/Combobox/ComboboxOld/Combobox.js +1 -2
- package/cjs/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
- package/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +3 -3
- package/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.js +2 -2
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/Dropdown/FloatingPopover.js +2 -2
- package/cjs/components/Dropdown/FloatingPopover.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownDivider/DropdownDivider.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownFooter/DropdownFooter.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownGroup/DropdownGroup.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownHeader/DropdownHeader.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +2 -2
- package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +3 -3
- package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js.map +1 -1
- package/cjs/components/Mask/Mask.js +3 -3
- package/cjs/components/Mask/Mask.js.map +1 -1
- package/cjs/components/Popup/PopupContext.js +1 -1
- package/cjs/components/Popup/PopupContext.js.map +1 -1
- package/cjs/components/Radiobox/Radiobox.js +2 -3
- package/cjs/components/Radiobox/Radiobox.js.map +1 -1
- package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +3 -3
- package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
- package/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +2 -2
- package/cjs/components/Segment/ui/SegmentItem/SegmentItem.js.map +1 -1
- package/cjs/components/Select/FloatingPopover.js +2 -2
- package/cjs/components/Select/FloatingPopover.js.map +1 -1
- package/cjs/components/Select/Select.js +2 -2
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/Select/ui/Inner/Inner.js +2 -2
- package/cjs/components/Select/ui/Inner/Inner.js.map +1 -1
- package/cjs/components/Spinner/Spinner.js +2 -2
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +3 -3
- package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js.map +1 -1
- package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +3 -3
- package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js.map +1 -1
- package/cjs/components/TextArea/ui/Hint/Hint.js.map +1 -1
- package/cjs/components/TextField/TextField.js +3 -4
- package/cjs/components/TextField/TextField.js.map +1 -1
- package/cjs/components/TextField/ui/Hint/Hint.js.map +1 -1
- package/emotion/cjs/components/Autocomplete/Autocomplete.js +3 -3
- package/emotion/cjs/components/Autocomplete/FloatingPopover.js +2 -2
- package/emotion/cjs/components/Calendar/CalendarBase/CalendarBase.js +0 -12
- package/emotion/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +0 -12
- package/emotion/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js +0 -3
- package/emotion/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js +0 -3
- package/emotion/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +0 -3
- package/emotion/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js +0 -3
- package/emotion/cjs/components/Checkbox/Checkbox.js +1 -1
- package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +1 -1
- package/emotion/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
- package/emotion/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +3 -2
- package/emotion/cjs/components/Combobox/ComboboxOld/Combobox.js +1 -1
- package/emotion/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +7 -6
- package/emotion/cjs/components/Dropdown/Dropdown.js +2 -1
- package/emotion/cjs/components/Dropdown/FloatingPopover.js +2 -2
- package/emotion/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +4 -4
- package/emotion/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +3 -2
- package/emotion/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
- package/emotion/cjs/components/Mask/Mask.js +3 -3
- package/emotion/cjs/components/Popup/PopupContext.js +1 -1
- package/emotion/cjs/components/Radiobox/Radiobox.js +2 -2
- package/emotion/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +3 -2
- package/emotion/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +2 -1
- package/emotion/cjs/components/Select/FloatingPopover.js +5 -5
- package/emotion/cjs/components/Select/Select.js +2 -1
- package/emotion/cjs/components/Select/ui/Inner/Inner.js +2 -1
- package/emotion/cjs/components/Spinner/Spinner.js +2 -2
- package/emotion/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +3 -2
- package/emotion/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +3 -2
- package/emotion/cjs/components/TextArea/ui/Hint/Hint.js +1 -1
- package/emotion/cjs/components/TextField/TextField.js +4 -4
- package/emotion/cjs/components/TextField/ui/Hint/Hint.js +1 -1
- package/emotion/es/components/Autocomplete/Autocomplete.js +1 -1
- package/emotion/es/components/Autocomplete/FloatingPopover.js +1 -1
- package/emotion/es/components/Calendar/CalendarBase/CalendarBase.js +0 -12
- package/emotion/es/components/Calendar/CalendarDouble/CalendarDouble.js +0 -12
- package/emotion/es/components/Calendar/ui/CalendarDays/CalendarDays.js +0 -3
- package/emotion/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js +0 -3
- package/emotion/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +0 -3
- package/emotion/es/components/Calendar/ui/CalendarYears/CalendarYears.js +0 -3
- package/emotion/es/components/Checkbox/Checkbox.js +1 -2
- package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +1 -2
- package/emotion/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
- package/emotion/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
- package/emotion/es/components/Combobox/ComboboxOld/Combobox.js +1 -2
- package/emotion/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +1 -1
- package/emotion/es/components/Dropdown/Dropdown.js +1 -1
- package/emotion/es/components/Dropdown/FloatingPopover.js +1 -1
- package/emotion/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
- package/emotion/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -1
- package/emotion/es/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
- package/emotion/es/components/Mask/Mask.js +3 -3
- package/emotion/es/components/Popup/PopupContext.js +1 -1
- package/emotion/es/components/Radiobox/Radiobox.js +2 -2
- package/emotion/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -1
- package/emotion/es/components/Segment/ui/SegmentItem/SegmentItem.js +2 -1
- package/emotion/es/components/Select/FloatingPopover.js +1 -1
- package/emotion/es/components/Select/Select.js +2 -1
- package/emotion/es/components/Select/ui/Inner/Inner.js +2 -1
- package/emotion/es/components/Spinner/Spinner.js +1 -1
- package/emotion/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -1
- package/emotion/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -1
- package/emotion/es/components/TextArea/ui/Hint/Hint.js +1 -1
- package/emotion/es/components/TextField/TextField.js +3 -3
- package/emotion/es/components/TextField/ui/Hint/Hint.js +1 -1
- package/es/components/Autocomplete/Autocomplete.js +1 -1
- package/es/components/Autocomplete/Autocomplete.js.map +1 -1
- package/es/components/Autocomplete/FloatingPopover.js +1 -1
- package/es/components/Autocomplete/FloatingPopover.js.map +1 -1
- package/es/components/Calendar/CalendarBase/CalendarBase.js +0 -12
- package/es/components/Calendar/CalendarBase/CalendarBase.js.map +1 -1
- package/es/components/Calendar/CalendarDouble/CalendarDouble.js +0 -12
- package/es/components/Calendar/CalendarDouble/CalendarDouble.js.map +1 -1
- package/es/components/Calendar/ui/CalendarDays/CalendarDays.js +0 -3
- package/es/components/Calendar/ui/CalendarDays/CalendarDays.js.map +1 -1
- package/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js +0 -3
- package/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js.map +1 -1
- package/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +0 -3
- package/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js.map +1 -1
- package/es/components/Calendar/ui/CalendarYears/CalendarYears.js +0 -3
- package/es/components/Calendar/ui/CalendarYears/CalendarYears.js.map +1 -1
- package/es/components/Checkbox/Checkbox.js +1 -2
- package/es/components/Checkbox/Checkbox.js.map +1 -1
- package/es/components/Combobox/ComboboxNew/Combobox.js +1 -2
- package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
- package/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
- package/es/components/Combobox/ComboboxNew/FloatingPopover.js.map +1 -1
- package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
- package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
- package/es/components/Combobox/ComboboxOld/Combobox.js +1 -2
- package/es/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
- package/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +2 -2
- package/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js.map +1 -1
- package/es/components/Dropdown/Dropdown.js +1 -1
- package/es/components/Dropdown/Dropdown.js.map +1 -1
- package/es/components/Dropdown/FloatingPopover.js +1 -1
- package/es/components/Dropdown/FloatingPopover.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownDivider/DropdownDivider.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownFooter/DropdownFooter.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownGroup/DropdownGroup.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownHeader/DropdownHeader.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
- package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -2
- package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownOld/DropdownOld.js.map +1 -1
- package/es/components/Mask/Mask.js +3 -3
- package/es/components/Mask/Mask.js.map +1 -1
- package/es/components/Popup/PopupContext.js +1 -1
- package/es/components/Popup/PopupContext.js.map +1 -1
- package/es/components/Radiobox/Radiobox.js +2 -3
- package/es/components/Radiobox/Radiobox.js.map +1 -1
- package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -2
- package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
- package/es/components/Segment/ui/SegmentItem/SegmentItem.js +1 -1
- package/es/components/Segment/ui/SegmentItem/SegmentItem.js.map +1 -1
- package/es/components/Select/FloatingPopover.js +1 -1
- package/es/components/Select/FloatingPopover.js.map +1 -1
- package/es/components/Select/Select.js +1 -1
- package/es/components/Select/Select.js.map +1 -1
- package/es/components/Select/ui/Inner/Inner.js +1 -1
- package/es/components/Select/ui/Inner/Inner.js.map +1 -1
- package/es/components/Spinner/Spinner.js +1 -1
- package/es/components/Spinner/Spinner.js.map +1 -1
- package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -2
- package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js.map +1 -1
- package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -2
- package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js.map +1 -1
- package/es/components/TextArea/ui/Hint/Hint.js.map +1 -1
- package/es/components/TextField/TextField.js +1 -2
- package/es/components/TextField/TextField.js.map +1 -1
- package/es/components/TextField/ui/Hint/Hint.js.map +1 -1
- package/package.json +4 -4
- package/styled-components/cjs/components/Autocomplete/Autocomplete.js +3 -3
- package/styled-components/cjs/components/Autocomplete/FloatingPopover.js +2 -2
- package/styled-components/cjs/components/Calendar/CalendarBase/CalendarBase.js +0 -12
- package/styled-components/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +0 -12
- package/styled-components/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js +0 -3
- package/styled-components/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js +0 -3
- package/styled-components/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +0 -3
- package/styled-components/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js +0 -3
- package/styled-components/cjs/components/Checkbox/Checkbox.js +1 -1
- package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +1 -1
- package/styled-components/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
- package/styled-components/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +3 -2
- package/styled-components/cjs/components/Combobox/ComboboxOld/Combobox.js +1 -1
- package/styled-components/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +7 -6
- package/styled-components/cjs/components/Dropdown/Dropdown.js +2 -1
- package/styled-components/cjs/components/Dropdown/FloatingPopover.js +2 -2
- package/styled-components/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +4 -4
- package/styled-components/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +3 -2
- package/styled-components/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
- package/styled-components/cjs/components/Mask/Mask.js +3 -3
- package/styled-components/cjs/components/Popup/PopupContext.js +1 -1
- package/styled-components/cjs/components/Radiobox/Radiobox.js +2 -2
- package/styled-components/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +3 -2
- package/styled-components/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +2 -1
- package/styled-components/cjs/components/Select/FloatingPopover.js +5 -5
- package/styled-components/cjs/components/Select/Select.js +2 -1
- package/styled-components/cjs/components/Select/ui/Inner/Inner.js +2 -1
- package/styled-components/cjs/components/Spinner/Spinner.js +2 -2
- package/styled-components/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +3 -2
- package/styled-components/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +3 -2
- package/styled-components/cjs/components/TextArea/ui/Hint/Hint.js +1 -1
- package/styled-components/cjs/components/TextField/TextField.js +3 -3
- package/styled-components/cjs/components/TextField/ui/Hint/Hint.js +1 -1
- package/styled-components/es/components/Autocomplete/Autocomplete.js +1 -1
- package/styled-components/es/components/Autocomplete/FloatingPopover.js +1 -1
- package/styled-components/es/components/Calendar/CalendarBase/CalendarBase.js +0 -12
- package/styled-components/es/components/Calendar/CalendarDouble/CalendarDouble.js +0 -12
- package/styled-components/es/components/Calendar/ui/CalendarDays/CalendarDays.js +0 -3
- package/styled-components/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js +0 -3
- package/styled-components/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +0 -3
- package/styled-components/es/components/Calendar/ui/CalendarYears/CalendarYears.js +0 -3
- package/styled-components/es/components/Checkbox/Checkbox.js +1 -2
- package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +1 -2
- package/styled-components/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
- package/styled-components/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
- package/styled-components/es/components/Combobox/ComboboxOld/Combobox.js +1 -2
- package/styled-components/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +1 -1
- package/styled-components/es/components/Dropdown/Dropdown.js +1 -1
- package/styled-components/es/components/Dropdown/FloatingPopover.js +1 -1
- package/styled-components/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
- package/styled-components/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -1
- package/styled-components/es/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
- package/styled-components/es/components/Mask/Mask.js +3 -3
- package/styled-components/es/components/Popup/PopupContext.js +1 -1
- package/styled-components/es/components/Radiobox/Radiobox.js +2 -2
- package/styled-components/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -1
- package/styled-components/es/components/Segment/ui/SegmentItem/SegmentItem.js +2 -1
- package/styled-components/es/components/Select/FloatingPopover.js +1 -1
- package/styled-components/es/components/Select/Select.js +2 -1
- package/styled-components/es/components/Select/ui/Inner/Inner.js +2 -1
- package/styled-components/es/components/Spinner/Spinner.js +1 -1
- package/styled-components/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -1
- package/styled-components/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -1
- package/styled-components/es/components/TextArea/ui/Hint/Hint.js +1 -1
- package/styled-components/es/components/TextField/TextField.js +2 -2
- package/styled-components/es/components/TextField/ui/Hint/Hint.js +1 -1
- package/types/components/Calendar/CalendarBase/CalendarBase.d.ts.map +1 -1
- package/types/components/Calendar/CalendarDouble/CalendarDouble.d.ts.map +1 -1
- package/types/components/Calendar/ui/CalendarDays/CalendarDays.d.ts.map +1 -1
- package/types/components/Calendar/ui/CalendarMonths/CalendarMonths.d.ts.map +1 -1
- package/types/components/Calendar/ui/CalendarQuarters/CalendarQuarters.d.ts.map +1 -1
- package/types/components/Calendar/ui/CalendarYears/CalendarYears.d.ts.map +1 -1
- package/types/components/Checkbox/Checkbox.d.ts.map +1 -1
- package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
- package/types/components/Combobox/ComboboxOld/Combobox.d.ts.map +1 -1
- package/types/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.d.ts.map +1 -1
- package/types/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownDivider/DropdownDivider.d.ts +1 -1
- package/types/components/Dropdown/ui/DropdownDivider/DropdownDivider.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownFooter/DropdownFooter.d.ts +1 -1
- package/types/components/Dropdown/ui/DropdownFooter/DropdownFooter.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownGroup/DropdownGroup.d.ts +1 -1
- package/types/components/Dropdown/ui/DropdownGroup/DropdownGroup.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownHeader/DropdownHeader.d.ts +1 -1
- package/types/components/Dropdown/ui/DropdownHeader/DropdownHeader.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.d.ts +1 -1
- package/types/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownOld/DropdownOld.d.ts +1 -1
- package/types/components/Dropdown/ui/DropdownOld/DropdownOld.d.ts.map +1 -1
- package/types/components/Radiobox/Radiobox.d.ts +2 -2
- package/types/components/Radiobox/Radiobox.d.ts.map +1 -1
- package/types/components/Segment/ui/SegmentGroup/SegmentGroup.d.ts +1 -1
- package/types/components/Segment/ui/SegmentGroup/SegmentGroup.d.ts.map +1 -1
- package/types/components/Segment/ui/SegmentItem/SegmentItem.d.ts +1 -1
- package/types/components/Segment/ui/SegmentItem/SegmentItem.d.ts.map +1 -1
- package/types/components/Select/Select.d.ts.map +1 -1
- package/types/components/Select/ui/Inner/Inner.d.ts.map +1 -1
- package/types/components/Spinner/Spinner.d.ts +1 -1
- package/types/components/Spinner/Spinner.d.ts.map +1 -1
- package/types/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.d.ts +1 -1
- package/types/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.d.ts.map +1 -1
- package/types/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.d.ts +1 -1
- package/types/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.d.ts.map +1 -1
- package/types/components/TextField/TextField.d.ts +1 -1
- package/types/components/TextField/TextField.d.ts.map +1 -1
@@ -6,8 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
});
|
7
7
|
exports.dropdownItemOldRoot = exports.dropdownItemOldConfig = void 0;
|
8
8
|
var _react = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("react"));
|
9
|
-
var
|
9
|
+
var _plasmaCore = /*#__PURE__*/require("@salutejs/plasma-core");
|
10
10
|
var _Dropdown = /*#__PURE__*/require("../../Dropdown.tokens");
|
11
|
+
var _utils = /*#__PURE__*/require("../../../../utils");
|
11
12
|
var _utils2 = /*#__PURE__*/require("../../utils");
|
12
13
|
var _base = /*#__PURE__*/require("./variations/_view/base");
|
13
14
|
var _base2 = /*#__PURE__*/require("./variations/_size/base");
|
@@ -46,7 +47,7 @@ var dropdownItemOldRoot = exports.dropdownItemOldRoot = function dropdownItemOld
|
|
46
47
|
onClick = _ref.onClick,
|
47
48
|
onChange = _ref.onChange,
|
48
49
|
rest = _objectWithoutProperties(_ref, _excluded);
|
49
|
-
var uniqId = (0,
|
50
|
+
var uniqId = (0, _plasmaCore.safeUseId)();
|
50
51
|
var innerId = id || uniqId;
|
51
52
|
var withDropdownItemIsSelected = checked || isSelected ? _Dropdown.classes.dropdownItemIsSelected : undefined;
|
52
53
|
var withDropdownItemIsDisabled = disabled ? _Dropdown.classes.dropdownItemIsDisabled : undefined;
|
@@ -7,8 +7,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
7
7
|
exports.dropdownOldRoot = exports.dropdownOldConfig = void 0;
|
8
8
|
var _react = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("react"));
|
9
9
|
var _plasmaCore = /*#__PURE__*/require("@salutejs/plasma-core");
|
10
|
-
var _utils = /*#__PURE__*/require("../../../../utils");
|
11
10
|
var _hooks = /*#__PURE__*/require("../../../../hooks");
|
11
|
+
var _utils = /*#__PURE__*/require("../../../../utils");
|
12
12
|
var _base = /*#__PURE__*/require("./variations/_view/base");
|
13
13
|
var _base2 = /*#__PURE__*/require("./variations/_size/base");
|
14
14
|
var _Dropdown = /*#__PURE__*/require("./Dropdown.styles");
|
@@ -21,11 +21,11 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
21
21
|
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
22
22
|
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
23
23
|
var defaultFormatChars = [{
|
24
|
-
str: '*',
|
25
|
-
regexp: /./
|
26
|
-
}, {
|
27
24
|
str: '0',
|
28
25
|
regexp: /[0-9]/
|
26
|
+
}, {
|
27
|
+
str: '*',
|
28
|
+
regexp: /./
|
29
29
|
}, {
|
30
30
|
str: 'a',
|
31
31
|
regexp: /[a-zA-Z]/
|
@@ -42,7 +42,7 @@ var PopupProvider = exports.PopupProvider = function PopupProvider(_ref) {
|
|
42
42
|
var children = _ref.children,
|
43
43
|
UNSAFE_SSR_ENABLED = _ref.UNSAFE_SSR_ENABLED;
|
44
44
|
var prevBodyOverflowY = (0, _react.useRef)(_utils.canUseDOM ? document.body.style.overflowY : '');
|
45
|
-
var _useState = (0, _react.useState)(
|
45
|
+
var _useState = (0, _react.useState)(new Map()),
|
46
46
|
_useState2 = _slicedToArray(_useState, 2),
|
47
47
|
items = _useState2[0],
|
48
48
|
setItems = _useState2[1];
|
@@ -7,8 +7,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
7
7
|
exports.radioboxRoot = exports.radioboxConfig = void 0;
|
8
8
|
var _react = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("react"));
|
9
9
|
var _plasmaCore = /*#__PURE__*/require("@salutejs/plasma-core");
|
10
|
-
var _utils = /*#__PURE__*/require("../../utils");
|
11
10
|
var _Checkbox = /*#__PURE__*/require("../Checkbox/Checkbox.styles");
|
11
|
+
var _utils = /*#__PURE__*/require("../../utils");
|
12
12
|
var _base = /*#__PURE__*/require("./variations/_view/base");
|
13
13
|
var _base2 = /*#__PURE__*/require("./variations/_size/base");
|
14
14
|
var _base3 = /*#__PURE__*/require("./variations/_disabled/base");
|
@@ -37,7 +37,7 @@ var radioboxRoot = exports.radioboxRoot = function radioboxRoot(Root) {
|
|
37
37
|
singleLine = _props$singleLine === void 0 ? false : _props$singleLine,
|
38
38
|
ariaLabelExternal = props['aria-label'],
|
39
39
|
rest = _objectWithoutProperties(props, _excluded);
|
40
|
-
var uniqId = (0,
|
40
|
+
var uniqId = (0, _plasmaCore.safeUseId)();
|
41
41
|
var uniqLabelId = "label-".concat(uniqId);
|
42
42
|
var uniqDescriptionId = "description-".concat(uniqId);
|
43
43
|
var radioboxId = id || "input-".concat(uniqId);
|
@@ -6,9 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
});
|
7
7
|
exports.segmentGroupRoot = exports.segmentGroupConfig = exports.getChildNodes = void 0;
|
8
8
|
var _react = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("react"));
|
9
|
-
var
|
9
|
+
var _plasmaCore = /*#__PURE__*/require("@salutejs/plasma-core");
|
10
10
|
var _Icon = /*#__PURE__*/require("../../../_Icon");
|
11
11
|
var _tokens = /*#__PURE__*/require("../../tokens");
|
12
|
+
var _utils = /*#__PURE__*/require("../../../../utils");
|
12
13
|
var _SegmentProvider = /*#__PURE__*/require("../../SegmentProvider/SegmentProvider");
|
13
14
|
var _base = /*#__PURE__*/require("./variations/_size/base");
|
14
15
|
var _base2 = /*#__PURE__*/require("./variations/_view/base");
|
@@ -75,7 +76,7 @@ var segmentGroupRoot = exports.segmentGroupRoot = function segmentGroupRoot(Root
|
|
75
76
|
_useState4 = _slicedToArray(_useState3, 2),
|
76
77
|
lastItemVisible = _useState4[0],
|
77
78
|
setLastItemVisible = _useState4[1];
|
78
|
-
var uniqId = (0,
|
79
|
+
var uniqId = (0, _plasmaCore.safeUseId)();
|
79
80
|
var segmentGroupId = id || uniqId;
|
80
81
|
var canClip = clip && !stretch;
|
81
82
|
var isVertical = orientation === 'vertical';
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
});
|
7
7
|
exports.segmentItemRoot = exports.segmentItemConfig = void 0;
|
8
8
|
var _react = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("react"));
|
9
|
+
var _plasmaCore = /*#__PURE__*/require("@salutejs/plasma-core");
|
9
10
|
var _utils = /*#__PURE__*/require("../../../../utils");
|
10
11
|
var _tokens = /*#__PURE__*/require("../../tokens");
|
11
12
|
var _SegmentProvider = /*#__PURE__*/require("../../SegmentProvider/SegmentProvider");
|
@@ -39,7 +40,7 @@ var segmentItemRoot = exports.segmentItemRoot = function segmentItemRoot(Root) {
|
|
39
40
|
disabledGroup = _useSegmentInner.disabledGroup,
|
40
41
|
handleSelect = _useSegmentInner.handleSelect,
|
41
42
|
selectedSegmentItems = _useSegmentInner.selectedSegmentItems;
|
42
|
-
var uniqId = (0,
|
43
|
+
var uniqId = (0, _plasmaCore.safeUseId)();
|
43
44
|
var segmentId = id || "label-".concat(uniqId);
|
44
45
|
var ariaLabelDefault = (0, _react.useMemo)(function () {
|
45
46
|
return (0, _utils.extractTextFrom)(label);
|
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
exports.FloatingPopover = void 0;
|
7
7
|
var _react = /*#__PURE__*/require("@floating-ui/react");
|
8
8
|
var _react2 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("react"));
|
9
|
-
var
|
10
|
-
var
|
9
|
+
var _plasmaCore = /*#__PURE__*/require("@salutejs/plasma-core");
|
10
|
+
var _utils = /*#__PURE__*/require("./utils");
|
11
11
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
12
12
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
13
13
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
@@ -36,13 +36,13 @@ var FloatingPopover = exports.FloatingPopover = /*#__PURE__*/(0, _react2.forward
|
|
36
36
|
layoutShift: false
|
37
37
|
});
|
38
38
|
},
|
39
|
-
placement: (0,
|
39
|
+
placement: (0, _utils.getPlacement)(placement),
|
40
40
|
open: opened,
|
41
41
|
middleware: [(0, _react.offset)({
|
42
42
|
mainAxis: isInner ? LIST_PADDING * 2 : 0,
|
43
43
|
alignmentAxis: isInner ? -LIST_PADDING : 0
|
44
44
|
}), (0, _react.flip)({
|
45
|
-
fallbackPlacements: (0,
|
45
|
+
fallbackPlacements: (0, _utils.getFallbackPlacements)(placement)
|
46
46
|
}), (0, _react.shift)(), (0, _react.size)({
|
47
47
|
apply: function apply(_ref2) {
|
48
48
|
var rects = _ref2.rects,
|
@@ -55,7 +55,7 @@ var FloatingPopover = exports.FloatingPopover = /*#__PURE__*/(0, _react2.forward
|
|
55
55
|
}),
|
56
56
|
refs = _useFloating.refs,
|
57
57
|
floatingStyles = _useFloating.floatingStyles;
|
58
|
-
var wrappedId = (0,
|
58
|
+
var wrappedId = (0, _plasmaCore.safeUseId)();
|
59
59
|
var handleClick = function handleClick() {
|
60
60
|
if (onToggle) {
|
61
61
|
onToggle(!opened);
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.selectRoot = exports.selectConfig = void 0;
|
7
7
|
var _react = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("react"));
|
8
|
+
var _plasmaCore = /*#__PURE__*/require("@salutejs/plasma-core");
|
8
9
|
var _utils = /*#__PURE__*/require("../../utils");
|
9
10
|
var _hooks = /*#__PURE__*/require("../../hooks");
|
10
11
|
var _useKeyboardNavigation = /*#__PURE__*/require("./hooks/useKeyboardNavigation");
|
@@ -130,7 +131,7 @@ var selectRoot = exports.selectRoot = function selectRoot(Root) {
|
|
130
131
|
var isCurrentListOpen = Boolean(path[0]);
|
131
132
|
var activeDescendantItemValue = ((_getItemByFocused = (0, _useKeyboardNavigation.getItemByFocused)(focusedPath, focusedToValueMap)) === null || _getItemByFocused === void 0 ? void 0 : _getItemByFocused.value.toString()) || '';
|
132
133
|
var closeAfterSelect = outerCloseAfterSelect !== null && outerCloseAfterSelect !== void 0 ? outerCloseAfterSelect : !props.multiselect;
|
133
|
-
var treeId = (0,
|
134
|
+
var treeId = (0, _plasmaCore.safeUseId)();
|
134
135
|
var view = target === 'textfield-like' && (disabled || readOnly) ? 'default' : (0, _utils2.getView)(status, outerView);
|
135
136
|
|
136
137
|
// Собираем объект с пропсами для required и прокидываем их напрямую в компонент Textfield.
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.Inner = void 0;
|
7
7
|
var _react = /*#__PURE__*/_interopRequireDefault(/*#__PURE__*/require("react"));
|
8
|
+
var _plasmaCore = /*#__PURE__*/require("@salutejs/plasma-core");
|
8
9
|
var _utils = /*#__PURE__*/require("../../../../utils");
|
9
10
|
var _Select = /*#__PURE__*/require("../../Select.styles");
|
10
11
|
var _FloatingPopover = /*#__PURE__*/require("../../FloatingPopover");
|
@@ -32,7 +33,7 @@ var Inner = exports.Inner = function Inner(_ref) {
|
|
32
33
|
}
|
33
34
|
};
|
34
35
|
var isCurrentListOpen = path[currentLevel + 1] === item.value.toString();
|
35
|
-
var treeId = (0,
|
36
|
+
var treeId = (0, _plasmaCore.safeUseId)();
|
36
37
|
var listId = "".concat(treeId, "_tree_level_").concat(currentLevel + 2);
|
37
38
|
var nextLevel = currentLevel + 1;
|
38
39
|
if (!(0, _utils.isEmpty)(item === null || item === void 0 ? void 0 : item.items)) {
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
});
|
7
7
|
exports.spinnerRoot = exports.spinnerConfig = void 0;
|
8
8
|
var _react = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("react"));
|
9
|
-
var
|
9
|
+
var _plasmaCore = /*#__PURE__*/require("@salutejs/plasma-core");
|
10
10
|
var _base = /*#__PURE__*/require("./variations/_view/base");
|
11
11
|
var _base2 = /*#__PURE__*/require("./variations/_size/base");
|
12
12
|
var _SpinnerSvg = /*#__PURE__*/require("./SpinnerSvg");
|
@@ -29,7 +29,7 @@ var spinnerRoot = exports.spinnerRoot = function spinnerRoot(Root) {
|
|
29
29
|
svgHeight: 'var(--plasma-spinner-size)',
|
30
30
|
color: 'currentColor'
|
31
31
|
});
|
32
|
-
var uniqId =
|
32
|
+
var uniqId = _plasmaCore.safeUseId;
|
33
33
|
var innerId = id || uniqId();
|
34
34
|
return /*#__PURE__*/_react["default"].createElement(Root, _extends({
|
35
35
|
ref: ref,
|
@@ -6,9 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
});
|
7
7
|
exports.horizontalTabsRoot = exports.horizontalTabsConfig = void 0;
|
8
8
|
var _react = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("react"));
|
9
|
-
var
|
9
|
+
var _plasmaCore = /*#__PURE__*/require("@salutejs/plasma-core");
|
10
10
|
var _Icon = /*#__PURE__*/require("../../../../_Icon");
|
11
11
|
var _tokens = /*#__PURE__*/require("../../../tokens");
|
12
|
+
var _utils = /*#__PURE__*/require("../../../../../utils");
|
12
13
|
var _TabsContext = /*#__PURE__*/require("../../../TabsContext");
|
13
14
|
var _utils2 = /*#__PURE__*/require("../../../utils");
|
14
15
|
var _base = /*#__PURE__*/require("./variations/_size/base");
|
@@ -77,7 +78,7 @@ var horizontalTabsRoot = exports.horizontalTabsRoot = function horizontalTabsRoo
|
|
77
78
|
var refs = (0, _react.useMemo)(function () {
|
78
79
|
return new _TabsContext.TabItemRefs(index);
|
79
80
|
}, []);
|
80
|
-
var uniqId = (0,
|
81
|
+
var uniqId = (0, _plasmaCore.safeUseId)();
|
81
82
|
var tabsId = id || uniqId;
|
82
83
|
var isFilled = view === 'filled'; // outer padding is only for filled view
|
83
84
|
var pilledAttr = view !== 'clear' && pilled;
|
@@ -6,8 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
});
|
7
7
|
exports.verticalTabsRoot = exports.verticalTabsConfig = void 0;
|
8
8
|
var _react = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("react"));
|
9
|
-
var
|
9
|
+
var _plasmaCore = /*#__PURE__*/require("@salutejs/plasma-core");
|
10
10
|
var _tokens = /*#__PURE__*/require("../../../tokens");
|
11
|
+
var _utils = /*#__PURE__*/require("../../../../../utils");
|
11
12
|
var _TabsContext = /*#__PURE__*/require("../../../TabsContext");
|
12
13
|
var _Icon = /*#__PURE__*/require("../../../../_Icon");
|
13
14
|
var _utils2 = /*#__PURE__*/require("../../../utils");
|
@@ -68,7 +69,7 @@ var verticalTabsRoot = exports.verticalTabsRoot = function verticalTabsRoot(Root
|
|
68
69
|
var refs = (0, _react.useMemo)(function () {
|
69
70
|
return new _TabsContext.TabItemRefs(index);
|
70
71
|
}, []);
|
71
|
-
var uniqId = (0,
|
72
|
+
var uniqId = (0, _plasmaCore.safeUseId)();
|
72
73
|
var tabsId = id || uniqId;
|
73
74
|
var noDividerClass = !hasDivider ? _tokens.classes.tabsNoDivider : undefined;
|
74
75
|
var hasTopArrowClass = !firstItemVisible ? _tokens.classes.tabsHasTopArrow : undefined;
|
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
});
|
7
7
|
exports.HintComponent = void 0;
|
8
8
|
var _react = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("react"));
|
9
|
-
var _utils = /*#__PURE__*/require("../../../../utils");
|
10
9
|
var _TextArea = /*#__PURE__*/require("../../TextArea.styles");
|
11
10
|
var _Icon = /*#__PURE__*/require("../../../_Icon");
|
11
|
+
var _utils = /*#__PURE__*/require("../../../../utils");
|
12
12
|
var _TextArea2 = /*#__PURE__*/require("../../TextArea.tokens");
|
13
13
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
14
14
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
@@ -45,7 +45,7 @@ var base = exports.base = process.env.NODE_ENV === "production" ? {
|
|
45
45
|
} : {
|
46
46
|
name: "121o0v2-plasma-new-hope__base",
|
47
47
|
styles: "display:block;label:plasma-new-hope__base;",
|
48
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvVGV4dEZpZWxkL1RleHRGaWVsZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBK0N1QiIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMtZW1vdGlvbi9jb21wb25lbnRzL1RleHRGaWVsZC9UZXh0RmllbGQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IGZvcndhcmRSZWYsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHsgRm9ybUV2ZW50SGFuZGxlciwgQ2hhbmdlRXZlbnRIYW5kbGVyLCBLZXlib2FyZEV2ZW50LCBDaGFuZ2VFdmVudCwgTW91c2VFdmVudEhhbmRsZXIgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VGb3JrUmVmIH0gZnJvbSAnQHNhbHV0ZWpzL3BsYXNtYS1jb3JlJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCB7IGN4LCBzYWZlVXNlSWQgfSBmcm9tICdzcmMvdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyBSb290UHJvcHMgfSBmcm9tICdzcmMvZW5naW5lcyc7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tICdzcmMvaG9va3MnO1xuXG5pbXBvcnQgdHlwZSB7IENoaXBWYWx1ZXMsIFRleHRGaWVsZFByaW1pdGl2ZVZhbHVlLCBUZXh0RmllbGRQcm9wcywgVGV4dEZpZWxkUm9vdFByb3BzIH0gZnJvbSAnLi9UZXh0RmllbGQudHlwZXMnO1xuaW1wb3J0IHsgYmFzZSBhcyBzaXplQ1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19zaXplL2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyB2aWV3Q1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL192aWV3L2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyBjbGVhckNTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9fY2xlYXIvYmFzZSc7XG5pbXBvcnQgeyBiYXNlIGFzIGRpc2FibGVkQ1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19kaXNhYmxlZC9iYXNlJztcbmltcG9ydCB7IGJhc2UgYXMgcmVhZE9ubHlDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX3JlYWQtb25seS9iYXNlJztcbmltcG9ydCB7IGJhc2UgYXMgbGFiZWxQbGFjZW1lbnRDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX2xhYmVsLXBsYWNlbWVudC9iYXNlJztcbmltcG9ydCB7IGJhc2UgYXMgaGludFZpZXdDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX2hpbnQtdmlldy9iYXNlJztcbmltcG9ydCB7IGJhc2UgYXMgaGludFNpemVDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX2hpbnQtc2l6ZS9iYXNlJztcbmltcG9ydCB7IGJhc2UgYXMgY2hpcFZpZXdDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX2NoaXAtdmlldy9iYXNlJztcbmltcG9ydCB7XG4gICAgSW5wdXQsXG4gICAgSW5wdXRDb250YWluZXIsXG4gICAgTGVmdEhlbHBlcixcbiAgICBMYWJlbCxcbiAgICBJbnB1dFdyYXBwZXIsXG4gICAgSW5wdXRMYWJlbFdyYXBwZXIsXG4gICAgU3R5bGVkQ29udGVudExlZnQsXG4gICAgU3R5bGVkQ29udGVudFJpZ2h0LFxuICAgIFN0eWxlZENoaXBzLFxuICAgIFN0eWxlZFRleHRCZWZvcmUsXG4gICAgU3R5bGVkVGV4dEFmdGVyLFxuICAgIFN0eWxlZEluZGljYXRvcixcbiAgICBTdHlsZWRPcHRpb25hbFRleHQsXG4gICAgSW5wdXRQbGFjZWhvbGRlcixcbiAgICBPdXRlckxhYmVsV3JhcHBlcixcbiAgICBUaXRsZUNhcHRpb24sXG4gICAgU3R5bGVkSGludFdyYXBwZXIsXG4gICAgU3R5bGVkSW5kaWNhdG9yV3JhcHBlcixcbiAgICBTdHlsZWRDb250ZW50UmlnaHRXcmFwcGVyLFxufSBmcm9tICcuL1RleHRGaWVsZC5zdHlsZXMnO1xuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJy4vVGV4dEZpZWxkLnRva2Vucyc7XG5pbXBvcnQgeyBUZXh0RmllbGRDaGlwIH0gZnJvbSAnLi91aSc7XG5pbXBvcnQgeyB1c2VLZXlOYXZpZ2F0aW9uIH0gZnJvbSAnLi9ob29rcyc7XG5pbXBvcnQgeyBIaW50Q29tcG9uZW50IH0gZnJvbSAnLi91aS9IaW50L0hpbnQnO1xuaW1wb3J0IHsgZ2V0SW5wdXRXaWR0aCB9IGZyb20gJy4vZ2V0SW5wdXRXaWR0aCc7XG5cbmNvbnN0IG9wdGlvbmFsVGV4dCA9ICdvcHRpb25hbCc7XG5cbmV4cG9ydCBjb25zdCBiYXNlID0gY3NzYFxuICAgIC8qIE5PVEU6IFdlYmtpdCDQvdC1INC/0YDQuNC80LXQvdGP0LXRgiBvcGFjaXR5INC6IGlubGluZSDRgtC10LPQsNC8ICovXG4gICAgZGlzcGxheTogYmxvY2s7XG5gO1xuXG5jb25zdCBISU5UX0RFRkFVTFRfT0ZGU0VUOiBbbnVtYmVyLCBudW1iZXJdID0gWzAsIDBdO1xuXG5leHBvcnQgY29uc3QgdGV4dEZpZWxkUm9vdCA9IChSb290OiBSb290UHJvcHM8SFRNTERpdkVsZW1lbnQsIFRleHRGaWVsZFJvb3RQcm9wcz4pID0+XG4gICAgZm9yd2FyZFJlZjxIVE1MSW5wdXRFbGVtZW50LCBUZXh0RmllbGRQcm9wcz4oXG4gICAgICAgIChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgc3R5bGUsXG5cbiAgICAgICAgICAgICAgICAvLyBsYXlvdXRcbiAgICAgICAgICAgICAgICBjb250ZW50TGVmdCxcbiAgICAgICAgICAgICAgICBjb250ZW50UmlnaHQsXG4gICAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgICAgbGFiZWxQbGFjZW1lbnQsXG4gICAgICAgICAgICAgICAga2VlcFBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgICAgIHRleHRCZWZvcmUsXG4gICAgICAgICAgICAgICAgdGV4dEFmdGVyLFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgICAgIGxlZnRIZWxwZXIsXG4gICAgICAgICAgICAgICAgZW51bWVyYXRpb25UeXBlID0gJ3BsYWluJyxcbiAgICAgICAgICAgICAgICByZXF1aXJlZFBsYWNlbWVudCA9ICdyaWdodCcsXG4gICAgICAgICAgICAgICAgaGFzUmVxdWlyZWRJbmRpY2F0b3IgPSB0cnVlLFxuICAgICAgICAgICAgICAgIHRpdGxlQ2FwdGlvbixcbiAgICAgICAgICAgICAgICBjaGlwVmlldyA9ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICAgICBjaGlwVmFsaWRhdG9yLFxuXG4gICAgICAgICAgICAgICAgLy8gaGludFxuICAgICAgICAgICAgICAgIGhpbnRUcmlnZ2VyID0gJ2hvdmVyJyxcbiAgICAgICAgICAgICAgICBoaW50VGV4dCxcbiAgICAgICAgICAgICAgICBoaW50VmlldyA9ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICAgICBoaW50U2l6ZSA9ICdtJyxcbiAgICAgICAgICAgICAgICBoaW50VGFyZ2V0SWNvbixcbiAgICAgICAgICAgICAgICBoaW50VGFyZ2V0UGxhY2VtZW50ID0gJ291dGVyJyxcbiAgICAgICAgICAgICAgICBoaW50UGxhY2VtZW50ID0gJ2F1dG8nLFxuICAgICAgICAgICAgICAgIGhpbnRIYXNBcnJvdyxcbiAgICAgICAgICAgICAgICBoaW50T2Zmc2V0ID0gSElOVF9ERUZBVUxUX09GRlNFVCxcbiAgICAgICAgICAgICAgICBoaW50V2lkdGgsXG4gICAgICAgICAgICAgICAgaGludENvbnRlbnRMZWZ0LFxuXG4gICAgICAgICAgICAgICAgLy8gdmFyaWF0aW9uc1xuICAgICAgICAgICAgICAgIHZpZXcsXG4gICAgICAgICAgICAgICAgc2l6ZSxcbiAgICAgICAgICAgICAgICByZWFkT25seSA9IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkID0gZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQgPSBmYWxzZSxcbiAgICAgICAgICAgICAgICBjbGVhciA9IGZhbHNlLFxuICAgICAgICAgICAgICAgIG9wdGlvbmFsLFxuICAgICAgICAgICAgICAgIGhhc0RpdmlkZXIsXG5cbiAgICAgICAgICAgICAgICAvLyBjb250cm9sbGVkXG4gICAgICAgICAgICAgICAgdmFsdWU6IG91dGVyVmFsdWUsXG4gICAgICAgICAgICAgICAgY2hpcHM6IHZhbHVlcyxcbiAgICAgICAgICAgICAgICBjaGlwVHlwZSA9ICdkZWZhdWx0JyxcblxuICAgICAgICAgICAgICAgIC8vIGV2ZW50c1xuICAgICAgICAgICAgICAgIG9uQ2hhbmdlLFxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlQ2hpcHMsXG4gICAgICAgICAgICAgICAgb25TZWFyY2gsXG4gICAgICAgICAgICAgICAgb25LZXlEb3duLFxuICAgICAgICAgICAgICAgIG9uRm9jdXMsXG4gICAgICAgICAgICAgICAgb25CbHVyLFxuXG4gICAgICAgICAgICAgICAgLy8g0J/RgNC+0L/RgdGLINC00LvRjyDQstC90YPRgtGA0LXQvdC90LXQs9C+INC40YHQv9C+0LvRjNC30L7QstCw0L3QuNGPLCDQvdC1INC+0YLQtNCw0LXRgtGB0Y8g0L3QsNGA0YPQttGDLlxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICBfb25FbnRlckRpc2FibGVkLFxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICBfZm9yY2VDaGlwTWFuaXB1bGF0aW9uV2l0aFJlYWRvbmx5LFxuXG4gICAgICAgICAgICAgICAgLi4ucmVzdFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlZixcbiAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICAgICAgICAgIGNvbnN0IGlucHV0Q29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICAgICAgICAgIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpO1xuICAgICAgICAgICAgY29uc3QgaW5wdXRGb3JrUmVmID0gdXNlRm9ya1JlZihpbnB1dFJlZiwgcmVmKTtcbiAgICAgICAgICAgIGNvbnN0IGNoaXBzUmVmcyA9IHVzZVJlZjxBcnJheTxIVE1MQnV0dG9uRWxlbWVudD4+KFtdKTtcblxuICAgICAgICAgICAgY29uc3QgY29udHJvbGxlZFJlZnMgPSB7IGNvbnRlbnRSZWYsIGlucHV0UmVmLCBjaGlwc1JlZnMgfTtcblxuICAgICAgICAgICAgY29uc3QgW2hhc1ZhbHVlLCBzZXRIYXNWYWx1ZV0gPSB1c2VTdGF0ZShcbiAgICAgICAgICAgICAgICBCb29sZWFuKG91dGVyVmFsdWUpIHx8IEJvb2xlYW4oaW5wdXRSZWY/LmN1cnJlbnQ/LnZhbHVlKSB8fCBCb29sZWFuKHJlc3Q/LmRlZmF1bHRWYWx1ZSksXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgW2hhc0ZvY3VzLCBzZXRIYXNGb2N1c10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgICAgICAgICAgIGNvbnN0IFtjaGlwcywgc2V0Q2hpcHNdID0gdXNlU3RhdGU8QXJyYXk8Q2hpcFZhbHVlcz4+KFtdKTtcbiAgICAgICAgICAgIGNvbnN0IFtpc0hpbnRWaXNpYmxlLCBzZXRJc0hpbnRWaXNpYmxlXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAgICAgICAgICAgY29uc3QgdW5pcUlkID0gc2FmZVVzZUlkKCk7XG4gICAgICAgICAgICBjb25zdCBpbm5lcklkID0gaWQgfHwgdW5pcUlkO1xuICAgICAgICAgICAgY29uc3QgbGFiZWxJZCA9IHNhZmVVc2VJZCgpO1xuICAgICAgICAgICAgY29uc3QgaGVscGVyVGV4dElkID0gc2FmZVVzZUlkKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGlzRGVmYXVsdFZpZXcgPSB2aWV3ID09PSAnZGVmYXVsdCcgfHwgcmVhZE9ubHkgfHwgZGlzYWJsZWQ7XG5cbiAgICAgICAgICAgIGNvbnN0IGlzQ2hpcEVudW1lcmF0aW9uID0gZW51bWVyYXRpb25UeXBlID09PSAnY2hpcCc7XG4gICAgICAgICAgICBjb25zdCBpc0NoaXBzVmlzaWJsZSA9IGlzQ2hpcEVudW1lcmF0aW9uICYmIEJvb2xlYW4oY2hpcHM/Lmxlbmd0aCk7XG4gICAgICAgICAgICBjb25zdCB3aXRoSGFzQ2hpcHMgPSBpc0NoaXBzVmlzaWJsZSA/IGNsYXNzZXMuaGFzQ2hpcHMgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgIGNvbnN0IGhhc0xhYmVsVmFsdWUgPSBCb29sZWFuKGxhYmVsKTtcbiAgICAgICAgICAgIGNvbnN0IGhhc0lubmVyTGFiZWwgPSBzaXplICE9PSAneHMnICYmIGxhYmVsUGxhY2VtZW50ID09PSAnaW5uZXInICYmICFpc0NoaXBzVmlzaWJsZSAmJiBoYXNMYWJlbFZhbHVlO1xuICAgICAgICAgICAgY29uc3QgaGFzT3V0ZXJMYWJlbCA9IGxhYmVsUGxhY2VtZW50ID09PSAnb3V0ZXInICYmIGhhc0xhYmVsVmFsdWU7XG4gICAgICAgICAgICBjb25zdCBpbm5lcktlZXBQbGFjZWhvbGRlciA9IGtlZXBQbGFjZWhvbGRlciAmJiBsYWJlbFBsYWNlbWVudCA9PT0gJ2lubmVyJztcbiAgICAgICAgICAgIGNvbnN0IGhhc1BsYWNlaG9sZGVyID0gQm9vbGVhbihwbGFjZWhvbGRlcikgJiYgKGlubmVyS2VlcFBsYWNlaG9sZGVyIHx8ICFoYXNJbm5lckxhYmVsKTtcbiAgICAgICAgICAgIGxldCBoYXNUZXh0QWZ0ZXIgPSBCb29sZWFuKHRleHRBZnRlcik7XG4gICAgICAgICAgICBsZXQgaGFzVGV4dEJlZm9yZSA9IHRleHRCZWZvcmUgJiYgIWlzQ2hpcEVudW1lcmF0aW9uO1xuICAgICAgICAgICAgaWYgKGxhYmVsUGxhY2VtZW50ID09PSAnaW5uZXInKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFoYXNWYWx1ZSAmJiAhaGFzUGxhY2Vob2xkZXIgJiYgIWhhc0ZvY3VzKSB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1RleHRBZnRlciA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBoYXNUZXh0QmVmb3JlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBoYXNQbGFjZWhvbGRlclBhZGRpbmcgPSBoYXNJbm5lckxhYmVsICYmIGtlZXBQbGFjZWhvbGRlciAmJiBzaXplICE9PSAneHMnO1xuXG4gICAgICAgICAgICBjb25zdCBpbm5lckxhYmVsVmFsdWUgPSBoYXNJbm5lckxhYmVsIHx8IGhhc091dGVyTGFiZWwgPyBsYWJlbCA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IGlubmVyTGFiZWxQbGFjZW1lbnRWYWx1ZSA9IGxhYmVsUGxhY2VtZW50ID09PSAnaW5uZXInICYmICFoYXNJbm5lckxhYmVsID8gdW5kZWZpbmVkIDogbGFiZWxQbGFjZW1lbnQ7XG5cbiAgICAgICAgICAgIGNvbnN0IGlubmVyUGxhY2Vob2xkZXJWYWx1ZSA9IGhhc1BsYWNlaG9sZGVyID8gcGxhY2Vob2xkZXIgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBwbGFjZWhvbGRlclNob3duID0gQm9vbGVhbihpbm5lclBsYWNlaG9sZGVyVmFsdWUpICYmICFoYXNWYWx1ZTtcblxuICAgICAgICAgICAgY29uc3QgY2xlYXJDbGFzcyA9IGNsZWFyID8gY2xhc3Nlcy5jbGVhciA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IGhhc0RpdmlkZXJDbGFzcyA9IGhhc0RpdmlkZXIgPyBjbGFzc2VzLmhhc0RpdmlkZXIgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBoYXNJbm5lckhpbnRDbGFzcyA9IGhpbnRUZXh0ICYmIGhpbnRUYXJnZXRQbGFjZW1lbnQgPT09ICdvdXRlcicgPyBjbGFzc2VzLmhhc0hpbnQgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBoYXNIaW50Q2xhc3MgPSBoaW50VGV4dCA/IGNsYXNzZXMuaGFzSGludCA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IHJlcXVpcmVkUGxhY2VtZW50Q2xhc3MgPSByZXF1aXJlZFBsYWNlbWVudCA9PT0gJ3JpZ2h0JyA/IGNsYXNzZXMucmVxdWlyZWRBbGlnblJpZ2h0IDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgbGFiZWxQbGFjZW1lbnRDbGFzcyA9IGlubmVyTGFiZWxQbGFjZW1lbnRWYWx1ZVxuICAgICAgICAgICAgICAgID8gY2xhc3Nlc1tgJHtpbm5lckxhYmVsUGxhY2VtZW50VmFsdWV9TGFiZWxQbGFjZW1lbnRgIGFzIGtleW9mIHR5cGVvZiBjbGFzc2VzXVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgaGFzVmFsdWVDbGFzcyA9IGhhc1ZhbHVlID8gY2xhc3Nlcy5oYXNWYWx1ZSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IGtlZXBQbGFjZWhvbGRlckNsYXNzID0gaGFzUGxhY2Vob2xkZXIgJiYgcGxhY2Vob2xkZXJTaG93biAmJiBjbGFzc2VzLmtlZXBQbGFjZWhvbGRlcjtcblxuICAgICAgICAgICAgY29uc3Qgd3JhcHBlcldpdGhvdXRMZWZ0Q29udGVudCA9XG4gICAgICAgICAgICAgICAgIWNvbnRlbnRMZWZ0ICYmIGlzQ2hpcHNWaXNpYmxlICYmIGNoaXBUeXBlID09PSAnZGVmYXVsdCcgPyBjbGFzc2VzLmhhc0VtcHR5Q29udGVudExlZnQgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCB3cmFwcGVyV2l0aG91dFJpZ2h0Q29udGVudCA9XG4gICAgICAgICAgICAgICAgIWNvbnRlbnRSaWdodCAmJiBpc0NoaXBzVmlzaWJsZSAmJiBjaGlwVHlwZSA9PT0gJ2RlZmF1bHQnID8gY2xhc3Nlcy5oYXNFbXB0eUNvbnRlbnRSaWdodCA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgY29uc3QgY29udGVudFJpZ2h0Q29tcGVuc2F0aW9uTWFyZ2luID1cbiAgICAgICAgICAgICAgICAhaGFzT3V0ZXJMYWJlbCAmJiBoaW50VGV4dCAmJiBoaW50VGFyZ2V0UGxhY2VtZW50ID09PSAnaW5uZXInXG4gICAgICAgICAgICAgICAgICAgID8gY2xhc3Nlcy5jb250ZW50UmlnaHRDb21wZW5zYXRpb25NYXJnaW5cbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgIGNvbnN0IGhpbnRSZWYgPSB1c2VPdXRzaWRlQ2xpY2s8SFRNTERpdkVsZW1lbnQ+KCgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRJc0hpbnRWaXNpYmxlKGZhbHNlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgaGludElubmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICAgICAgICAgIGNvbnN0IGhpbnRGb3JrUmVmID0gdXNlRm9ya1JlZihoaW50UmVmLCBoaW50SW5uZXJSZWYpO1xuXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVJbnB1dDogRm9ybUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuXG4gICAgICAgICAgICAgICAgc2V0SGFzVmFsdWUoQm9vbGVhbih2YWx1ZSkpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaGFzVGV4dEFmdGVyICYmIGlucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dFdpZHRoID0gZ2V0SW5wdXRXaWR0aChpbnB1dFJlZi5jdXJyZW50LCBpbnB1dENvbnRhaW5lclJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXRSZWYuY3VycmVudC5zdHlsZS53aWR0aCA9IGAke3RleHRXaWR0aH1weGA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXRSZWYuY3VycmVudD8uc3R5bGUucmVtb3ZlUHJvcGVydHkoJ3dpZHRoJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgW2hhc1RleHRBZnRlcl0pO1xuXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVGb2N1cyA9IChldmVudDogUmVhY3QuRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgIHNldEhhc0ZvY3VzKHRydWUpO1xuICAgICAgICAgICAgICAgIG9uRm9jdXM/LihldmVudCk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVCbHVyID0gKGV2ZW50OiBSZWFjdC5Gb2N1c0V2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0SGFzRm9jdXMoZmFsc2UpO1xuICAgICAgICAgICAgICAgIG9uQmx1cj8uKGV2ZW50KTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUhpbnRTaG93ID0gKCkgPT4gc2V0SXNIaW50VmlzaWJsZSh0cnVlKTtcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUhpbnRIaWRlID0gKCkgPT4gc2V0SXNIaW50VmlzaWJsZShmYWxzZSk7XG4gICAgICAgICAgICBjb25zdCBoYW5kbGVIaW50Q2xpY2s6IE1vdXNlRXZlbnRIYW5kbGVyID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFoaW50VGV4dCB8fCBoaW50VHJpZ2dlciAhPT0gJ2NsaWNrJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0SXNQb3BvdmVyID0gZXZlbnQudGFyZ2V0ID09PSBoaW50SW5uZXJSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICBjb25zdCByb290SGFzVGFyZ2V0ID0gaGludElubmVyUmVmLmN1cnJlbnQ/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KTtcblxuICAgICAgICAgICAgICAgIGlmICghdGFyZ2V0SXNQb3BvdmVyICYmICFyb290SGFzVGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHNldElzSGludFZpc2libGUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgaGFuZGxlQ2hhbmdlOiBDaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZGlzYWJsZWQgfHwgcmVhZE9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHsgbWF4TGVuZ3RoLCB2YWx1ZSB9ID0gZXZlbnQudGFyZ2V0O1xuXG4gICAgICAgICAgICAgICAgaWYgKG1heExlbmd0aCAhPT0gLTEgJiYgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT8uKGV2ZW50KTtcblxuICAgICAgICAgICAgICAgIGlmIChoYXNUZXh0QWZ0ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dFdpZHRoID0gZ2V0SW5wdXRXaWR0aChldmVudC5jdXJyZW50VGFyZ2V0LCBpbnB1dENvbnRhaW5lclJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS53aWR0aCA9IGAke3RleHRXaWR0aH1weGA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgdXBkYXRlQ2hpcHMgPSAobmV3Q2hpcHM6IEFycmF5PENoaXBWYWx1ZXM+LCBuZXdWYWx1ZXM6IEFycmF5PFRleHRGaWVsZFByaW1pdGl2ZVZhbHVlPikgPT4ge1xuICAgICAgICAgICAgICAgIHNldENoaXBzKG5ld0NoaXBzKTtcbiAgICAgICAgICAgICAgICBvbkNoYW5nZUNoaXBzPy4obmV3VmFsdWVzKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IHsgaGFuZGxlSW5wdXRLZXlkb3duLCBoYW5kbGVDaGlwS2V5RG93biwgb25DaGlwQ2xlYXIsIGhhbmRsZUNvbnRlbnRLZXlEb3duIH0gPSB1c2VLZXlOYXZpZ2F0aW9uKHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVkUmVmcyxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgICAgICByZWFkT25seSxcbiAgICAgICAgICAgICAgICBjaGlwcyxcbiAgICAgICAgICAgICAgICBlbnVtZXJhdGlvblR5cGUsXG4gICAgICAgICAgICAgICAgdXBkYXRlQ2hpcHMsXG4gICAgICAgICAgICAgICAgb25TZWFyY2gsXG4gICAgICAgICAgICAgICAgb25DaGFuZ2UsXG4gICAgICAgICAgICAgICAgb25FbnRlckRpc2FibGVkOiBfb25FbnRlckRpc2FibGVkLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGNvbnN0IG9uQ2hpcENsaWNrID0gKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4gZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUlucHV0Rm9jdXMgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlYWRPbmx5IHx8IGRpc2FibGVkIHx8ICFpbnB1dFJlZj8uY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaW5wdXRSZWYuY3VycmVudC5zY3JvbGxUbyh7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogaW5wdXRSZWYuY3VycmVudC5vZmZzZXRMZWZ0LFxuICAgICAgICAgICAgICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBpbnB1dFJlZi5jdXJyZW50LmZvY3VzKCk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBnZXRSZWYgPSAoZWxlbWVudDogSFRNTEJ1dHRvbkVsZW1lbnQgfCBudWxsLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgJiYgY2hpcHNSZWZzPy5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaXBzUmVmcy5jdXJyZW50W2luZGV4XSA9IGVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgaGFuZGxlT25LZXlEb3duID0gKGV2ZW50OiBDaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PiAmIEtleWJvYXJkRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICBoYW5kbGVJbnB1dEtleWRvd24oZXZlbnQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKG9uS2V5RG93bikge1xuICAgICAgICAgICAgICAgICAgICBvbktleURvd24oZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc0NoaXBFbnVtZXJhdGlvbiAmJiAhdmFsdWVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0NoaXBzID1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWVzPy5tYXAoKHZhbHVlLCBpbmRleCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBgJHtpbmRleH1fJHt2YWx1ZX1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIH0pKSB8fCBbXTtcblxuICAgICAgICAgICAgICAgIHNldENoaXBzKG5ld0NoaXBzKTtcbiAgICAgICAgICAgIH0sIFtpc0NoaXBFbnVtZXJhdGlvbiwgdmFsdWVzXSk7XG5cbiAgICAgICAgICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0SGFzVmFsdWUoQm9vbGVhbihyZXN0Py5kZWZhdWx0VmFsdWUpKTtcbiAgICAgICAgICAgIH0sIFtyZXN0LmRlZmF1bHRWYWx1ZV0pO1xuXG4gICAgICAgICAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldEhhc1ZhbHVlKEJvb2xlYW4ob3V0ZXJWYWx1ZSkgfHwgQm9vbGVhbihpbnB1dFJlZj8uY3VycmVudD8udmFsdWUpKTtcbiAgICAgICAgICAgIH0sIFtvdXRlclZhbHVlLCBpbnB1dFJlZj8uY3VycmVudD8udmFsdWVdKTtcblxuICAgICAgICAgICAgY29uc3QgaW5uZXJPcHRpb25hbCA9IEJvb2xlYW4ocmVxdWlyZWQgPyBmYWxzZSA6IG9wdGlvbmFsKTtcbiAgICAgICAgICAgIGNvbnN0IGhhc1BsYWNlaG9sZGVyT3B0aW9uYWwgPSBpbm5lck9wdGlvbmFsICYmICFpbm5lckxhYmVsVmFsdWUgJiYgIWhhc091dGVyTGFiZWw7XG4gICAgICAgICAgICBjb25zdCBvcHRpb25hbFRleHROb2RlID0gaW5uZXJPcHRpb25hbCA/IChcbiAgICAgICAgICAgICAgICA8U3R5bGVkT3B0aW9uYWxUZXh0PlxuICAgICAgICAgICAgICAgICAgICB7Qm9vbGVhbihoYXNQbGFjZWhvbGRlck9wdGlvbmFsID8gaW5uZXJQbGFjZWhvbGRlclZhbHVlIDogaW5uZXJMYWJlbFZhbHVlKSAmJiAnXFx4YTAnfVxuICAgICAgICAgICAgICAgICAgICB7b3B0aW9uYWxUZXh0fVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkT3B0aW9uYWxUZXh0PlxuICAgICAgICAgICAgKSA6IG51bGw7XG5cbiAgICAgICAgICAgIGNvbnN0IGNsYXNzVGV4dEVsbGlwc2lzID1cbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlcnNjb3JlLWRhbmdsZVxuICAgICAgICAgICAgICAgICEocmVzdCBhcyBhbnkpLl90ZXh0RWxsaXBzaXNEaXNhYmxlICYmICF0ZXh0QWZ0ZXIgPyBjbGFzc2VzLmlucHV0VGV4dEVsbGlwc2lzIDogdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxSb290XG4gICAgICAgICAgICAgICAgICAgIHZpZXc9e3ZpZXd9XG4gICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgcmVhZE9ubHk9eyFkaXNhYmxlZCAmJiByZWFkT25seX1cbiAgICAgICAgICAgICAgICAgICAgbGFiZWxQbGFjZW1lbnQ9e2lubmVyTGFiZWxQbGFjZW1lbnRWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlSW5wdXRGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsUGxhY2VtZW50Q2xhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhckNsYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGFzRGl2aWRlckNsYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGFzSW5uZXJIaW50Q2xhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLnRleHRGaWVsZEdyb3VwSXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICAgICAgICAgICAgICB7Li4uKGhpbnRUZXh0ICYmIHsgaGludFZpZXcsIGhpbnRTaXplIH0pfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgeyhoYXNPdXRlckxhYmVsIHx8IHRpdGxlQ2FwdGlvbikgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPE91dGVyTGFiZWxXcmFwcGVyIGlzSW5uZXJMYWJlbD17bGFiZWxQbGFjZW1lbnQgPT09ICdpbm5lcid9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoYXNPdXRlckxhYmVsICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEluZGljYXRvcldyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGFiZWwgaWQ9e2xhYmVsSWR9IGh0bWxGb3I9e2lkfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aW5uZXJMYWJlbFZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MYWJlbD5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hpbnRUZXh0ICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSGludFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaW50Q29tcG9uZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e2hpbnRGb3JrUmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFRleHQ9e2hpbnRUZXh0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFRyaWdnZXI9e2hpbnRUcmlnZ2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNIaW50VmlzaWJsZT17aXNIaW50VmlzaWJsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRUYXJnZXRJY29uPXtoaW50VGFyZ2V0SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRQbGFjZW1lbnQ9e2hpbnRQbGFjZW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50SGFzQXJyb3c9e2hpbnRIYXNBcnJvd31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRPZmZzZXQ9e2hpbnRPZmZzZXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50V2lkdGg9e2hpbnRXaWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRDb250ZW50TGVmdD17aGludENvbnRlbnRMZWZ0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlSGludFNob3c9e2hhbmRsZUhpbnRTaG93fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlSGludEhpZGU9e2hhbmRsZUhpbnRIaWRlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlSGludENsaWNrPXtoYW5kbGVIaW50Q2xpY2t9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRIaW50V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVxdWlyZWQgJiYgaGFzUmVxdWlyZWRJbmRpY2F0b3IgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbmRpY2F0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMub3V0ZXJMYWJlbFBsYWNlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkUGxhY2VtZW50Q2xhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNIaW50Q2xhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7b3B0aW9uYWxUZXh0Tm9kZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRJbmRpY2F0b3JXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3RpdGxlQ2FwdGlvbiAmJiA8VGl0bGVDYXB0aW9uPnt0aXRsZUNhcHRpb259PC9UaXRsZUNhcHRpb24+fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9PdXRlckxhYmVsV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgPElucHV0V3JhcHBlclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVmINC00LvRjyDQstC90YPRgtGA0LXQvdC90LXQs9C+INC40YHQv9C+0LvRjNC30L7QstCw0L3QuNGPLiDQndC1INC+0YLQtNCw0LXRgtGB0Y8g0L3QsNGA0YPQttGDLlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXsocmVzdCBhcyBhbnkpLmlucHV0V3JhcHBlclJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86ICMxNTQ0LCDQuCDQv9C+0YHQu9C1INGD0LHRgNCw0YLRjCBjbGFzc2VzLmlucHV0V3JhcHBlclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoSGFzQ2hpcHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JhcHBlcldpdGhvdXRMZWZ0Q29udGVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cmFwcGVyV2l0aG91dFJpZ2h0Q29udGVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLmlucHV0V3JhcHBlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHshaGFzT3V0ZXJMYWJlbCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3JlcXVpcmVkICYmIGhhc1JlcXVpcmVkSW5kaWNhdG9yICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbmRpY2F0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KGNsYXNzZXMuaW5uZXJMYWJlbFBsYWNlbWVudCwgcmVxdWlyZWRQbGFjZW1lbnRDbGFzcyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGludFRleHQgJiYgaGludFRhcmdldFBsYWNlbWVudCA9PT0gJ291dGVyJyAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSGludFdyYXBwZXIgY2xhc3NOYW1lPXtjbGFzc2VzLmlubmVyTGFiZWxQbGFjZW1lbnR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaW50Q29tcG9uZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17aGludEZvcmtSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRUZXh0PXtoaW50VGV4dH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFRyaWdnZXI9e2hpbnRUcmlnZ2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0hpbnRWaXNpYmxlPXtpc0hpbnRWaXNpYmxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VGFyZ2V0SWNvbj17aGludFRhcmdldEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRQbGFjZW1lbnQ9e2hpbnRQbGFjZW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRIYXNBcnJvdz17aGludEhhc0Fycm93fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50T2Zmc2V0PXtoaW50T2Zmc2V0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50V2lkdGg9e2hpbnRXaWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludENvbnRlbnRMZWZ0PXtoaW50Q29udGVudExlZnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUhpbnRTaG93PXtoYW5kbGVIaW50U2hvd31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlSGludEhpZGU9e2hhbmRsZUhpbnRIaWRlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50Q2xpY2s9e2hhbmRsZUhpbnRDbGlja31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNJbm5lckxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkSGludFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAge2NvbnRlbnRMZWZ0ICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkQ29udGVudExlZnQgaXNDbGVhcj17Y2xlYXJ9IGlzRGVmYXVsdFZpZXc9e2lzRGVmYXVsdFZpZXd9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29udGVudExlZnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRDb250ZW50TGVmdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRMYWJlbFdyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtjb250ZW50UmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlQ29udGVudEtleURvd259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXt3aXRoSGFzQ2hpcHN9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge0Jvb2xlYW4odGV4dEJlZm9yZSAmJiBpc0NoaXBFbnVtZXJhdGlvbikgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkVGV4dEJlZm9yZT57dGV4dEJlZm9yZX08L1N0eWxlZFRleHRCZWZvcmU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXNDaGlwRW51bWVyYXRpb24gJiYgQm9vbGVhbihjaGlwcz8ubGVuZ3RoKSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRDaGlwcyBjbGFzc05hbWU9e2NsYXNzZXMuY2hpcHNXcmFwcGVyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjaGlwcz8ubWFwKCh7IGlkOiBjaGlwSWQsIHRleHQgfSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWxpZGF0aW9uVmlldyA9IGNoaXBWYWxpZGF0b3I/LihTdHJpbmcodGV4dCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc1ZpZXcgPSB2YWxpZGF0aW9uVmlldz8udmlldyB8fCBjaGlwVmlldztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0RmllbGRDaGlwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD17Y2hpcElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXsoZWxlbWVudCkgPT4gZ2V0UmVmKGVsZW1lbnQsIGluZGV4KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7Y2hpcElkfV8ke2luZGV4fWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkT25seT17cmVhZE9ubHl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGV4dH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e3RleHR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldmVudCkgPT4gaGFuZGxlQ2hpcEtleURvd24oZXZlbnQsIGNoaXBJZCwgaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGVhcj17KCkgPT4gb25DaGlwQ2xlYXIoY2hpcElkLCBpbmRleCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtvbkNoaXBDbGlja31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaXBUeXBlPXtjaGlwVHlwZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXc9e3Jlc1ZpZXd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb290V3JhcHBlcj17Um9vdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86ICMxNTQ3XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZm9yY2VDaGlwTWFuaXB1bGF0aW9uV2l0aFJlYWRvbmx5PXtfZm9yY2VDaGlwTWFuaXB1bGF0aW9uV2l0aFJlYWRvbmx5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRDaGlwcz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dENvbnRhaW5lciByZWY9e2lucHV0Q29udGFpbmVyUmVmfSBoYXNEeW5hbWljV2lkdGg9e2hhc1RleHRBZnRlcn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoYXNUZXh0QmVmb3JlICYmIDxTdHlsZWRUZXh0QmVmb3JlPnt0ZXh0QmVmb3JlfTwvU3R5bGVkVGV4dEJlZm9yZT59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dEZvcmtSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD17aW5uZXJJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtvdXRlclZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e2VudW1lcmF0aW9uVHlwZSA9PT0gJ2NoaXAnID8gY2hpcHMubGVuZ3RoID09PSAwICYmIHJlcXVpcmVkIDogcmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e2xhYmVsSWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PXtoZWxwZXJUZXh0SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17aW5uZXJQbGFjZWhvbGRlclZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNWYWx1ZUNsYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtlZXBQbGFjZWhvbGRlckNsYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzVGV4dEVsbGlwc2lzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5ICYmIGNsYXNzZXMucmVhZE9ubHlJbnB1dCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkT25seT17IWRpc2FibGVkICYmIHJlYWRPbmx5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25JbnB1dD17aGFuZGxlSW5wdXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVPbktleURvd259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1cj17aGFuZGxlQmx1cn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5yZXN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGFzSW5uZXJMYWJlbCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGFiZWwgaWQ9e2xhYmVsSWR9IGh0bWxGb3I9e2lubmVySWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpbm5lckxhYmVsVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge29wdGlvbmFsVGV4dE5vZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cGxhY2Vob2xkZXJTaG93biAmJiAhaGFzVmFsdWUgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPElucHV0UGxhY2Vob2xkZXIgaGFzUGFkZGluZz17aGFzUGxhY2Vob2xkZXJQYWRkaW5nfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGFzVGV4dEJlZm9yZSAmJiA8U3R5bGVkVGV4dEJlZm9yZSBpc0hpZGRlbj57dGV4dEJlZm9yZX08L1N0eWxlZFRleHRCZWZvcmU+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpbm5lclBsYWNlaG9sZGVyVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hhc1BsYWNlaG9sZGVyT3B0aW9uYWwgJiYgb3B0aW9uYWxUZXh0Tm9kZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5wdXRQbGFjZWhvbGRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hhc1RleHRBZnRlciAmJiA8U3R5bGVkVGV4dEFmdGVyPnt0ZXh0QWZ0ZXJ9PC9TdHlsZWRUZXh0QWZ0ZXI+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5wdXRDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0lucHV0TGFiZWxXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZENvbnRlbnRSaWdodFdyYXBwZXIgY2xhc3NOYW1lPXtjeChjb250ZW50UmlnaHRDb21wZW5zYXRpb25NYXJnaW4pfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29udGVudFJpZ2h0ICYmIDxTdHlsZWRDb250ZW50UmlnaHQ+e2NvbnRlbnRSaWdodH08L1N0eWxlZENvbnRlbnRSaWdodD59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IWhhc091dGVyTGFiZWwgJiYgaGludFRleHQgJiYgaGludFRhcmdldFBsYWNlbWVudCA9PT0gJ2lubmVyJyAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaW50Q29tcG9uZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e2hpbnRGb3JrUmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFRleHQ9e2hpbnRUZXh0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFRyaWdnZXI9e2hpbnRUcmlnZ2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNIaW50VmlzaWJsZT17aXNIaW50VmlzaWJsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRUYXJnZXRJY29uPXtoaW50VGFyZ2V0SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRQbGFjZW1lbnQ9e2hpbnRQbGFjZW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50SGFzQXJyb3c9e2hpbnRIYXNBcnJvd31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRPZmZzZXQ9e2hpbnRPZmZzZXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50V2lkdGg9e2hpbnRXaWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRDb250ZW50TGVmdD17aGludENvbnRlbnRMZWZ0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUhpbnRTaG93PXtoYW5kbGVIaW50U2hvd31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUhpbnRIaWRlPXtoYW5kbGVIaW50SGlkZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUhpbnRDbGljaz17aGFuZGxlSGludENsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNJbm5lckxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQ29udGVudFJpZ2h0V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9JbnB1dFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgIHtsZWZ0SGVscGVyICYmIDxMZWZ0SGVscGVyIGlkPXtoZWxwZXJUZXh0SWR9PntsZWZ0SGVscGVyfTwvTGVmdEhlbHBlcj59XG4gICAgICAgICAgICAgICAgPC9Sb290PlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICApO1xuXG5leHBvcnQgY29uc3QgdGV4dEZpZWxkQ29uZmlnID0ge1xuICAgIG5hbWU6ICdUZXh0RmllbGQnLFxuICAgIHRhZzogJ2RpdicsXG4gICAgbGF5b3V0OiB0ZXh0RmllbGRSb290LFxuICAgIGJhc2UsXG4gICAgdmFyaWF0aW9uczoge1xuICAgICAgICB2aWV3OiB7XG4gICAgICAgICAgICBjc3M6IHZpZXdDU1MsXG4gICAgICAgIH0sXG4gICAgICAgIHNpemU6IHtcbiAgICAgICAgICAgIGNzczogc2l6ZUNTUyxcbiAgICAgICAgfSxcbiAgICAgICAgY2xlYXI6IHtcbiAgICAgICAgICAgIGNzczogY2xlYXJDU1MsXG4gICAgICAgICAgICBhdHRyczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGlzYWJsZWQ6IHtcbiAgICAgICAgICAgIGNzczogZGlzYWJsZWRDU1MsXG4gICAgICAgICAgICBhdHRyczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVhZE9ubHk6IHtcbiAgICAgICAgICAgIGNzczogcmVhZE9ubHlDU1MsXG4gICAgICAgICAgICBhdHRyczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxQbGFjZW1lbnQ6IHtcbiAgICAgICAgICAgIGNzczogbGFiZWxQbGFjZW1lbnRDU1MsXG4gICAgICAgIH0sXG4gICAgICAgIGhpbnRWaWV3OiB7XG4gICAgICAgICAgICBjc3M6IGhpbnRWaWV3Q1NTLFxuICAgICAgICB9LFxuICAgICAgICBoaW50U2l6ZToge1xuICAgICAgICAgICAgY3NzOiBoaW50U2l6ZUNTUyxcbiAgICAgICAgfSxcbiAgICAgICAgY2hpcFZpZXc6IHtcbiAgICAgICAgICAgIGNzczogY2hpcFZpZXdDU1MsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBkZWZhdWx0czoge1xuICAgICAgICBzaXplOiAnbScsXG4gICAgICAgIHZpZXc6ICdkZWZhdWx0JyxcbiAgICB9LFxufTtcbiJdfQ== */",
|
48
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvVGV4dEZpZWxkL1RleHRGaWVsZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0R1QiIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMtZW1vdGlvbi9jb21wb25lbnRzL1RleHRGaWVsZC9UZXh0RmllbGQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IGZvcndhcmRSZWYsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHsgRm9ybUV2ZW50SGFuZGxlciwgQ2hhbmdlRXZlbnRIYW5kbGVyLCBLZXlib2FyZEV2ZW50LCBDaGFuZ2VFdmVudCwgTW91c2VFdmVudEhhbmRsZXIgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBzYWZlVXNlSWQsIHVzZUZvcmtSZWYgfSBmcm9tICdAc2FsdXRlanMvcGxhc21hLWNvcmUnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuXG5pbXBvcnQgdHlwZSB7IFJvb3RQcm9wcyB9IGZyb20gJy4uLy4uL2VuZ2luZXMnO1xuaW1wb3J0IHsgY3ggfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tICcuLi8uLi9ob29rcyc7XG5cbmltcG9ydCB0eXBlIHsgQ2hpcFZhbHVlcywgVGV4dEZpZWxkUHJpbWl0aXZlVmFsdWUsIFRleHRGaWVsZFByb3BzLCBUZXh0RmllbGRSb290UHJvcHMgfSBmcm9tICcuL1RleHRGaWVsZC50eXBlcyc7XG5pbXBvcnQgeyBiYXNlIGFzIHNpemVDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX3NpemUvYmFzZSc7XG5pbXBvcnQgeyBiYXNlIGFzIHZpZXdDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX3ZpZXcvYmFzZSc7XG5pbXBvcnQgeyBiYXNlIGFzIGNsZWFyQ1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19jbGVhci9iYXNlJztcbmltcG9ydCB7IGJhc2UgYXMgZGlzYWJsZWRDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX2Rpc2FibGVkL2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyByZWFkT25seUNTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9fcmVhZC1vbmx5L2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyBsYWJlbFBsYWNlbWVudENTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9fbGFiZWwtcGxhY2VtZW50L2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyBoaW50Vmlld0NTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9faGludC12aWV3L2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyBoaW50U2l6ZUNTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9faGludC1zaXplL2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyBjaGlwVmlld0NTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9fY2hpcC12aWV3L2Jhc2UnO1xuaW1wb3J0IHtcbiAgICBJbnB1dCxcbiAgICBJbnB1dENvbnRhaW5lcixcbiAgICBMZWZ0SGVscGVyLFxuICAgIExhYmVsLFxuICAgIElucHV0V3JhcHBlcixcbiAgICBJbnB1dExhYmVsV3JhcHBlcixcbiAgICBTdHlsZWRDb250ZW50TGVmdCxcbiAgICBTdHlsZWRDb250ZW50UmlnaHQsXG4gICAgU3R5bGVkQ2hpcHMsXG4gICAgU3R5bGVkVGV4dEJlZm9yZSxcbiAgICBTdHlsZWRUZXh0QWZ0ZXIsXG4gICAgU3R5bGVkSW5kaWNhdG9yLFxuICAgIFN0eWxlZE9wdGlvbmFsVGV4dCxcbiAgICBJbnB1dFBsYWNlaG9sZGVyLFxuICAgIE91dGVyTGFiZWxXcmFwcGVyLFxuICAgIFRpdGxlQ2FwdGlvbixcbiAgICBTdHlsZWRIaW50V3JhcHBlcixcbiAgICBTdHlsZWRJbmRpY2F0b3JXcmFwcGVyLFxuICAgIFN0eWxlZENvbnRlbnRSaWdodFdyYXBwZXIsXG59IGZyb20gJy4vVGV4dEZpZWxkLnN0eWxlcyc7XG5pbXBvcnQgeyBjbGFzc2VzIH0gZnJvbSAnLi9UZXh0RmllbGQudG9rZW5zJztcbmltcG9ydCB7IFRleHRGaWVsZENoaXAgfSBmcm9tICcuL3VpJztcbmltcG9ydCB7IHVzZUtleU5hdmlnYXRpb24gfSBmcm9tICcuL2hvb2tzJztcbmltcG9ydCB7IEhpbnRDb21wb25lbnQgfSBmcm9tICcuL3VpL0hpbnQvSGludCc7XG5pbXBvcnQgeyBnZXRJbnB1dFdpZHRoIH0gZnJvbSAnLi9nZXRJbnB1dFdpZHRoJztcblxuY29uc3Qgb3B0aW9uYWxUZXh0ID0gJ29wdGlvbmFsJztcblxuZXhwb3J0IGNvbnN0IGJhc2UgPSBjc3NgXG4gICAgLyogTk9URTogV2Via2l0INC90LUg0L/RgNC40LzQtdC90Y/QtdGCIG9wYWNpdHkg0LogaW5saW5lINGC0LXQs9Cw0LwgKi9cbiAgICBkaXNwbGF5OiBibG9jaztcbmA7XG5cbmNvbnN0IEhJTlRfREVGQVVMVF9PRkZTRVQ6IFtudW1iZXIsIG51bWJlcl0gPSBbMCwgMF07XG5cbmV4cG9ydCBjb25zdCB0ZXh0RmllbGRSb290ID0gKFJvb3Q6IFJvb3RQcm9wczxIVE1MRGl2RWxlbWVudCwgVGV4dEZpZWxkUm9vdFByb3BzPikgPT5cbiAgICBmb3J3YXJkUmVmPEhUTUxJbnB1dEVsZW1lbnQsIFRleHRGaWVsZFByb3BzPihcbiAgICAgICAgKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICBzdHlsZSxcblxuICAgICAgICAgICAgICAgIC8vIGxheW91dFxuICAgICAgICAgICAgICAgIGNvbnRlbnRMZWZ0LFxuICAgICAgICAgICAgICAgIGNvbnRlbnRSaWdodCxcbiAgICAgICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgICAgICBsYWJlbFBsYWNlbWVudCxcbiAgICAgICAgICAgICAgICBrZWVwUGxhY2Vob2xkZXIsXG4gICAgICAgICAgICAgICAgdGV4dEJlZm9yZSxcbiAgICAgICAgICAgICAgICB0ZXh0QWZ0ZXIsXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXIsXG4gICAgICAgICAgICAgICAgbGVmdEhlbHBlcixcbiAgICAgICAgICAgICAgICBlbnVtZXJhdGlvblR5cGUgPSAncGxhaW4nLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkUGxhY2VtZW50ID0gJ3JpZ2h0JyxcbiAgICAgICAgICAgICAgICBoYXNSZXF1aXJlZEluZGljYXRvciA9IHRydWUsXG4gICAgICAgICAgICAgICAgdGl0bGVDYXB0aW9uLFxuICAgICAgICAgICAgICAgIGNoaXBWaWV3ID0gJ2RlZmF1bHQnLFxuICAgICAgICAgICAgICAgIGNoaXBWYWxpZGF0b3IsXG5cbiAgICAgICAgICAgICAgICAvLyBoaW50XG4gICAgICAgICAgICAgICAgaGludFRyaWdnZXIgPSAnaG92ZXInLFxuICAgICAgICAgICAgICAgIGhpbnRUZXh0LFxuICAgICAgICAgICAgICAgIGhpbnRWaWV3ID0gJ2RlZmF1bHQnLFxuICAgICAgICAgICAgICAgIGhpbnRTaXplID0gJ20nLFxuICAgICAgICAgICAgICAgIGhpbnRUYXJnZXRJY29uLFxuICAgICAgICAgICAgICAgIGhpbnRUYXJnZXRQbGFjZW1lbnQgPSAnb3V0ZXInLFxuICAgICAgICAgICAgICAgIGhpbnRQbGFjZW1lbnQgPSAnYXV0bycsXG4gICAgICAgICAgICAgICAgaGludEhhc0Fycm93LFxuICAgICAgICAgICAgICAgIGhpbnRPZmZzZXQgPSBISU5UX0RFRkFVTFRfT0ZGU0VULFxuICAgICAgICAgICAgICAgIGhpbnRXaWR0aCxcbiAgICAgICAgICAgICAgICBoaW50Q29udGVudExlZnQsXG5cbiAgICAgICAgICAgICAgICAvLyB2YXJpYXRpb25zXG4gICAgICAgICAgICAgICAgdmlldyxcbiAgICAgICAgICAgICAgICBzaXplLFxuICAgICAgICAgICAgICAgIHJlYWRPbmx5ID0gZmFsc2UsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZCA9IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNsZWFyID0gZmFsc2UsXG4gICAgICAgICAgICAgICAgb3B0aW9uYWwsXG4gICAgICAgICAgICAgICAgaGFzRGl2aWRlcixcblxuICAgICAgICAgICAgICAgIC8vIGNvbnRyb2xsZWRcbiAgICAgICAgICAgICAgICB2YWx1ZTogb3V0ZXJWYWx1ZSxcbiAgICAgICAgICAgICAgICBjaGlwczogdmFsdWVzLFxuICAgICAgICAgICAgICAgIGNoaXBUeXBlID0gJ2RlZmF1bHQnLFxuXG4gICAgICAgICAgICAgICAgLy8gZXZlbnRzXG4gICAgICAgICAgICAgICAgb25DaGFuZ2UsXG4gICAgICAgICAgICAgICAgb25DaGFuZ2VDaGlwcyxcbiAgICAgICAgICAgICAgICBvblNlYXJjaCxcbiAgICAgICAgICAgICAgICBvbktleURvd24sXG4gICAgICAgICAgICAgICAgb25Gb2N1cyxcbiAgICAgICAgICAgICAgICBvbkJsdXIsXG5cbiAgICAgICAgICAgICAgICAvLyDQn9GA0L7Qv9GB0Ysg0LTQu9GPINCy0L3Rg9GC0YDQtdC90L3QtdCz0L4g0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8sINC90LUg0L7RgtC00LDQtdGC0YHRjyDQvdCw0YDRg9C20YMuXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIF9vbkVudGVyRGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIF9mb3JjZUNoaXBNYW5pcHVsYXRpb25XaXRoUmVhZG9ubHksXG5cbiAgICAgICAgICAgICAgICAuLi5yZXN0XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVmLFxuICAgICAgICApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgICAgICAgICAgY29uc3QgaW5wdXRDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgICAgICAgICAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gICAgICAgICAgICBjb25zdCBpbnB1dEZvcmtSZWYgPSB1c2VGb3JrUmVmKGlucHV0UmVmLCByZWYpO1xuICAgICAgICAgICAgY29uc3QgY2hpcHNSZWZzID0gdXNlUmVmPEFycmF5PEhUTUxCdXR0b25FbGVtZW50Pj4oW10pO1xuXG4gICAgICAgICAgICBjb25zdCBjb250cm9sbGVkUmVmcyA9IHsgY29udGVudFJlZiwgaW5wdXRSZWYsIGNoaXBzUmVmcyB9O1xuXG4gICAgICAgICAgICBjb25zdCBbaGFzVmFsdWUsIHNldEhhc1ZhbHVlXSA9IHVzZVN0YXRlKFxuICAgICAgICAgICAgICAgIEJvb2xlYW4ob3V0ZXJWYWx1ZSkgfHwgQm9vbGVhbihpbnB1dFJlZj8uY3VycmVudD8udmFsdWUpIHx8IEJvb2xlYW4ocmVzdD8uZGVmYXVsdFZhbHVlKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBbaGFzRm9jdXMsIHNldEhhc0ZvY3VzXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAgICAgICAgICAgY29uc3QgW2NoaXBzLCBzZXRDaGlwc10gPSB1c2VTdGF0ZTxBcnJheTxDaGlwVmFsdWVzPj4oW10pO1xuICAgICAgICAgICAgY29uc3QgW2lzSGludFZpc2libGUsIHNldElzSGludFZpc2libGVdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgICAgICAgICBjb25zdCB1bmlxSWQgPSBzYWZlVXNlSWQoKTtcbiAgICAgICAgICAgIGNvbnN0IGlubmVySWQgPSBpZCB8fCB1bmlxSWQ7XG4gICAgICAgICAgICBjb25zdCBsYWJlbElkID0gc2FmZVVzZUlkKCk7XG4gICAgICAgICAgICBjb25zdCBoZWxwZXJUZXh0SWQgPSBzYWZlVXNlSWQoKTtcblxuICAgICAgICAgICAgY29uc3QgaXNEZWZhdWx0VmlldyA9IHZpZXcgPT09ICdkZWZhdWx0JyB8fCByZWFkT25seSB8fCBkaXNhYmxlZDtcblxuICAgICAgICAgICAgY29uc3QgaXNDaGlwRW51bWVyYXRpb24gPSBlbnVtZXJhdGlvblR5cGUgPT09ICdjaGlwJztcbiAgICAgICAgICAgIGNvbnN0IGlzQ2hpcHNWaXNpYmxlID0gaXNDaGlwRW51bWVyYXRpb24gJiYgQm9vbGVhbihjaGlwcz8ubGVuZ3RoKTtcbiAgICAgICAgICAgIGNvbnN0IHdpdGhIYXNDaGlwcyA9IGlzQ2hpcHNWaXNpYmxlID8gY2xhc3Nlcy5oYXNDaGlwcyA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgY29uc3QgaGFzTGFiZWxWYWx1ZSA9IEJvb2xlYW4obGFiZWwpO1xuICAgICAgICAgICAgY29uc3QgaGFzSW5uZXJMYWJlbCA9IHNpemUgIT09ICd4cycgJiYgbGFiZWxQbGFjZW1lbnQgPT09ICdpbm5lcicgJiYgIWlzQ2hpcHNWaXNpYmxlICYmIGhhc0xhYmVsVmFsdWU7XG4gICAgICAgICAgICBjb25zdCBoYXNPdXRlckxhYmVsID0gbGFiZWxQbGFjZW1lbnQgPT09ICdvdXRlcicgJiYgaGFzTGFiZWxWYWx1ZTtcbiAgICAgICAgICAgIGNvbnN0IGlubmVyS2VlcFBsYWNlaG9sZGVyID0ga2VlcFBsYWNlaG9sZGVyICYmIGxhYmVsUGxhY2VtZW50ID09PSAnaW5uZXInO1xuICAgICAgICAgICAgY29uc3QgaGFzUGxhY2Vob2xkZXIgPSBCb29sZWFuKHBsYWNlaG9sZGVyKSAmJiAoaW5uZXJLZWVwUGxhY2Vob2xkZXIgfHwgIWhhc0lubmVyTGFiZWwpO1xuICAgICAgICAgICAgbGV0IGhhc1RleHRBZnRlciA9IEJvb2xlYW4odGV4dEFmdGVyKTtcbiAgICAgICAgICAgIGxldCBoYXNUZXh0QmVmb3JlID0gdGV4dEJlZm9yZSAmJiAhaXNDaGlwRW51bWVyYXRpb247XG4gICAgICAgICAgICBpZiAobGFiZWxQbGFjZW1lbnQgPT09ICdpbm5lcicpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWhhc1ZhbHVlICYmICFoYXNQbGFjZWhvbGRlciAmJiAhaGFzRm9jdXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzVGV4dEFmdGVyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGhhc1RleHRCZWZvcmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGhhc1BsYWNlaG9sZGVyUGFkZGluZyA9IGhhc0lubmVyTGFiZWwgJiYga2VlcFBsYWNlaG9sZGVyICYmIHNpemUgIT09ICd4cyc7XG5cbiAgICAgICAgICAgIGNvbnN0IGlubmVyTGFiZWxWYWx1ZSA9IGhhc0lubmVyTGFiZWwgfHwgaGFzT3V0ZXJMYWJlbCA/IGxhYmVsIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgaW5uZXJMYWJlbFBsYWNlbWVudFZhbHVlID0gbGFiZWxQbGFjZW1lbnQgPT09ICdpbm5lcicgJiYgIWhhc0lubmVyTGFiZWwgPyB1bmRlZmluZWQgOiBsYWJlbFBsYWNlbWVudDtcblxuICAgICAgICAgICAgY29uc3QgaW5uZXJQbGFjZWhvbGRlclZhbHVlID0gaGFzUGxhY2Vob2xkZXIgPyBwbGFjZWhvbGRlciA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyU2hvd24gPSBCb29sZWFuKGlubmVyUGxhY2Vob2xkZXJWYWx1ZSkgJiYgIWhhc1ZhbHVlO1xuXG4gICAgICAgICAgICBjb25zdCBjbGVhckNsYXNzID0gY2xlYXIgPyBjbGFzc2VzLmNsZWFyIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgaGFzRGl2aWRlckNsYXNzID0gaGFzRGl2aWRlciA/IGNsYXNzZXMuaGFzRGl2aWRlciA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IGhhc0lubmVySGludENsYXNzID0gaGludFRleHQgJiYgaGludFRhcmdldFBsYWNlbWVudCA9PT0gJ291dGVyJyA/IGNsYXNzZXMuaGFzSGludCA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IGhhc0hpbnRDbGFzcyA9IGhpbnRUZXh0ID8gY2xhc3Nlcy5oYXNIaW50IDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgcmVxdWlyZWRQbGFjZW1lbnRDbGFzcyA9IHJlcXVpcmVkUGxhY2VtZW50ID09PSAncmlnaHQnID8gY2xhc3Nlcy5yZXF1aXJlZEFsaWduUmlnaHQgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBsYWJlbFBsYWNlbWVudENsYXNzID0gaW5uZXJMYWJlbFBsYWNlbWVudFZhbHVlXG4gICAgICAgICAgICAgICAgPyBjbGFzc2VzW2Ake2lubmVyTGFiZWxQbGFjZW1lbnRWYWx1ZX1MYWJlbFBsYWNlbWVudGAgYXMga2V5b2YgdHlwZW9mIGNsYXNzZXNdXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBoYXNWYWx1ZUNsYXNzID0gaGFzVmFsdWUgPyBjbGFzc2VzLmhhc1ZhbHVlIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3Qga2VlcFBsYWNlaG9sZGVyQ2xhc3MgPSBoYXNQbGFjZWhvbGRlciAmJiBwbGFjZWhvbGRlclNob3duICYmIGNsYXNzZXMua2VlcFBsYWNlaG9sZGVyO1xuXG4gICAgICAgICAgICBjb25zdCB3cmFwcGVyV2l0aG91dExlZnRDb250ZW50ID1cbiAgICAgICAgICAgICAgICAhY29udGVudExlZnQgJiYgaXNDaGlwc1Zpc2libGUgJiYgY2hpcFR5cGUgPT09ICdkZWZhdWx0JyA/IGNsYXNzZXMuaGFzRW1wdHlDb250ZW50TGVmdCA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJXaXRob3V0UmlnaHRDb250ZW50ID1cbiAgICAgICAgICAgICAgICAhY29udGVudFJpZ2h0ICYmIGlzQ2hpcHNWaXNpYmxlICYmIGNoaXBUeXBlID09PSAnZGVmYXVsdCcgPyBjbGFzc2VzLmhhc0VtcHR5Q29udGVudFJpZ2h0IDogdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICBjb25zdCBjb250ZW50UmlnaHRDb21wZW5zYXRpb25NYXJnaW4gPVxuICAgICAgICAgICAgICAgICFoYXNPdXRlckxhYmVsICYmIGhpbnRUZXh0ICYmIGhpbnRUYXJnZXRQbGFjZW1lbnQgPT09ICdpbm5lcidcbiAgICAgICAgICAgICAgICAgICAgPyBjbGFzc2VzLmNvbnRlbnRSaWdodENvbXBlbnNhdGlvbk1hcmdpblxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgY29uc3QgaGludFJlZiA9IHVzZU91dHNpZGVDbGljazxIVE1MRGl2RWxlbWVudD4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldElzSGludFZpc2libGUoZmFsc2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBoaW50SW5uZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgICAgICAgICAgY29uc3QgaGludEZvcmtSZWYgPSB1c2VGb3JrUmVmKGhpbnRSZWYsIGhpbnRJbm5lclJlZik7XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUlucHV0OiBGb3JtRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG5cbiAgICAgICAgICAgICAgICBzZXRIYXNWYWx1ZShCb29sZWFuKHZhbHVlKSk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChoYXNUZXh0QWZ0ZXIgJiYgaW5wdXRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0V2lkdGggPSBnZXRJbnB1dFdpZHRoKGlucHV0UmVmLmN1cnJlbnQsIGlucHV0Q29udGFpbmVyUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgICAgICAgICBpbnB1dFJlZi5jdXJyZW50LnN0eWxlLndpZHRoID0gYCR7dGV4dFdpZHRofXB4YDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpbnB1dFJlZi5jdXJyZW50Py5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnd2lkdGgnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBbaGFzVGV4dEFmdGVyXSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUZvY3VzID0gKGV2ZW50OiBSZWFjdC5Gb2N1c0V2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0SGFzRm9jdXModHJ1ZSk7XG4gICAgICAgICAgICAgICAgb25Gb2N1cz8uKGV2ZW50KTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUJsdXIgPSAoZXZlbnQ6IFJlYWN0LkZvY3VzRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICBzZXRIYXNGb2N1cyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgb25CbHVyPy4oZXZlbnQpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgaGFuZGxlSGludFNob3cgPSAoKSA9PiBzZXRJc0hpbnRWaXNpYmxlKHRydWUpO1xuICAgICAgICAgICAgY29uc3QgaGFuZGxlSGludEhpZGUgPSAoKSA9PiBzZXRJc0hpbnRWaXNpYmxlKGZhbHNlKTtcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUhpbnRDbGljazogTW91c2VFdmVudEhhbmRsZXIgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWhpbnRUZXh0IHx8IGhpbnRUcmlnZ2VyICE9PSAnY2xpY2snKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRJc1BvcG92ZXIgPSBldmVudC50YXJnZXQgPT09IGhpbnRJbm5lclJlZi5jdXJyZW50O1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvb3RIYXNUYXJnZXQgPSBoaW50SW5uZXJSZWYuY3VycmVudD8uY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0YXJnZXRJc1BvcG92ZXIgJiYgIXJvb3RIYXNUYXJnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0SXNIaW50VmlzaWJsZSh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChkaXNhYmxlZCB8fCByZWFkT25seSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgeyBtYXhMZW5ndGgsIHZhbHVlIH0gPSBldmVudC50YXJnZXQ7XG5cbiAgICAgICAgICAgICAgICBpZiAobWF4TGVuZ3RoICE9PSAtMSAmJiB2YWx1ZS5sZW5ndGggPiBtYXhMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPy4oZXZlbnQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGhhc1RleHRBZnRlcikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0V2lkdGggPSBnZXRJbnB1dFdpZHRoKGV2ZW50LmN1cnJlbnRUYXJnZXQsIGlucHV0Q29udGFpbmVyUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLndpZHRoID0gYCR7dGV4dFdpZHRofXB4YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCB1cGRhdGVDaGlwcyA9IChuZXdDaGlwczogQXJyYXk8Q2hpcFZhbHVlcz4sIG5ld1ZhbHVlczogQXJyYXk8VGV4dEZpZWxkUHJpbWl0aXZlVmFsdWU+KSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0Q2hpcHMobmV3Q2hpcHMpO1xuICAgICAgICAgICAgICAgIG9uQ2hhbmdlQ2hpcHM/LihuZXdWYWx1ZXMpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgeyBoYW5kbGVJbnB1dEtleWRvd24sIGhhbmRsZUNoaXBLZXlEb3duLCBvbkNoaXBDbGVhciwgaGFuZGxlQ29udGVudEtleURvd24gfSA9IHVzZUtleU5hdmlnYXRpb24oe1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZWRSZWZzLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgICAgIHJlYWRPbmx5LFxuICAgICAgICAgICAgICAgIGNoaXBzLFxuICAgICAgICAgICAgICAgIGVudW1lcmF0aW9uVHlwZSxcbiAgICAgICAgICAgICAgICB1cGRhdGVDaGlwcyxcbiAgICAgICAgICAgICAgICBvblNlYXJjaCxcbiAgICAgICAgICAgICAgICBvbkNoYW5nZSxcbiAgICAgICAgICAgICAgICBvbkVudGVyRGlzYWJsZWQ6IF9vbkVudGVyRGlzYWJsZWQsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3Qgb25DaGlwQ2xpY2sgPSAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgICAgY29uc3QgaGFuZGxlSW5wdXRGb2N1cyA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVhZE9ubHkgfHwgZGlzYWJsZWQgfHwgIWlucHV0UmVmPy5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpbnB1dFJlZi5jdXJyZW50LnNjcm9sbFRvKHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBpbnB1dFJlZi5jdXJyZW50Lm9mZnNldExlZnQsXG4gICAgICAgICAgICAgICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IGdldFJlZiA9IChlbGVtZW50OiBIVE1MQnV0dG9uRWxlbWVudCB8IG51bGwsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCAmJiBjaGlwc1JlZnM/LmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpcHNSZWZzLmN1cnJlbnRbaW5kZXhdID0gZWxlbWVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVPbktleURvd24gPSAoZXZlbnQ6IENoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+ICYgS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgIGhhbmRsZUlucHV0S2V5ZG93bihldmVudCk7XG5cbiAgICAgICAgICAgICAgICBpZiAob25LZXlEb3duKSB7XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzQ2hpcEVudW1lcmF0aW9uICYmICF2YWx1ZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3Q2hpcHMgPVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM/Lm1hcCgodmFsdWUsIGluZGV4KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGAke2luZGV4fV8ke3ZhbHVlfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSkpIHx8IFtdO1xuXG4gICAgICAgICAgICAgICAgc2V0Q2hpcHMobmV3Q2hpcHMpO1xuICAgICAgICAgICAgfSwgW2lzQ2hpcEVudW1lcmF0aW9uLCB2YWx1ZXNdKTtcblxuICAgICAgICAgICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRIYXNWYWx1ZShCb29sZWFuKHJlc3Q/LmRlZmF1bHRWYWx1ZSkpO1xuICAgICAgICAgICAgfSwgW3Jlc3QuZGVmYXVsdFZhbHVlXSk7XG5cbiAgICAgICAgICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0SGFzVmFsdWUoQm9vbGVhbihvdXRlclZhbHVlKSB8fCBCb29sZWFuKGlucHV0UmVmPy5jdXJyZW50Py52YWx1ZSkpO1xuICAgICAgICAgICAgfSwgW291dGVyVmFsdWUsIGlucHV0UmVmPy5jdXJyZW50Py52YWx1ZV0pO1xuXG4gICAgICAgICAgICBjb25zdCBpbm5lck9wdGlvbmFsID0gQm9vbGVhbihyZXF1aXJlZCA/IGZhbHNlIDogb3B0aW9uYWwpO1xuICAgICAgICAgICAgY29uc3QgaGFzUGxhY2Vob2xkZXJPcHRpb25hbCA9IGlubmVyT3B0aW9uYWwgJiYgIWlubmVyTGFiZWxWYWx1ZSAmJiAhaGFzT3V0ZXJMYWJlbDtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbmFsVGV4dE5vZGUgPSBpbm5lck9wdGlvbmFsID8gKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRPcHRpb25hbFRleHQ+XG4gICAgICAgICAgICAgICAgICAgIHtCb29sZWFuKGhhc1BsYWNlaG9sZGVyT3B0aW9uYWwgPyBpbm5lclBsYWNlaG9sZGVyVmFsdWUgOiBpbm5lckxhYmVsVmFsdWUpICYmICdcXHhhMCd9XG4gICAgICAgICAgICAgICAgICAgIHtvcHRpb25hbFRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRPcHRpb25hbFRleHQ+XG4gICAgICAgICAgICApIDogbnVsbDtcblxuICAgICAgICAgICAgY29uc3QgY2xhc3NUZXh0RWxsaXBzaXMgPVxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVyc2NvcmUtZGFuZ2xlXG4gICAgICAgICAgICAgICAgIShyZXN0IGFzIGFueSkuX3RleHRFbGxpcHNpc0Rpc2FibGUgJiYgIXRleHRBZnRlciA/IGNsYXNzZXMuaW5wdXRUZXh0RWxsaXBzaXMgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPFJvb3RcbiAgICAgICAgICAgICAgICAgICAgdmlldz17dmlld31cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICByZWFkT25seT17IWRpc2FibGVkICYmIHJlYWRPbmx5fVxuICAgICAgICAgICAgICAgICAgICBsYWJlbFBsYWNlbWVudD17aW5uZXJMYWJlbFBsYWNlbWVudFZhbHVlfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVJbnB1dEZvY3VzfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxQbGFjZW1lbnRDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyQ2xhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNEaXZpZGVyQ2xhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNJbm5lckhpbnRDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMudGV4dEZpZWxkR3JvdXBJdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgICAgICAgICAgICAgIHsuLi4oaGludFRleHQgJiYgeyBoaW50VmlldywgaGludFNpemUgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7KGhhc091dGVyTGFiZWwgfHwgdGl0bGVDYXB0aW9uKSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8T3V0ZXJMYWJlbFdyYXBwZXIgaXNJbm5lckxhYmVsPXtsYWJlbFBsYWNlbWVudCA9PT0gJ2lubmVyJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2hhc091dGVyTGFiZWwgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSW5kaWNhdG9yV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMYWJlbCBpZD17bGFiZWxJZH0gaHRtbEZvcj17aWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpbm5lckxhYmVsVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xhYmVsPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGludFRleHQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRIaW50V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpbnRDb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17aGludEZvcmtSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VGV4dD17aGludFRleHR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VHJpZ2dlcj17aGludFRyaWdnZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0hpbnRWaXNpYmxlPXtpc0hpbnRWaXNpYmxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFRhcmdldEljb249e2hpbnRUYXJnZXRJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFBsYWNlbWVudD17aGludFBsYWNlbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRIYXNBcnJvdz17aGludEhhc0Fycm93fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludE9mZnNldD17aGludE9mZnNldH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRXaWR0aD17aGludFdpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludENvbnRlbnRMZWZ0PXtoaW50Q29udGVudExlZnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50U2hvdz17aGFuZGxlSGludFNob3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50SGlkZT17aGFuZGxlSGludEhpZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50Q2xpY2s9e2hhbmRsZUhpbnRDbGlja31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEhpbnRXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZXF1aXJlZCAmJiBoYXNSZXF1aXJlZEluZGljYXRvciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEluZGljYXRvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy5vdXRlckxhYmVsUGxhY2VtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRQbGFjZW1lbnRDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0hpbnRDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtvcHRpb25hbFRleHROb2RlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEluZGljYXRvcldyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGl0bGVDYXB0aW9uICYmIDxUaXRsZUNhcHRpb24+e3RpdGxlQ2FwdGlvbn08L1RpdGxlQ2FwdGlvbj59XG4gICAgICAgICAgICAgICAgICAgICAgICA8L091dGVyTGFiZWxXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8SW5wdXRXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBSZWYg0LTQu9GPINCy0L3Rg9GC0YDQtdC90L3QtdCz0L4g0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8uINCd0LUg0L7RgtC00LDQtdGC0YHRjyDQvdCw0YDRg9C20YMuXG4gICAgICAgICAgICAgICAgICAgICAgICByZWY9eyhyZXN0IGFzIGFueSkuaW5wdXRXcmFwcGVyUmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogIzE1NDQsINC4INC/0L7RgdC70LUg0YPQsdGA0LDRgtGMIGNsYXNzZXMuaW5wdXRXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhIYXNDaGlwcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cmFwcGVyV2l0aG91dExlZnRDb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBwZXJXaXRob3V0UmlnaHRDb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMuaW5wdXRXcmFwcGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgeyFoYXNPdXRlckxhYmVsICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVxdWlyZWQgJiYgaGFzUmVxdWlyZWRJbmRpY2F0b3IgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEluZGljYXRvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goY2xhc3Nlcy5pbm5lckxhYmVsUGxhY2VtZW50LCByZXF1aXJlZFBsYWNlbWVudENsYXNzKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoaW50VGV4dCAmJiBoaW50VGFyZ2V0UGxhY2VtZW50ID09PSAnb3V0ZXInICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRIaW50V3JhcHBlciBjbGFzc05hbWU9e2NsYXNzZXMuaW5uZXJMYWJlbFBsYWNlbWVudH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpbnRDb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtoaW50Rm9ya1JlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFRleHQ9e2hpbnRUZXh0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VHJpZ2dlcj17aGludFRyaWdnZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzSGludFZpc2libGU9e2lzSGludFZpc2libGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRUYXJnZXRJY29uPXtoaW50VGFyZ2V0SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFBsYWNlbWVudD17aGludFBsYWNlbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludEhhc0Fycm93PXtoaW50SGFzQXJyb3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRPZmZzZXQ9e2hpbnRPZmZzZXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRXaWR0aD17aGludFdpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50Q29udGVudExlZnQ9e2hpbnRDb250ZW50TGVmdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlSGludFNob3c9e2hhbmRsZUhpbnRTaG93fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVIaW50SGlkZT17aGFuZGxlSGludEhpZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUhpbnRDbGljaz17aGFuZGxlSGludENsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0lubmVyTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRIaW50V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y29udGVudExlZnQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRDb250ZW50TGVmdCBpc0NsZWFyPXtjbGVhcn0gaXNEZWZhdWx0Vmlldz17aXNEZWZhdWx0Vmlld30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjb250ZW50TGVmdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZENvbnRlbnRMZWZ0PlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dExhYmVsV3JhcHBlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e2NvbnRlbnRSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVDb250ZW50S2V5RG93bn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3dpdGhIYXNDaGlwc31cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Qm9vbGVhbih0ZXh0QmVmb3JlICYmIGlzQ2hpcEVudW1lcmF0aW9uKSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QmVmb3JlPnt0ZXh0QmVmb3JlfTwvU3R5bGVkVGV4dEJlZm9yZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc0NoaXBFbnVtZXJhdGlvbiAmJiBCb29sZWFuKGNoaXBzPy5sZW5ndGgpICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZENoaXBzIGNsYXNzTmFtZT17Y2xhc3Nlcy5jaGlwc1dyYXBwZXJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2NoaXBzPy5tYXAoKHsgaWQ6IGNoaXBJZCwgdGV4dCB9LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRpb25WaWV3ID0gY2hpcFZhbGlkYXRvcj8uKFN0cmluZyh0ZXh0KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzVmlldyA9IHZhbGlkYXRpb25WaWV3Py52aWV3IHx8IGNoaXBWaWV3O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRleHRGaWVsZENoaXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPXtjaGlwSWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9eyhlbGVtZW50KSA9PiBnZXRSZWYoZWxlbWVudCwgaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtjaGlwSWR9XyR7aW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0ZXh0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dD17dGV4dH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2ZW50KSA9PiBoYW5kbGVDaGlwS2V5RG93bihldmVudCwgY2hpcElkLCBpbmRleCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsZWFyPXsoKSA9PiBvbkNoaXBDbGVhcihjaGlwSWQsIGluZGV4KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uQ2hpcENsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpcFR5cGU9e2NoaXBUeXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlldz17cmVzVmlld31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvb3RXcmFwcGVyPXtSb290fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogIzE1NDdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9mb3JjZUNoaXBNYW5pcHVsYXRpb25XaXRoUmVhZG9ubHk9e19mb3JjZUNoaXBNYW5pcHVsYXRpb25XaXRoUmVhZG9ubHl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZENoaXBzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElucHV0Q29udGFpbmVyIHJlZj17aW5wdXRDb250YWluZXJSZWZ9IGhhc0R5bmFtaWNXaWR0aD17aGFzVGV4dEFmdGVyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hhc1RleHRCZWZvcmUgJiYgPFN0eWxlZFRleHRCZWZvcmU+e3RleHRCZWZvcmV9PC9TdHlsZWRUZXh0QmVmb3JlPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e2lucHV0Rm9ya1JlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPXtpbm5lcklkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e291dGVyVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17ZW51bWVyYXRpb25UeXBlID09PSAnY2hpcCcgPyBjaGlwcy5sZW5ndGggPT09IDAgJiYgcmVxdWlyZWQgOiByZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT17bGFiZWxJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e2hlbHBlclRleHRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtpbm5lclBsYWNlaG9sZGVyVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc1ZhbHVlQ2xhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2VlcFBsYWNlaG9sZGVyQ2xhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NUZXh0RWxsaXBzaXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZE9ubHkgJiYgY2xhc3Nlcy5yZWFkT25seUlucHV0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXshZGlzYWJsZWQgJiYgcmVhZE9ubHl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbklucHV0PXtoYW5kbGVJbnB1dH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZU9uS2V5RG93bn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9e2hhbmRsZUZvY3VzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoYXNJbm5lckxhYmVsICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMYWJlbCBpZD17bGFiZWxJZH0gaHRtbEZvcj17aW5uZXJJZH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lubmVyTGFiZWxWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7b3B0aW9uYWxUZXh0Tm9kZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwbGFjZWhvbGRlclNob3duICYmICFoYXNWYWx1ZSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRQbGFjZWhvbGRlciBoYXNQYWRkaW5nPXtoYXNQbGFjZWhvbGRlclBhZGRpbmd9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoYXNUZXh0QmVmb3JlICYmIDxTdHlsZWRUZXh0QmVmb3JlIGlzSGlkZGVuPnt0ZXh0QmVmb3JlfTwvU3R5bGVkVGV4dEJlZm9yZT59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lubmVyUGxhY2Vob2xkZXJWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGFzUGxhY2Vob2xkZXJPcHRpb25hbCAmJiBvcHRpb25hbFRleHROb2RlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbnB1dFBsYWNlaG9sZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGFzVGV4dEFmdGVyICYmIDxTdHlsZWRUZXh0QWZ0ZXI+e3RleHRBZnRlcn08L1N0eWxlZFRleHRBZnRlcj59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbnB1dENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvSW5wdXRMYWJlbFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkQ29udGVudFJpZ2h0V3JhcHBlciBjbGFzc05hbWU9e2N4KGNvbnRlbnRSaWdodENvbXBlbnNhdGlvbk1hcmdpbil9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjb250ZW50UmlnaHQgJiYgPFN0eWxlZENvbnRlbnRSaWdodD57Y29udGVudFJpZ2h0fTwvU3R5bGVkQ29udGVudFJpZ2h0Pn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHshaGFzT3V0ZXJMYWJlbCAmJiBoaW50VGV4dCAmJiBoaW50VGFyZ2V0UGxhY2VtZW50ID09PSAnaW5uZXInICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpbnRDb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17aGludEZvcmtSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VGV4dD17aGludFRleHR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50VHJpZ2dlcj17aGludFRyaWdnZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0hpbnRWaXNpYmxlPXtpc0hpbnRWaXNpYmxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFRhcmdldEljb249e2hpbnRUYXJnZXRJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFBsYWNlbWVudD17aGludFBsYWNlbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRIYXNBcnJvdz17aGludEhhc0Fycm93fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludE9mZnNldD17aGludE9mZnNldH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRXaWR0aD17aGludFdpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludENvbnRlbnRMZWZ0PXtoaW50Q29udGVudExlZnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlSGludFNob3c9e2hhbmRsZUhpbnRTaG93fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlSGludEhpZGU9e2hhbmRsZUhpbnRIaWRlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlSGludENsaWNrPXtoYW5kbGVIaW50Q2xpY2t9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0lubmVyTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRDb250ZW50UmlnaHRXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICA8L0lucHV0V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAge2xlZnRIZWxwZXIgJiYgPExlZnRIZWxwZXIgaWQ9e2hlbHBlclRleHRJZH0+e2xlZnRIZWxwZXJ9PC9MZWZ0SGVscGVyPn1cbiAgICAgICAgICAgICAgICA8L1Jvb3Q+XG4gICAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICk7XG5cbmV4cG9ydCBjb25zdCB0ZXh0RmllbGRDb25maWcgPSB7XG4gICAgbmFtZTogJ1RleHRGaWVsZCcsXG4gICAgdGFnOiAnZGl2JyxcbiAgICBsYXlvdXQ6IHRleHRGaWVsZFJvb3QsXG4gICAgYmFzZSxcbiAgICB2YXJpYXRpb25zOiB7XG4gICAgICAgIHZpZXc6IHtcbiAgICAgICAgICAgIGNzczogdmlld0NTUyxcbiAgICAgICAgfSxcbiAgICAgICAgc2l6ZToge1xuICAgICAgICAgICAgY3NzOiBzaXplQ1NTLFxuICAgICAgICB9LFxuICAgICAgICBjbGVhcjoge1xuICAgICAgICAgICAgY3NzOiBjbGVhckNTUyxcbiAgICAgICAgICAgIGF0dHJzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBkaXNhYmxlZDoge1xuICAgICAgICAgICAgY3NzOiBkaXNhYmxlZENTUyxcbiAgICAgICAgICAgIGF0dHJzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICByZWFkT25seToge1xuICAgICAgICAgICAgY3NzOiByZWFkT25seUNTUyxcbiAgICAgICAgICAgIGF0dHJzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBsYWJlbFBsYWNlbWVudDoge1xuICAgICAgICAgICAgY3NzOiBsYWJlbFBsYWNlbWVudENTUyxcbiAgICAgICAgfSxcbiAgICAgICAgaGludFZpZXc6IHtcbiAgICAgICAgICAgIGNzczogaGludFZpZXdDU1MsXG4gICAgICAgIH0sXG4gICAgICAgIGhpbnRTaXplOiB7XG4gICAgICAgICAgICBjc3M6IGhpbnRTaXplQ1NTLFxuICAgICAgICB9LFxuICAgICAgICBjaGlwVmlldzoge1xuICAgICAgICAgICAgY3NzOiBjaGlwVmlld0NTUyxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGRlZmF1bHRzOiB7XG4gICAgICAgIHNpemU6ICdtJyxcbiAgICAgICAgdmlldzogJ2RlZmF1bHQnLFxuICAgIH0sXG59O1xuIl19 */",
|
49
49
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
50
50
|
};
|
51
51
|
var HINT_DEFAULT_OFFSET = [0, 0];
|
@@ -142,10 +142,10 @@ var textFieldRoot = exports.textFieldRoot = function textFieldRoot(Root) {
|
|
142
142
|
_useState8 = _slicedToArray(_useState7, 2),
|
143
143
|
isHintVisible = _useState8[0],
|
144
144
|
setIsHintVisible = _useState8[1];
|
145
|
-
var uniqId = (0,
|
145
|
+
var uniqId = (0, _plasmaCore.safeUseId)();
|
146
146
|
var innerId = id || uniqId;
|
147
|
-
var labelId = (0,
|
148
|
-
var helperTextId = (0,
|
147
|
+
var labelId = (0, _plasmaCore.safeUseId)();
|
148
|
+
var helperTextId = (0, _plasmaCore.safeUseId)();
|
149
149
|
var isDefaultView = view === 'default' || readOnly || disabled;
|
150
150
|
var isChipEnumeration = enumerationType === 'chip';
|
151
151
|
var isChipsVisible = isChipEnumeration && Boolean(chips === null || chips === void 0 ? void 0 : chips.length);
|
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
});
|
7
7
|
exports.HintComponent = void 0;
|
8
8
|
var _react = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("react"));
|
9
|
-
var _utils = /*#__PURE__*/require("../../../../utils");
|
10
9
|
var _TextField = /*#__PURE__*/require("../../TextField.styles");
|
11
10
|
var _Icon = /*#__PURE__*/require("../../../_Icon");
|
11
|
+
var _utils = /*#__PURE__*/require("../../../../utils");
|
12
12
|
var _TextField2 = /*#__PURE__*/require("../../TextField.tokens");
|
13
13
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
14
14
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
@@ -9,7 +9,7 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
9
9
|
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
10
10
|
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
11
11
|
import React, { forwardRef, useState, useReducer, useLayoutEffect, useRef } from 'react';
|
12
|
-
import { safeUseId } from
|
12
|
+
import { safeUseId } from '@salutejs/plasma-core';
|
13
13
|
import { useDidMountEffect, useOutsideClick } from "../../hooks";
|
14
14
|
import { FloatingPopover } from "./FloatingPopover";
|
15
15
|
import { focusedReducer } from "./reducers/focusedReducer";
|
@@ -6,7 +6,7 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
|
|
6
6
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
7
7
|
import { flip, shift, size, useFloating, FloatingPortal, autoUpdate } from '@floating-ui/react';
|
8
8
|
import React, { forwardRef } from 'react';
|
9
|
-
import { safeUseId } from
|
9
|
+
import { safeUseId } from '@salutejs/plasma-core';
|
10
10
|
var FloatingPopover = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
11
11
|
var target = _ref.target,
|
12
12
|
children = _ref.children,
|
@@ -135,18 +135,6 @@ export var calendarBaseRoot = function calendarBaseRoot(Root) {
|
|
135
135
|
setPrevType(calendarState);
|
136
136
|
}
|
137
137
|
}, [calendarState]);
|
138
|
-
useEffect(function () {
|
139
|
-
if (prevType !== type) {
|
140
|
-
dispatch({
|
141
|
-
type: ActionType.UPDATE_CALENDAR_STATE,
|
142
|
-
payload: {
|
143
|
-
calendarState: type,
|
144
|
-
size: sizeMap[type].single
|
145
|
-
}
|
146
|
-
});
|
147
|
-
setPrevType(type);
|
148
|
-
}
|
149
|
-
}, [type]);
|
150
138
|
useEffect(function () {
|
151
139
|
if (value && prevValue && isValueUpdate(value, prevValue) || value && !prevValue) {
|
152
140
|
dispatch({
|
@@ -182,18 +182,6 @@ export var calendarDoubleRoot = function calendarDoubleRoot(Root) {
|
|
182
182
|
setPrevType(calendarState);
|
183
183
|
}
|
184
184
|
}, [calendarState]);
|
185
|
-
useEffect(function () {
|
186
|
-
if (prevType !== type) {
|
187
|
-
dispatch({
|
188
|
-
type: ActionType.UPDATE_CALENDAR_STATE,
|
189
|
-
payload: {
|
190
|
-
calendarState: type,
|
191
|
-
size: sizeMap[type]["double"]
|
192
|
-
}
|
193
|
-
});
|
194
|
-
setPrevType(type);
|
195
|
-
}
|
196
|
-
}, [type]);
|
197
185
|
useEffect(function () {
|
198
186
|
if (value && prevValue && isValueUpdate(value, prevValue) || value && !prevValue) {
|
199
187
|
var _getBoundaryDates = getBoundaryDates(),
|
@@ -92,9 +92,6 @@ export var CalendarDays = function CalendarDays(_ref) {
|
|
92
92
|
};
|
93
93
|
var getRefs = function getRefs(element, isDayInCurrentMonth, i, j) {
|
94
94
|
if (isDayInCurrentMonth) {
|
95
|
-
if (!outerRefs.current[i + offset]) {
|
96
|
-
outerRefs.current[i + offset] = [];
|
97
|
-
}
|
98
95
|
outerRefs.current[i + offset][j] = element;
|
99
96
|
}
|
100
97
|
};
|
@@ -98,9 +98,6 @@ export var CalendarMonths = function CalendarMonths(_ref) {
|
|
98
98
|
return onHoverMonth === null || onHoverMonth === void 0 ? void 0 : onHoverMonth(undefined);
|
99
99
|
};
|
100
100
|
var getRefs = useCallback(function (element, i, j) {
|
101
|
-
if (!outerRefs.current[i + offset]) {
|
102
|
-
outerRefs.current[i + offset] = [];
|
103
|
-
}
|
104
101
|
outerRefs.current[i + offset][j] = element;
|
105
102
|
}, [offset, outerRefs]);
|
106
103
|
useEffect(function () {
|
@@ -96,9 +96,6 @@ export var CalendarQuarters = function CalendarQuarters(_ref) {
|
|
96
96
|
return onHoverQuarter === null || onHoverQuarter === void 0 ? void 0 : onHoverQuarter(undefined);
|
97
97
|
};
|
98
98
|
var getRefs = useCallback(function (element, i, j) {
|
99
|
-
if (!outerRefs.current[i + offset]) {
|
100
|
-
outerRefs.current[i + offset] = [];
|
101
|
-
}
|
102
99
|
outerRefs.current[i + offset][j] = element;
|
103
100
|
}, [offset, outerRefs]);
|
104
101
|
useEffect(function () {
|
@@ -98,9 +98,6 @@ export var CalendarYears = function CalendarYears(_ref) {
|
|
98
98
|
return onHoverYear === null || onHoverYear === void 0 ? void 0 : onHoverYear(undefined);
|
99
99
|
};
|
100
100
|
var getRefs = useCallback(function (element, i, j) {
|
101
|
-
if (!outerRefs.current[i + offset]) {
|
102
|
-
outerRefs.current[i + offset] = [];
|
103
|
-
}
|
104
101
|
outerRefs.current[i + offset][j] = element;
|
105
102
|
}, [outerRefs]);
|
106
103
|
useEffect(function () {
|
@@ -4,8 +4,7 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
|
|
4
4
|
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
5
5
|
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
6
6
|
import React, { forwardRef, useEffect, useMemo, useRef } from 'react';
|
7
|
-
import { useForkRef, extractTextFrom } from '@salutejs/plasma-core';
|
8
|
-
import { safeUseId } from "../../utils";
|
7
|
+
import { safeUseId, useForkRef, extractTextFrom } from '@salutejs/plasma-core';
|
9
8
|
import { cx } from "../../utils";
|
10
9
|
import { base as viewCSS } from "./variations/_view/base";
|
11
10
|
import { base as sizeCSS } from "./variations/_size/base";
|
@@ -14,8 +14,7 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
14
14
|
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
15
15
|
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
16
16
|
import React, { forwardRef, useState, useReducer, useMemo, useLayoutEffect, useRef } from 'react';
|
17
|
-
import { useForkRef } from '@salutejs/plasma-core';
|
18
|
-
import { safeUseId } from "../../../utils";
|
17
|
+
import { safeUseId, useForkRef } from '@salutejs/plasma-core';
|
19
18
|
import { isEmpty } from "../../../utils";
|
20
19
|
import { useOutsideClick } from "../../../hooks";
|
21
20
|
import { sizeToIconSize } from "../../Select/utils";
|