. user can override */\n vertical-align: middle;\n }\n\n .dijitTextBoxReadOnly,\n .dijitTextBoxDisabled {\n color: gray;\n }\n .dj_safari .dijitTextBoxDisabled input {\n color: #b0b0b0; /* because Safari lightens disabled input/textarea no matter what color you specify */\n }\n .dj_safari textarea.dijitTextAreaDisabled {\n color: #333; /* because Safari lightens disabled input/textarea no matter what color you specify */\n }\n .dj_gecko .dijitTextBoxReadOnly input.dijitInputField, /* disable arrow and validation presentation inputs but allow real input for text selection */\n .dj_gecko .dijitTextBoxDisabled input {\n -moz-user-input: none; /* prevent focus of disabled textbox buttons */\n }\n\n .dijitPlaceHolder {\n /* hint text that appears in a textbox until user starts typing */\n color: #aaaaaa;\n font-style: italic;\n position: absolute;\n top: 0;\n left: 0;\n white-space: nowrap;\n pointer-events: none; /* so cut/paste context menu shows up when right clicking */\n }\n\n .dijitTimeTextBox {\n width: 8em;\n }\n\n /* rules for webkit to deal with fuzzy blue focus border */\n .dijitTextBox input:focus {\n outline: none; /* blue fuzzy line looks wrong on combobox or something w/validation icon showing */\n }\n .dijitTextBoxFocused {\n outline: 5px -webkit-focus-ring-color;\n }\n\n .dijitSelect input,\n .dijitTextBox input {\n float: left; /* needed by IE to remove secret margin */\n }\n .dj_ie6 input.dijitTextBox,\n .dj_ie6 .dijitTextBox input {\n float: none;\n }\n .dijitInputInner {\n /* for when an is embedded inside an inline-block
with a size and border */\n border: 0 !important;\n background-color: transparent !important;\n width: 100% !important;\n /* IE dislikes horizontal tweaking combined with width:100% so punish everyone for consistency */\n padding-left: 0 !important;\n padding-right: 0 !important;\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .dj_a11y .dijitTextBox input {\n margin: 0 !important;\n }\n .dijitValidationTextBoxError input.dijitValidationInner,\n .dijitSelect input,\n .dijitTextBox input.dijitArrowButtonInner {\n /* used to display arrow icon/validation icon, or in arrow character in high contrast mode.\n\t * The css below is a trick to hide the character in non-high-contrast mode\n\t */\n text-indent: -2em !important;\n direction: ltr !important;\n text-align: left !important;\n height: auto !important;\n }\n .dj_ie .dijitSelect input,\n .dj_ie .dijitTextBox input,\n .dj_ie input.dijitTextBox {\n overflow-y: visible; /* inputs need help expanding when padding is added or line-height is adjusted */\n line-height: normal; /* strict mode */\n }\n .dijitSelect .dijitSelectLabel span {\n line-height: 100%;\n }\n .dj_ie .dijitSelect .dijitSelectLabel {\n line-height: normal;\n }\n .dj_ie6 .dijitSelect .dijitSelectLabel,\n .dj_ie7 .dijitSelect .dijitSelectLabel,\n .dj_ie8 .dijitSelect .dijitSelectLabel,\n .dj_iequirks .dijitSelect .dijitSelectLabel,\n .dijitSelect td,\n .dj_ie6 .dijitSelect input,\n .dj_iequirks .dijitSelect input,\n .dj_ie6 .dijitSelect .dijitValidationContainer,\n .dj_ie6 .dijitTextBox input,\n .dj_ie6 input.dijitTextBox,\n .dj_iequirks .dijitTextBox input.dijitValidationInner,\n .dj_iequirks .dijitTextBox input.dijitArrowButtonInner,\n .dj_iequirks .dijitTextBox input.dijitSpinnerButtonInner,\n .dj_iequirks .dijitTextBox input.dijitInputInner,\n .dj_iequirks input.dijitTextBox {\n line-height: 100%; /* IE7 problem where the icon is vertically way too low w/o this */\n }\n .dj_a11y input.dijitValidationInner,\n .dj_a11y input.dijitArrowButtonInner {\n /* (in high contrast mode) revert rules from above so character displays */\n text-indent: 0 !important;\n width: 1em !important;\n color: black !important;\n }\n .dijitValidationTextBoxError .dijitValidationContainer {\n display: inline;\n cursor: default;\n }\n\n /* ComboBox & Spinner */\n\n .dijitSpinner .dijitSpinnerButtonContainer,\n .dijitComboBox .dijitArrowButtonContainer {\n /* dividing line between input area and up/down button(s) for ComboBox and Spinner */\n border-width: 0 0 0 1px !important; /* !important needed due to wayward \".theme .dijitButtonNode\" rules */\n }\n .dj_a11y .dijitSelect .dijitArrowButtonContainer,\n .dijitToolbar .dijitComboBox .dijitArrowButtonContainer {\n /* overrides above rule plus mirror-image rule in dijit_rtl.css to have no divider when ComboBox in Toolbar */\n border-width: 0 !important;\n }\n\n .dijitComboBoxMenu {\n /* Drop down menu is implemented as
... but we don't want circles before each item */\n list-style-type: none;\n }\n .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {\n /* dividing line between input area and up/down button(s) for ComboBox and Spinner */\n border-width: 0;\n }\n .dj_ie .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {\n clear: both; /* IE workaround */\n }\n\n .dj_ie .dijitToolbar .dijitComboBox {\n /* make combobox buttons align properly with other buttons in a toolbar */\n vertical-align: middle;\n }\n\n /* Spinner */\n\n .dijitTextBox .dijitSpinnerButtonContainer {\n width: 1em;\n position: relative !important;\n overflow: hidden;\n }\n .dijitSpinner .dijitSpinnerButtonInner {\n width: 1em;\n visibility: hidden !important; /* just a sizing element */\n overflow-x: hidden;\n }\n .dijitComboBox .dijitButtonNode,\n .dijitSpinnerButtonContainer .dijitButtonNode {\n border-width: 0;\n }\n .dj_a11y .dijitSpinnerButtonContainer .dijitButtonNode {\n border-width: 0px !important;\n border-style: solid !important;\n }\n .dj_a11y .dijitTextBox .dijitSpinnerButtonContainer,\n .dj_a11y .dijitSpinner .dijitArrowButtonInner,\n .dj_a11y .dijitSpinnerButtonContainer input {\n width: 1em !important;\n }\n .dj_a11y .dijitSpinner .dijitArrowButtonInner {\n margin: 0 auto !important; /* should auto-center */\n }\n .dj_ie .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n padding-left: 0.3em !important;\n padding-right: 0.3em !important;\n margin-left: 0.3em !important;\n margin-right: 0.3em !important;\n width: 1.4em !important;\n }\n .dj_ie7 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n padding-left: 0 !important; /* manually center INPUT: character is .5em and total width = 1em */\n padding-right: 0 !important;\n width: 1em !important;\n }\n .dj_ie6 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n margin-left: 0.1em !important;\n margin-right: 0.1em !important;\n width: 1em !important;\n }\n .dj_iequirks .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n margin-left: 0 !important;\n margin-right: 0 !important;\n width: 2em !important;\n }\n .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {\n /* note: .dijitInputLayoutContainer makes this rule override .dijitArrowButton settings\n\t * for dijit.form.Button\n\t */\n padding: 0;\n position: absolute !important;\n right: 0;\n float: none;\n height: 50%;\n width: 100%;\n bottom: auto;\n left: 0;\n right: auto;\n }\n .dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {\n width: auto;\n }\n .dj_a11y .dijitSpinnerButtonContainer .dijitArrowButton {\n overflow: visible !important;\n }\n .dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton {\n top: 50%;\n border-top-width: 1px !important;\n }\n .dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton {\n top: 0;\n }\n .dijitSpinner .dijitArrowButtonInner {\n margin: auto;\n overflow-x: hidden;\n height: 100% !important;\n }\n .dj_iequirks .dijitSpinner .dijitArrowButtonInner {\n height: auto !important;\n }\n .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n transform: scale(0.5);\n transform-origin: left top;\n padding-top: 0;\n padding-bottom: 0;\n padding-left: 0 !important;\n padding-right: 0 !important;\n width: 100%;\n visibility: hidden;\n }\n .dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n zoom: 50%; /* emulate transform: scale(0.5) */\n }\n .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner {\n overflow: hidden;\n }\n\n .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {\n width: 100%;\n }\n .dj_iequirks .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {\n width: 1em; /* matches .dj_a11y .dijitTextBox .dijitSpinnerButtonContainer rule - 100% is the whole screen width in quirks */\n }\n .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n vertical-align: top;\n visibility: visible;\n }\n .dj_a11y .dijitSpinnerButtonContainer {\n width: 1em;\n }\n\n /****\n\t\tdijit.form.CheckBox\n \t &\n \t\tdijit.form.RadioButton\n ****/\n\n .dijitCheckBox,\n .dijitRadio,\n .dijitCheckBoxInput {\n padding: 0;\n border: 0;\n width: 16px;\n height: 16px;\n background-position: center center;\n background-repeat: no-repeat;\n overflow: hidden;\n }\n\n .dijitCheckBox input,\n .dijitRadio input {\n margin: 0;\n padding: 0;\n display: block;\n }\n\n .dijitCheckBoxInput {\n /* place the actual input on top, but invisible */\n opacity: 0;\n }\n\n .dj_ie .dijitCheckBoxInput {\n filter: alpha(opacity=0);\n }\n\n .dj_a11y .dijitCheckBox,\n .dj_a11y .dijitRadio {\n /* in a11y mode we display the native checkbox (not the icon), so don't restrict the size */\n width: auto !important;\n height: auto !important;\n }\n .dj_a11y .dijitCheckBoxInput {\n opacity: 1;\n filter: none;\n width: auto;\n height: auto;\n }\n\n .dj_a11y .dijitFocusedLabel {\n /* for checkboxes or radio buttons in high contrast mode, use border rather than outline to indicate focus (outline does not work in FF)*/\n border: 1px dotted;\n outline: 0px !important;\n }\n\n /****\n\t\tdijit.ProgressBar\n ****/\n\n .dijitProgressBar {\n z-index: 0; /* so z-index settings below have no effect outside of the ProgressBar */\n }\n .dijitProgressBarEmpty {\n /* outer container and background of the bar that's not finished yet*/\n position: relative;\n overflow: hidden;\n border: 1px solid black; /* a11y: border necessary for high-contrast mode */\n z-index: 0; /* establish a stacking context for this progress bar */\n }\n\n .dijitProgressBarFull {\n /* outer container for background of bar that is finished */\n position: absolute;\n overflow: hidden;\n z-index: -1;\n top: 0;\n width: 100%;\n }\n .dj_ie6 .dijitProgressBarFull {\n height: 1.6em;\n }\n\n .dijitProgressBarTile {\n /* inner container for finished portion */\n position: absolute;\n overflow: hidden;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: 0;\n padding: 0;\n width: 100%; /* needed for IE/quirks */\n height: auto;\n background-color: #aaa;\n background-attachment: fixed;\n }\n\n .dj_a11y .dijitProgressBarTile {\n /* a11y: The border provides visibility in high-contrast mode */\n border-width: 2px;\n border-style: solid;\n background-color: transparent !important;\n }\n\n .dj_ie6 .dijitProgressBarTile {\n /* width:auto works in IE6 with position:static but not position:absolute */\n position: static;\n /* height:auto or 100% does not work in IE6 */\n height: 1.6em;\n }\n\n .dijitProgressBarIndeterminate .dijitProgressBarTile {\n /* animated gif for 'indeterminate' mode */\n }\n\n .dijitProgressBarIndeterminateHighContrastImage {\n display: none;\n }\n\n .dj_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage {\n display: block;\n position: absolute;\n top: 0;\n bottom: 0;\n margin: 0;\n padding: 0;\n width: 100%;\n height: auto;\n }\n\n .dijitProgressBarLabel {\n display: block;\n position: static;\n width: 100%;\n text-align: center;\n background-color: transparent !important;\n }\n\n /****\n\t\tdijit.Tooltip\n ****/\n\n .dijitTooltip {\n position: absolute;\n z-index: 2000;\n display: block;\n /* make visible but off screen */\n left: 0;\n top: -10000px;\n overflow: visible;\n }\n\n .dijitTooltipContainer {\n border: solid black 2px;\n background: #b8b5b5;\n color: black;\n font-size: small;\n }\n\n .dijitTooltipFocusNode {\n padding: 2px 2px 2px 2px;\n }\n\n .dijitTooltipConnector {\n position: absolute;\n }\n .dj_a11y .dijitTooltipConnector {\n display: none; /* won't show b/c it's background-image; hide to avoid border gap */\n }\n\n .dijitTooltipData {\n display: none;\n }\n\n /* Layout widgets. This is essential CSS to make layout work (it isn't \"styling\" CSS)\n make sure that the position:absolute in dijitAlign* overrides other classes */\n\n .dijitLayoutContainer {\n position: relative;\n display: block;\n overflow: hidden;\n }\n\n .dijitAlignTop,\n .dijitAlignBottom,\n .dijitAlignLeft,\n .dijitAlignRight {\n position: absolute;\n overflow: hidden;\n }\n\n body .dijitAlignClient {\n position: absolute;\n }\n\n /*\n * BorderContainer\n *\n * .dijitBorderContainer is a stylized layout where panes have border and margin.\n * .dijitBorderContainerNoGutter is a raw layout.\n */\n .dijitBorderContainer,\n .dijitBorderContainerNoGutter {\n position: relative;\n overflow: hidden;\n z-index: 0; /* so z-index settings below have no effect outside of the BorderContainer */\n }\n\n .dijitBorderContainerPane,\n .dijitBorderContainerNoGutterPane {\n position: absolute !important; /* !important to override position:relative in dijitTabContainer etc. */\n z-index: 2; /* above the splitters so that off-by-one browser errors don't cover up border of pane */\n }\n\n .dijitBorderContainer > .dijitTextArea {\n /* On Safari, for SimpleTextArea inside a BorderContainer,\n\t\tdon't want to display the grip to resize */\n resize: none;\n }\n\n .dijitGutter {\n /* gutter is just a place holder for empty space between panes in BorderContainer */\n position: absolute;\n font-size: 1px; /* needed by IE6 even though div is empty, otherwise goes to 15px */\n }\n\n /* SplitContainer\n\n\t'V' == container that splits vertically (up/down)\n\t'H' = horizontal (left/right)\n*/\n\n .dijitSplitter {\n position: absolute;\n overflow: hidden;\n z-index: 10; /* above the panes so that splitter focus is visible on FF, see #7583*/\n background-color: #fff;\n border-color: gray;\n border-style: solid;\n border-width: 0;\n }\n .dj_ie .dijitSplitter {\n z-index: 1; /* behind the panes so that pane borders aren't obscured see test_Gui.html/[14392] */\n }\n\n .dijitSplitterActive {\n z-index: 11 !important;\n }\n\n .dijitSplitterCover {\n position: absolute;\n z-index: -1;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n\n .dijitSplitterCoverActive {\n z-index: 3 !important;\n }\n\n /* #6945: stop mouse events */\n .dj_ie .dijitSplitterCover {\n background: white;\n opacity: 0;\n }\n .dj_ie6 .dijitSplitterCover,\n .dj_ie7 .dijitSplitterCover,\n .dj_ie8 .dijitSplitterCover {\n filter: alpha(opacity=0);\n }\n\n .dijitSplitterH {\n height: 7px;\n border-top: 1px;\n border-bottom: 1px;\n cursor: row-resize;\n -webkit-tap-highlight-color: transparent;\n }\n .dijitSplitterV {\n width: 7px;\n border-left: 1px;\n border-right: 1px;\n cursor: col-resize;\n -webkit-tap-highlight-color: transparent;\n }\n .dijitSplitContainer {\n position: relative;\n overflow: hidden;\n display: block;\n }\n\n .dijitSplitPane {\n position: absolute;\n }\n\n .dijitSplitContainerSizerH,\n .dijitSplitContainerSizerV {\n position: absolute;\n font-size: 1px;\n background-color: ThreeDFace;\n border: 1px solid;\n border-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight;\n margin: 0;\n }\n\n .dijitSplitContainerSizerH .thumb,\n .dijitSplitterV .dijitSplitterThumb {\n overflow: hidden;\n position: absolute;\n top: 49%;\n }\n\n .dijitSplitContainerSizerV .thumb,\n .dijitSplitterH .dijitSplitterThumb {\n position: absolute;\n left: 49%;\n }\n\n .dijitSplitterShadow,\n .dijitSplitContainerVirtualSizerH,\n .dijitSplitContainerVirtualSizerV {\n font-size: 1px;\n background-color: ThreeDShadow;\n opacity: 0.5;\n margin: 0;\n }\n\n .dijitSplitContainerSizerH,\n .dijitSplitContainerVirtualSizerH {\n cursor: col-resize;\n }\n\n .dijitSplitContainerSizerV,\n .dijitSplitContainerVirtualSizerV {\n cursor: row-resize;\n }\n\n .dj_a11y .dijitSplitterH {\n border-top: 1px solid #d3d3d3 !important;\n border-bottom: 1px solid #d3d3d3 !important;\n }\n .dj_a11y .dijitSplitterV {\n border-left: 1px solid #d3d3d3 !important;\n border-right: 1px solid #d3d3d3 !important;\n }\n\n /* ContentPane */\n\n .dijitContentPane {\n display: block;\n overflow: auto; /* if we don't have this (or overflow:hidden), then Widget.resizeTo() doesn't make sense for ContentPane */\n -webkit-overflow-scrolling: touch;\n }\n\n .dijitContentPaneSingleChild {\n /*\n\t * if the ContentPane holds a single layout widget child which is being sized to match the content pane,\n\t * then the ContentPane should never get a scrollbar (but it does due to browser bugs, see #9449\n\t */\n overflow: hidden;\n }\n\n .dijitContentPaneLoading .dijitIconLoading,\n .dijitContentPaneError .dijitIconError {\n margin-right: 9px;\n }\n\n /* TitlePane and Fieldset */\n\n .dijitTitlePane {\n display: block;\n overflow: hidden;\n }\n .dijitFieldset {\n border: 1px solid gray;\n }\n .dijitTitlePaneTitle,\n .dijitFieldsetTitle {\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n }\n .dijitTitlePaneTitleFixedOpen,\n .dijitTitlePaneTitleFixedClosed,\n .dijitFieldsetTitleFixedOpen,\n .dijitFieldsetTitleFixedClosed {\n /* TitlePane or Fieldset that cannot be toggled */\n cursor: default;\n }\n .dijitTitlePaneTitle * {\n vertical-align: middle;\n }\n .dijitTitlePane .dijitArrowNodeInner,\n .dijitFieldset .dijitArrowNodeInner {\n /* normally, hide arrow text in favor of icon */\n display: none;\n }\n .dj_a11y .dijitTitlePane .dijitArrowNodeInner,\n .dj_a11y .dijitFieldset .dijitArrowNodeInner {\n /* ... except in a11y mode, then show text arrow */\n display: inline;\n font-family: monospace; /* because - and + are different widths */\n }\n .dj_a11y .dijitTitlePane .dijitArrowNode,\n .dj_a11y .dijitFieldset .dijitArrowNode {\n /* ... and hide icon (TODO: just point dijitIcon class on the icon, and it hides automatically) */\n display: none;\n }\n .dijitTitlePaneTitleFixedOpen .dijitArrowNode,\n .dijitTitlePaneTitleFixedOpen .dijitArrowNodeInner,\n .dijitTitlePaneTitleFixedClosed .dijitArrowNode,\n .dijitTitlePaneTitleFixedClosed .dijitArrowNodeInner,\n .dijitFieldsetTitleFixedOpen .dijitArrowNode,\n .dijitFieldsetTitleFixedOpen .dijitArrowNodeInner,\n .dijitFieldsetTitleFixedClosed .dijitArrowNode,\n .dijitFieldsetTitleFixedClosed .dijitArrowNodeInner {\n /* don't show the open close icon or text arrow; it makes the user think the pane is closable */\n display: none !important; /* !important to override above a11y rules to show text arrow */\n }\n\n .dj_ie6 .dijitTitlePaneContentOuter,\n .dj_ie6 .dijitTitlePane .dijitTitlePaneTitle {\n /* force hasLayout to ensure borders etc, show up */\n zoom: 1;\n }\n\n /* Color Palette\n * Sizes designed so that table cell positions match icons in underlying image,\n * which appear at 20x20 intervals.\n */\n\n .dijitColorPalette {\n border: 1px solid #999;\n background: #fff;\n position: relative;\n }\n\n .dijitColorPalette .dijitPaletteTable {\n /* Table that holds the palette cells, and overlays image file with color swatches.\n\t * padding/margin to align table with image.\n\t */\n padding: 2px 3px 3px 3px;\n position: relative;\n overflow: hidden;\n outline: 0;\n border-collapse: separate;\n }\n .dj_ie6 .dijitColorPalette .dijitPaletteTable,\n .dj_ie7 .dijitColorPalette .dijitPaletteTable,\n .dj_iequirks .dijitColorPalette .dijitPaletteTable {\n /* using padding above so that focus border isn't cutoff on moz/webkit,\n\t * but using margin on IE because padding doesn't seem to work\n\t */\n padding: 0;\n margin: 2px 3px 3px 3px;\n }\n\n .dijitColorPalette .dijitPaletteCell {\n /*
in the
*/\n font-size: 1px;\n vertical-align: middle;\n text-align: center;\n background: none;\n }\n .dijitColorPalette .dijitPaletteImg {\n /* Called dijitPaletteImg for back-compat, this actually wraps the color swatch with a border and padding */\n padding: 1px; /* white area between gray border and color swatch */\n border: 1px solid #999;\n margin: 2px 1px;\n cursor: default;\n font-size: 1px; /* prevent from getting bigger just to hold a character */\n }\n .dj_gecko .dijitColorPalette .dijitPaletteImg {\n padding-bottom: 0; /* workaround rendering glitch on FF, it adds an extra pixel at the bottom */\n }\n .dijitColorPalette .dijitColorPaletteSwatch {\n /* the actual part where the color is */\n width: 14px;\n height: 12px;\n }\n .dijitPaletteTable td {\n padding: 0;\n }\n .dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg {\n /* hovered color swatch */\n border: 1px solid #000;\n }\n\n .dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg,\n .dijitColorPalette .dijitPaletteTable .dijitPaletteCellSelected .dijitPaletteImg {\n border: 2px solid #000;\n margin: 1px 0; /* reduce margin to compensate for increased border */\n }\n\n .dj_a11y .dijitColorPalette .dijitPaletteTable,\n .dj_a11y .dijitColorPalette .dijitPaletteTable * {\n /* table cells are to catch events, but the swatches are in the PaletteImg behind the table */\n background-color: transparent !important;\n }\n\n /* AccordionContainer */\n\n .dijitAccordionContainer {\n border: 1px solid #b7b7b7;\n border-top: 0 !important;\n }\n .dijitAccordionTitle {\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n }\n .dijitAccordionTitleSelected {\n cursor: default;\n }\n\n /* images off, high-contrast mode styles */\n .dijitAccordionTitle .arrowTextUp,\n .dijitAccordionTitle .arrowTextDown {\n display: none;\n font-size: 0.65em;\n font-weight: normal !important;\n }\n\n .dj_a11y .dijitAccordionTitle .arrowTextUp,\n .dj_a11y .dijitAccordionTitleSelected .arrowTextDown {\n display: inline;\n }\n\n .dj_a11y .dijitAccordionTitleSelected .arrowTextUp {\n display: none;\n }\n\n .dijitAccordionChildWrapper {\n /* this is the node whose height is adjusted */\n overflow: hidden;\n }\n\n /* Calendar */\n\n .dijitCalendarContainer table {\n width: auto; /* in case user has specified a width for the TABLE nodes, see #10553 */\n clear: both; /* clear margin created for left/right month arrows; needed on IE10 for CalendarLite */\n }\n .dijitCalendarContainer th,\n .dijitCalendarContainer td {\n padding: 0;\n vertical-align: middle;\n }\n\n .dijitCalendarMonthContainer {\n text-align: center;\n }\n .dijitCalendarDecrementArrow {\n float: left;\n }\n .dijitCalendarIncrementArrow {\n float: right;\n }\n\n .dijitCalendarYearLabel {\n white-space: nowrap; /* make sure previous, current, and next year appear on same row */\n }\n\n .dijitCalendarNextYear {\n margin: 0 0 0 0.55em;\n }\n\n .dijitCalendarPreviousYear {\n margin: 0 0.55em 0 0;\n }\n\n .dijitCalendarIncrementControl {\n vertical-align: middle;\n }\n\n .dijitCalendarIncrementControl,\n .dijitCalendarDateTemplate,\n .dijitCalendarMonthLabel,\n .dijitCalendarPreviousYear,\n .dijitCalendarNextYear {\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n }\n\n .dijitCalendarDisabledDate {\n color: gray;\n text-decoration: line-through;\n cursor: default;\n }\n\n .dijitSpacer {\n /* don't display it, but make it affect the width */\n position: relative;\n height: 1px;\n overflow: hidden;\n visibility: hidden;\n }\n\n /* Styling for month drop down list */\n\n .dijitCalendarMonthMenu .dijitCalendarMonthLabel {\n text-align: center;\n }\n\n /* Menu */\n\n .dijitMenu {\n border: 1px solid black;\n background-color: white;\n }\n .dijitMenuTable {\n border-collapse: collapse;\n border-width: 0;\n background-color: white;\n }\n\n /* workaround for webkit bug #8427, remove this when it is fixed upstream */\n .dj_webkit .dijitMenuTable td[colspan=\"2\"] {\n border-right: hidden;\n }\n\n .dijitMenuItem {\n text-align: left;\n white-space: nowrap;\n padding: 0.1em 0.2em;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n }\n\n /*\nNo need to show a focus border since it's obvious from the shading, and there's a .dj_a11y .dijitMenuItemSelected\nrule below that handles the high contrast case when there's no shading.\nHiding the focus border also works around webkit bug https://code.google.com/p/chromium/issues/detail?id=125779.\n*/\n .dijitMenuItem:focus {\n outline: none;\n }\n\n .dijitMenuPassive .dijitMenuItemHover,\n .dijitMenuItemSelected {\n /*\n\t * dijitMenuItemHover refers to actual mouse over\n\t * dijitMenuItemSelected is used after a menu has been \"activated\" by\n\t * clicking it, tabbing into it, or being opened from a parent menu,\n\t * and denotes that the menu item has focus or that focus is on a child\n\t * menu\n\t */\n background-color: black;\n color: white;\n }\n\n .dijitMenuItemIcon,\n .dijitMenuExpand {\n background-repeat: no-repeat;\n }\n\n .dijitMenuItemDisabled * {\n /* for a disabled menu item, just set it to mostly transparent */\n opacity: 0.5;\n cursor: default;\n }\n .dj_ie .dj_a11y .dijitMenuItemDisabled,\n .dj_ie .dj_a11y .dijitMenuItemDisabled *,\n .dj_ie .dijitMenuItemDisabled * {\n color: gray;\n filter: alpha(opacity=35);\n }\n\n .dijitMenuItemLabel {\n vertical-align: middle;\n }\n\n .dj_a11y .dijitMenuItemSelected {\n border: 1px dotted black !important; /* for 2.0 use outline instead, to prevent jitter */\n }\n\n .dj_a11y .dijitMenuItemSelected .dijitMenuItemLabel {\n border-width: 1px;\n border-style: solid;\n }\n .dj_ie8 .dj_a11y .dijitMenuItemLabel {\n position: static;\n }\n\n .dijitMenuExpandA11y {\n display: none;\n }\n .dj_a11y .dijitMenuExpandA11y {\n display: inline;\n }\n\n .dijitMenuSeparator td {\n border: 0;\n padding: 0;\n }\n\n /* separator can be two pixels -- set border of either one to 0 to have only one */\n .dijitMenuSeparatorTop {\n height: 50%;\n margin: 0;\n margin-top: 3px;\n font-size: 1px;\n }\n\n .dijitMenuSeparatorBottom {\n height: 50%;\n margin: 0;\n margin-bottom: 3px;\n font-size: 1px;\n }\n\n /* CheckedMenuItem and RadioMenuItem */\n .dijitMenuItemIconChar {\n display: none; /* don't display except in high contrast mode */\n visibility: hidden; /* for high contrast mode when menuitem is unchecked: leave space for when it is checked */\n }\n .dj_a11y .dijitMenuItemIconChar {\n display: inline; /* display character in high contrast mode, since icon doesn't show */\n }\n .dijitCheckedMenuItemChecked .dijitMenuItemIconChar,\n .dijitRadioMenuItemChecked .dijitMenuItemIconChar {\n visibility: visible; /* menuitem is checked */\n }\n .dj_ie .dj_a11y .dijitMenuBar .dijitMenuItem {\n /* so bottom border of MenuBar appears on IE7 in high-contrast mode */\n margin: 0;\n }\n\n /* StackContainer */\n\n .dijitStackController .dijitToggleButtonChecked * {\n cursor: default; /* because pressing it has no effect */\n }\n\n /***\nTabContainer\n\nMain class hierarchy:\n\n.dijitTabContainer - the whole TabContainer\n .dijitTabController / .dijitTabListContainer-top - wrapper for tab buttons, scroll buttons\n\t .dijitTabListWrapper / .dijitTabContainerTopStrip - outer wrapper for tab buttons (normal width)\n\t\t.nowrapTabStrip / .dijitTabContainerTop-tabs - inner wrapper for tab buttons (50K width)\n .dijitTabPaneWrapper - wrapper for content panes, has all borders except the one between content and tabs\n***/\n\n .dijitTabContainer {\n z-index: 0; /* so z-index settings below have no effect outside of the TabContainer */\n overflow: visible; /* prevent off-by-one-pixel errors from hiding bottom border (opposite tab labels) */\n }\n .dj_ie6 .dijitTabContainer {\n /* workaround IE6 problem when tall content overflows TabContainer, see editor/test_FullScreen.html */\n overflow: hidden;\n }\n .dijitTabContainerNoLayout {\n width: 100%; /* otherwise ScrollingTabController goes to 50K pixels wide */\n }\n\n .dijitTabContainerBottom-tabs,\n .dijitTabContainerTop-tabs,\n .dijitTabContainerLeft-tabs,\n .dijitTabContainerRight-tabs {\n z-index: 1;\n overflow: visible !important; /* so tabs can cover up border adjacent to container */\n }\n\n .dijitTabController {\n z-index: 1;\n }\n .dijitTabContainerBottom-container,\n .dijitTabContainerTop-container,\n .dijitTabContainerLeft-container,\n .dijitTabContainerRight-container {\n z-index: 0;\n overflow: hidden;\n border: 1px solid black;\n }\n .nowrapTabStrip {\n width: 50000px;\n display: block;\n position: relative;\n text-align: left; /* just in case ancestor has non-standard setting */\n z-index: 1;\n }\n .dijitTabListWrapper {\n overflow: hidden;\n z-index: 1;\n }\n\n .dj_a11y .tabStripButton img {\n /* hide the icons (or rather the empty space where they normally appear) because text will appear instead */\n display: none;\n }\n\n .dijitTabContainerTop-tabs {\n border-bottom: 1px solid black;\n }\n .dijitTabContainerTop-container {\n border-top: 0;\n }\n\n .dijitTabContainerLeft-tabs {\n border-right: 1px solid black;\n float: left; /* needed for IE7 RTL mode */\n }\n .dijitTabContainerLeft-container {\n border-left: 0;\n }\n\n .dijitTabContainerBottom-tabs {\n border-top: 1px solid black;\n }\n .dijitTabContainerBottom-container {\n border-bottom: 0;\n }\n\n .dijitTabContainerRight-tabs {\n border-left: 1px solid black;\n float: left; /* needed for IE7 RTL mode */\n }\n .dijitTabContainerRight-container {\n border-right: 0;\n }\n\n div.dijitTabDisabled,\n .dj_ie div.dijitTabDisabled {\n cursor: auto;\n }\n\n .dijitTab {\n position: relative;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n white-space: nowrap;\n z-index: 3;\n }\n .dijitTab * {\n /* make tab icons and close icon line up w/text */\n vertical-align: middle;\n }\n .dijitTabChecked {\n cursor: default; /* because clicking will have no effect */\n }\n\n .dijitTabContainerTop-tabs .dijitTab {\n top: 1px; /* to overlap border on .dijitTabContainerTop-tabs */\n }\n .dijitTabContainerBottom-tabs .dijitTab {\n top: -1px; /* to overlap border on .dijitTabContainerBottom-tabs */\n }\n .dijitTabContainerLeft-tabs .dijitTab {\n left: 1px; /* to overlap border on .dijitTabContainerLeft-tabs */\n }\n .dijitTabContainerRight-tabs .dijitTab {\n left: -1px; /* to overlap border on .dijitTabContainerRight-tabs */\n }\n\n .dijitTabContainerTop-tabs .dijitTab,\n .dijitTabContainerBottom-tabs .dijitTab {\n /* Inline-block */\n display: inline-block; /* webkit and FF3 */\n }\n\n .tabStripButton {\n z-index: 12;\n }\n\n .dijitTabButtonDisabled .tabStripButton {\n display: none;\n }\n\n .dijitTabCloseButton {\n margin-left: 1em;\n }\n\n .dijitTabCloseText {\n display: none;\n }\n\n .dijitTab .tabLabel {\n /* make sure tabs w/close button and w/out close button are same height, even w/small (<15px) font.\n\t * assumes <=15px height for close button icon.\n\t */\n min-height: 15px;\n display: inline-block;\n }\n .dijitNoIcon {\n /* applied to / node when there is no icon specified */\n display: none;\n }\n .dj_ie6 .dijitTab .dijitNoIcon {\n /* because min-height (on .tabLabel, above) doesn't work on IE6 */\n display: inline;\n height: 15px;\n width: 1px;\n }\n\n /* images off, high-contrast mode styles */\n\n .dj_a11y .dijitTabCloseButton {\n background-image: none !important;\n width: auto !important;\n height: auto !important;\n }\n\n .dj_a11y .dijitTabCloseText {\n display: inline;\n }\n\n .dijitTabPane,\n .dijitStackContainer-child,\n .dijitAccordionContainer-child {\n /* children of TabContainer, StackContainer, and AccordionContainer shouldn't have borders\n\t * b/c a border is already there from the TabContainer/StackContainer/AccordionContainer itself.\n\t */\n border: none !important;\n }\n\n /* InlineEditBox */\n .dijitInlineEditBoxDisplayMode {\n border: 1px solid transparent; /* so keyline (border) on hover can appear without screen jump */\n cursor: text;\n }\n\n .dj_a11y .dijitInlineEditBoxDisplayMode,\n .dj_ie6 .dijitInlineEditBoxDisplayMode {\n /* except that IE6 doesn't support transparent borders, nor does high contrast mode */\n border: none;\n }\n\n .dijitInlineEditBoxDisplayModeHover,\n .dj_a11y .dijitInlineEditBoxDisplayModeHover,\n .dj_ie6 .dijitInlineEditBoxDisplayModeHover {\n /* An InlineEditBox in view mode (click this to edit the text) */\n background-color: #e2ebf2;\n border: solid 1px black;\n }\n\n .dijitInlineEditBoxDisplayModeDisabled {\n cursor: default;\n }\n\n /* Tree */\n .dijitTree {\n overflow: auto; /* for scrollbars when Tree has a height setting, and to prevent wrapping around float elements, see #11491 */\n -webkit-tap-highlight-color: transparent;\n }\n\n .dijitTreeContainer {\n float: left; /* for correct highlighting during horizontal scroll, see #16132 */\n }\n\n .dijitTreeIndent {\n /* amount to indent each tree node (relative to parent node) */\n width: 19px;\n }\n\n .dijitTreeRow,\n .dijitTreeContent {\n white-space: nowrap;\n }\n\n .dj_ie .dijitTreeLabel:focus {\n /* workaround IE9 behavior where down arrowing through TreeNodes doesn't show focus outline */\n outline: 1px dotted black;\n }\n\n .dijitTreeRow img {\n /* make the expando and folder icons line up with the label */\n vertical-align: middle;\n }\n\n .dijitTreeContent {\n cursor: default;\n }\n\n .dijitExpandoText {\n display: none;\n }\n\n .dj_a11y .dijitExpandoText {\n display: inline;\n padding-left: 10px;\n padding-right: 10px;\n font-family: monospace;\n border-style: solid;\n border-width: thin;\n cursor: pointer;\n }\n\n .dijitTreeLabel {\n margin: 0 4px;\n }\n\n /* Dialog */\n\n .dijitDialog {\n position: absolute;\n z-index: 999;\n overflow: hidden; /* override overflow: auto; from ContentPane to make dragging smoother */\n }\n\n .dijitDialogTitleBar {\n cursor: move;\n }\n .dijitDialogFixed .dijitDialogTitleBar {\n cursor: default;\n }\n .dijitDialogCloseIcon {\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n }\n .dijitDialogPaneContent {\n -webkit-overflow-scrolling: touch;\n }\n .dijitDialogUnderlayWrapper {\n position: absolute;\n left: 0;\n top: 0;\n z-index: 998;\n display: none;\n background: transparent !important;\n }\n\n .dijitDialogUnderlay {\n background: #eee;\n opacity: 0.5;\n }\n\n .dj_ie .dijitDialogUnderlay {\n filter: alpha(opacity=50);\n }\n\n /* images off, high-contrast mode styles */\n .dj_a11y .dijitSpinnerButtonContainer,\n .dj_a11y .dijitDialog {\n opacity: 1 !important;\n background-color: white !important;\n }\n\n .dijitDialog .closeText {\n display: none;\n /* for the onhover border in high contrast on IE: */\n position: absolute;\n }\n\n .dj_a11y .dijitDialog .closeText {\n display: inline;\n }\n\n /* Slider */\n\n .dijitSliderMoveable {\n z-index: 99;\n position: absolute !important;\n display: block;\n vertical-align: middle;\n }\n\n .dijitSliderMoveableH {\n right: 0;\n }\n .dijitSliderMoveableV {\n right: 50%;\n }\n\n .dj_a11y div.dijitSliderImageHandle,\n .dijitSliderImageHandle {\n margin: 0;\n padding: 0;\n position: relative !important;\n border: 8px solid gray;\n width: 0;\n height: 0;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n }\n .dj_iequirks .dj_a11y .dijitSliderImageHandle {\n font-size: 0;\n }\n .dj_ie7 .dijitSliderImageHandle {\n overflow: hidden; /* IE7 workaround to make slider handle VISIBLE in non-a11y mode */\n }\n .dj_ie7 .dj_a11y .dijitSliderImageHandle {\n overflow: visible; /* IE7 workaround to make slider handle VISIBLE in a11y mode */\n }\n .dj_a11y .dijitSliderFocused .dijitSliderImageHandle {\n border: 4px solid #000;\n height: 8px;\n width: 8px;\n }\n\n .dijitSliderImageHandleV {\n top: -8px;\n right: -50%;\n }\n\n .dijitSliderImageHandleH {\n left: 50%;\n top: -5px;\n vertical-align: top;\n }\n\n .dijitSliderBar {\n border-style: solid;\n border-color: black;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n }\n\n .dijitSliderBarContainerV {\n position: relative;\n height: 100%;\n z-index: 1;\n }\n\n .dijitSliderBarContainerH {\n position: relative;\n z-index: 1;\n }\n\n .dijitSliderBarH {\n height: 4px;\n border-width: 1px 0;\n }\n\n .dijitSliderBarV {\n width: 4px;\n border-width: 0 1px;\n }\n\n .dijitSliderProgressBar {\n background-color: red;\n z-index: 1;\n }\n\n .dijitSliderProgressBarV {\n position: static !important;\n height: 0;\n vertical-align: top;\n text-align: left;\n }\n\n .dijitSliderProgressBarH {\n position: absolute !important;\n width: 0;\n vertical-align: middle;\n overflow: visible;\n }\n\n .dijitSliderRemainingBar {\n overflow: hidden;\n background-color: transparent;\n z-index: 1;\n }\n\n .dijitSliderRemainingBarV {\n height: 100%;\n text-align: left;\n }\n\n .dijitSliderRemainingBarH {\n width: 100% !important;\n }\n\n /* the slider bumper is the space consumed by the slider handle when it hangs over an edge */\n .dijitSliderBumper {\n overflow: hidden;\n z-index: 1;\n }\n\n .dijitSliderBumperV {\n width: 4px;\n height: 8px;\n border-width: 0 1px;\n }\n\n .dijitSliderBumperH {\n width: 8px;\n height: 4px;\n border-width: 1px 0;\n }\n\n .dijitSliderBottomBumper,\n .dijitSliderLeftBumper {\n background-color: red;\n }\n\n .dijitSliderTopBumper,\n .dijitSliderRightBumper {\n background-color: transparent;\n }\n\n .dijitSliderDecoration {\n text-align: center;\n }\n\n .dijitSliderDecorationC,\n .dijitSliderDecorationV {\n position: relative; /* needed for IE+quirks+RTL+vertical (rendering bug) but add everywhere for custom styling consistency but this messes up IE horizontal sliders */\n }\n\n .dijitSliderDecorationH {\n width: 100%;\n }\n\n .dijitSliderDecorationV {\n height: 100%;\n white-space: nowrap;\n }\n\n .dijitSliderButton {\n font-family: monospace;\n margin: 0;\n padding: 0;\n display: block;\n }\n\n .dj_a11y .dijitSliderButtonInner {\n visibility: visible !important;\n }\n\n .dijitSliderButtonContainer {\n text-align: center;\n height: 0; /* ??? */\n }\n .dijitSliderButtonContainer * {\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n }\n\n .dijitSlider .dijitButtonNode {\n padding: 0;\n display: block;\n }\n\n .dijitRuleContainer {\n position: relative;\n overflow: visible;\n }\n\n .dijitRuleContainerV {\n height: 100%;\n line-height: 0;\n float: left;\n text-align: left;\n }\n\n .dj_opera .dijitRuleContainerV {\n line-height: 2%;\n }\n\n .dj_ie .dijitRuleContainerV {\n line-height: normal;\n }\n\n .dj_gecko .dijitRuleContainerV {\n margin: 0 0 1px 0; /* mozilla bug workaround for float:left,height:100% block elements */\n }\n\n .dijitRuleMark {\n position: absolute;\n border: 1px solid black;\n line-height: 0;\n height: 100%;\n }\n\n .dijitRuleMarkH {\n width: 0;\n border-top-width: 0 !important;\n border-bottom-width: 0 !important;\n border-left-width: 0 !important;\n }\n\n .dijitRuleLabelContainer {\n position: absolute;\n }\n\n .dijitRuleLabelContainerH {\n text-align: center;\n display: inline-block;\n }\n\n .dijitRuleLabelH {\n position: relative;\n left: -50%;\n }\n\n .dijitRuleLabelV {\n /* so that long labels don't overflow to multiple rows, or overwrite slider itself */\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n }\n\n .dijitRuleMarkV {\n height: 0;\n border-right-width: 0 !important;\n border-bottom-width: 0 !important;\n border-left-width: 0 !important;\n width: 100%;\n left: 0;\n }\n\n .dj_ie .dijitRuleLabelContainerV {\n margin-top: -0.55em;\n }\n\n .dj_a11y .dijitSliderReadOnly,\n .dj_a11y .dijitSliderDisabled {\n opacity: 0.6;\n }\n .dj_ie .dj_a11y .dijitSliderReadOnly .dijitSliderBar,\n .dj_ie .dj_a11y .dijitSliderDisabled .dijitSliderBar {\n filter: alpha(opacity=40);\n }\n\n /* + and - Slider buttons: override theme settings to display icons */\n .dj_a11y .dijitSlider .dijitSliderButtonContainer div {\n font-family: monospace; /* otherwise hyphen is larger and more vertically centered */\n font-size: 1em;\n line-height: 1em;\n height: auto;\n width: auto;\n margin: 0 4px;\n }\n\n /* Icon-only buttons (often in toolbars) still display the text in high-contrast mode */\n .dj_a11y .dijitButtonContents .dijitButtonText,\n .dj_a11y .dijitTab .tabLabel {\n display: inline !important;\n }\n .dj_a11y .dijitSelect .dijitButtonText {\n display: inline-block !important;\n }\n\n /* TextArea, SimpleTextArea */\n .dijitTextArea {\n width: 100%;\n overflow-y: auto; /* w/out this IE's SimpleTextArea goes to overflow: scroll */\n }\n .dijitTextArea[cols] {\n width: auto; /* SimpleTextArea cols */\n }\n .dj_ie .dijitTextAreaCols {\n width: auto;\n }\n\n .dijitExpandingTextArea {\n /* for auto exanding textarea (called Textarea currently, rename for 2.0) don't want to display the grip to resize */\n resize: none;\n }\n\n /* Toolbar\n * Note that other toolbar rules (for objects in toolbars) are scattered throughout this file.\n */\n\n .dijitToolbarSeparator {\n height: 18px;\n width: 5px;\n padding: 0 1px;\n margin: 0;\n }\n\n /* Editor */\n .dijitIEFixedToolbar {\n position: absolute;\n /* top:0; */\n top: expression(eval((document.documentElement||document.body) .scrollTop));\n }\n\n .dijitEditor {\n display: block; /* prevents glitch on FF with InlineEditBox, see #8404 */\n }\n\n .dijitEditorDisabled,\n .dijitEditorReadOnly {\n color: gray;\n }\n\n /* TimePicker */\n\n .dijitTimePicker {\n background-color: white;\n }\n .dijitTimePickerItem {\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n }\n .dijitTimePickerItemHover {\n background-color: gray;\n color: white;\n }\n .dijitTimePickerItemSelected {\n font-weight: bold;\n color: #333;\n background-color: #b7cdee;\n }\n .dijitTimePickerItemDisabled {\n color: gray;\n text-decoration: line-through;\n }\n\n .dijitTimePickerItemInner {\n text-align: center;\n border: 0;\n padding: 2px 8px 2px 8px;\n }\n\n .dijitTimePickerTick,\n .dijitTimePickerMarker {\n border-bottom: 1px solid gray;\n }\n\n .dijitTimePicker .dijitDownArrowButton {\n border-top: none !important;\n }\n\n .dijitTimePickerTick {\n color: #ccc;\n }\n\n .dijitTimePickerMarker {\n color: black;\n background-color: #ccc;\n }\n\n .dj_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner {\n border: solid 4px black;\n }\n .dj_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner {\n border: dashed 4px black;\n }\n\n .dijitToggleButtonIconChar {\n /* character (instead of icon) to show that ToggleButton is checked */\n display: none !important;\n }\n .dj_a11y .dijitToggleButton .dijitToggleButtonIconChar {\n display: inline !important;\n visibility: hidden;\n }\n .dj_ie6 .dijitToggleButtonIconChar,\n .dj_ie6 .tabStripButton .dijitButtonText {\n font-family: \"Arial Unicode MS\"; /* otherwise the a11y character (checkmark, arrow, etc.) appears as a box */\n }\n .dj_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar {\n display: inline !important; /* In high contrast mode, display the check symbol */\n visibility: visible !important;\n }\n\n .dijitArrowButtonChar {\n display: none !important;\n }\n .dj_a11y .dijitArrowButtonChar {\n display: inline !important;\n }\n\n .dj_a11y .dijitDropDownButton .dijitArrowButtonInner,\n .dj_a11y .dijitComboButton .dijitArrowButtonInner {\n display: none !important;\n }\n\n /* Select */\n .dj_a11y .dijitSelect {\n border-collapse: separate !important;\n border-width: 1px;\n border-style: solid;\n }\n .dj_ie .dijitSelect {\n vertical-align: middle; /* Set this back for what we hack in dijit inline */\n }\n .dj_ie6 .dijitSelect .dijitValidationContainer,\n .dj_ie8 .dijitSelect .dijitButtonText {\n vertical-align: top;\n }\n .dj_ie6 .dijitTextBox .dijitInputContainer,\n .dj_iequirks .dijitTextBox .dijitInputContainer,\n .dj_ie6 .dijitTextBox .dijitArrowButtonInner,\n .dj_ie6 .dijitSpinner .dijitSpinnerButtonInner,\n .dijitSelect .dijitSelectLabel {\n vertical-align: baseline;\n }\n\n .dijitNumberTextBox {\n text-align: left;\n direction: ltr;\n }\n\n .dijitNumberTextBox .dijitInputInner {\n text-align: inherit; /* input */\n }\n\n .dijitNumberTextBox input.dijitInputInner,\n .dijitCurrencyTextBox input.dijitInputInner,\n .dijitSpinner input.dijitInputInner {\n text-align: right;\n }\n\n .dj_ie8 .dijitNumberTextBox input.dijitInputInner,\n .dj_ie9 .dijitNumberTextBox input.dijitInputInner,\n .dj_ie8 .dijitCurrencyTextBox input.dijitInputInner,\n .dj_ie9 .dijitCurrencyTextBox input.dijitInputInner,\n .dj_ie8 .dijitSpinner input.dijitInputInner,\n .dj_ie9 .dijitSpinner input.dijitInputInner {\n /* workaround bug where caret invisible in empty textboxes */\n padding-right: 1px !important;\n }\n\n .dijitToolbar .dijitSelect {\n margin: 0;\n }\n .dj_webkit .dijitToolbar .dijitSelect {\n padding-left: 0.3em;\n }\n .dijitSelect .dijitButtonContents {\n padding: 0;\n white-space: nowrap;\n text-align: left;\n border-style: none solid none none;\n border-width: 1px;\n }\n .dijitSelectFixedWidth .dijitButtonContents {\n width: 100%;\n }\n\n .dijitSelectMenu .dijitMenuItemIcon {\n /* avoid blank area in left side of menu (since we have no icons) */\n display: none;\n }\n .dj_ie6 .dijitSelectMenu .dijitMenuItemLabel,\n .dj_ie7 .dijitSelectMenu .dijitMenuItemLabel {\n /* Set back to static due to bug in ie6/ie7 - See Bug #9651 */\n position: static;\n }\n\n /* Fix the baseline of our label (for multi-size font elements) */\n .dijitSelectLabel * {\n vertical-align: baseline;\n }\n\n /* Styling for the currently-selected option (rich text can mess this up) */\n .dijitSelectSelectedOption * {\n font-weight: bold;\n }\n\n /* Fix the styling of the dropdown menu to be more combobox-like */\n .dijitSelectMenu {\n border-width: 1px;\n }\n\n /* Used in cases, such as FullScreen plugin, when we need to force stuff to static positioning. */\n .dijitForceStatic {\n position: static !important;\n }\n\n /**** Disabled cursor *****/\n .dijitReadOnly *,\n .dijitDisabled *,\n .dijitReadOnly,\n .dijitDisabled {\n /* a region the user would be able to click on, but it's disabled */\n cursor: default;\n }\n\n /* Drag and Drop */\n .dojoDndItem {\n padding: 2px; /* will be replaced by border during drag over (dojoDndItemBefore, dojoDndItemAfter) */\n\n /* Prevent magnifying-glass text selection icon to appear on mobile webkit as it causes a touchout event */\n -webkit-touch-callout: none;\n -webkit-user-select: none; /* Disable selection/Copy of UIWebView */\n }\n .dojoDndHorizontal .dojoDndItem {\n /* make contents of horizontal container be side by side, rather than vertical */\n display: inline-block;\n }\n\n .dojoDndItemBefore,\n .dojoDndItemAfter {\n border: 0px solid #369;\n }\n .dojoDndItemBefore {\n border-width: 2px 0 0 0;\n padding: 0 2px 2px 2px;\n }\n .dojoDndItemAfter {\n border-width: 0 0 2px 0;\n padding: 2px 2px 0 2px;\n }\n .dojoDndHorizontal .dojoDndItemBefore {\n border-width: 0 0 0 2px;\n padding: 2px 2px 2px 0;\n }\n .dojoDndHorizontal .dojoDndItemAfter {\n border-width: 0 2px 0 0;\n padding: 2px 0 2px 2px;\n }\n\n .dojoDndItemOver {\n cursor: pointer;\n }\n .dj_gecko .dijitArrowButtonInner input,\n .dj_gecko input.dijitArrowButtonInner {\n -moz-user-focus: ignore;\n }\n .dijitFocused .dijitMenuItemShortcutKey {\n text-decoration: underline;\n }\n\n /* Dijit custom styling */\n .dijitBorderContainer {\n height: 350px;\n }\n .dijitTooltipContainer {\n background: #fff;\n border: 1px solid #ccc;\n border-radius: 6px;\n }\n .dijitContentPane {\n box-sizing: content-box;\n overflow: auto !important;\n /* Widgets like the data grid pass their scroll\n offset to the parent if there is not enough room to display a scroll bar\n in the widget itself, so do not hide the overflow. */\n }\n\n /* Global Bootstrap changes */\n\n /* Client defaults and helpers */\n .mx-dataview-content,\n .mx-scrollcontainer-wrapper:not(.mx-scrollcontainer-nested),\n .mx-tabcontainer-content,\n .mx-grid-content {\n -webkit-overflow-scrolling: touch;\n }\n html,\n body,\n #content {\n height: 100%;\n }\n #content > .mx-page {\n width: 100%;\n min-height: 100%;\n }\n\n .mx-left-aligned {\n text-align: left;\n }\n .mx-right-aligned {\n text-align: right;\n }\n .mx-center-aligned {\n text-align: center;\n }\n\n .mx-table {\n width: 100%;\n }\n .mx-table th,\n .mx-table td {\n padding: 8px;\n vertical-align: top;\n }\n .mx-table th.nopadding,\n .mx-table td.nopadding {\n padding: 0;\n }\n\n .mx-offscreen {\n /* When position relative is not set IE doesn't properly render when this class is removed\n * with the effect that elements are not displayed or are not clickable.\n */\n position: relative;\n height: 0;\n overflow: hidden;\n }\n\n .mx-ie-event-shield {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: -1;\n }\n\n .mx-swipe-navigation-progress {\n position: absolute;\n height: 54px;\n width: 54px;\n top: calc(50% - 27px);\n left: calc(50% - 27px);\n background: url(data:image/gif;base64,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);\n }\n\n /* Bacause we use checkboxes without labels, align them with other widgets. */\n input[type=\"checkbox\"] {\n margin: 9px 0;\n }\n\n .mx-checkbox input[type=\"checkbox\"] {\n margin-left: 0;\n margin-right: 8px;\n position: static;\n }\n\n .form-vertical .form-group.mx-checkbox input[type=\"checkbox\"] {\n display: block;\n }\n\n .form-vertical .form-group.mx-checkbox.label-after input[type=\"checkbox\"] {\n display: inline-block;\n }\n\n .form-horizontal .form-group.no-columns {\n padding-left: 15px;\n padding-right: 15px;\n }\n\n .mx-radiobuttons.inline .radio {\n display: inline-block;\n margin-right: 20px;\n }\n\n .mx-radiobuttons .radio input[type=\"radio\"] {\n /* Reset bootstrap rules */\n position: static;\n margin-right: 8px;\n margin-left: 0;\n }\n\n .mx-radiobuttons .radio label {\n /* Reset bootstrap rules */\n padding-left: 0;\n }\n\n .alert {\n margin-top: 8px;\n margin-bottom: 10px;\n white-space: pre-line;\n }\n\n //.mx-compound-control {\n // display: flex;\n //}\n\n //.mx-compound-control button {\n // margin-left: 5px;\n //}\n //\n //[dir=\"rtl\"] .mx-compound-control button {\n // margin-left: 0;\n // margin-right: 5px;\n //}\n\n .mx-tooltip {\n margin: 10px;\n }\n .mx-tooltip-content {\n width: 400px;\n overflow-y: auto;\n }\n .mx-tooltip-prepare {\n height: 24px;\n padding: 8px;\n background: transparent\n url(data:image/gif;base64,R0lGODlhGAAYAMQdAKXZ8nfF64TL7QuX3Fe45zaq4hOb3fL6/fr9/rri9dXt+ZrU8Cym4Umy5cHl9uPz+2K86Oj1/Nzw+rDd9M3q+JDQ72rA6iOi3+34/ECu48jo9x2f3gWV2////wAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RUJFNkU4NEZCNEVDMTFFODk3MDBBNUU1RUM4Qjg3QTUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RUJFNkU4NTBCNEVDMTFFODk3MDBBNUU1RUM4Qjg3QTUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFQkU2RTg0REI0RUMxMUU4OTcwMEE1RTVFQzhCODdBNSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFQkU2RTg0RUI0RUMxMUU4OTcwMEE1RTVFQzhCODdBNSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6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)\n no-repeat scroll center center;\n }\n .mx-tooltip-content .table th,\n .mx-tooltip-content .table td {\n padding: 2px 8px;\n }\n\n .mx-tabcontainer-pane {\n height: 100%;\n }\n .mx-tabcontainer-content.loading {\n min-height: 48px;\n background: url(data:image/gif;base64,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)\n no-repeat center center;\n background-size: 32px 32px;\n }\n .mx-tabcontainer-tabs {\n margin-bottom: 8px;\n }\n .mx-tabcontainer-tabs li {\n position: relative;\n }\n .mx-tabcontainer-indicator {\n position: absolute;\n background: #f2dede;\n border-radius: 8px;\n color: #b94a48;\n top: 0px;\n right: -5px;\n width: 16px;\n height: 16px;\n line-height: 16px;\n text-align: center;\n vertical-align: middle;\n font-size: 10px;\n font-weight: 600;\n z-index: 1; /* indicator should not hide behind other tab */\n }\n\n /* base structure */\n .mx-grid {\n padding: 8px;\n overflow: hidden; /* to prevent any margin from escaping grid and foobaring our size calculations */\n }\n .mx-grid-controlbar,\n .mx-grid-searchbar {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n .mx-grid-controlbar .mx-button,\n .mx-grid-search-controls .mx-button {\n margin-bottom: 8px;\n }\n\n .mx-grid-search-controls .mx-button + .mx-button,\n .mx-grid-controlbar .mx-button + .mx-button {\n margin-left: 0.3em;\n }\n\n [dir=\"rtl\"] .mx-grid-search-controls .mx-button + .mx-button,\n [dir=\"rtl\"] .mx-grid-controlbar .mx-button + .mx-button {\n margin-left: 0;\n margin-right: 0.3em;\n }\n\n .mx-grid-pagingbar,\n .mx-grid-search-controls {\n display: flex;\n white-space: nowrap;\n align-items: baseline;\n margin-left: auto;\n }\n\n .mx-grid-toolbar,\n .mx-grid-search-inputs {\n margin-right: 5px;\n flex: 1;\n }\n\n [dir=\"rtl\"] .mx-grid-toolbar,\n [dir=\"rtl\"] .mx-grid-search-inputs {\n margin-left: 5px;\n margin-right: 0px;\n }\n [dir=\"rtl\"] .mx-grid-pagingbar,\n [dir=\"rtl\"] .mx-grid-search-controls {\n margin-left: 0px;\n margin-right: auto;\n }\n\n .mx-grid-paging-status {\n padding: 0 8px 5px;\n }\n\n /* search fields */\n .mx-grid-search-item {\n display: inline-block;\n vertical-align: top;\n margin-bottom: 8px;\n }\n .mx-grid-search-label {\n width: 110px;\n padding: 0 5px;\n text-align: right;\n display: inline-block;\n vertical-align: top;\n overflow: hidden;\n }\n [dir=\"rtl\"] .mx-grid-search-label {\n text-align: left;\n }\n .mx-grid-search-input {\n width: 150px;\n padding: 0 5px;\n display: inline-block;\n vertical-align: top;\n }\n .mx-grid-search-message {\n flex-basis: 100%;\n }\n\n /* widget combinations */\n .mx-dataview .mx-grid {\n border: 1px solid #ddd;\n border-radius: 3px;\n }\n\n .mx-calendar {\n z-index: 1000;\n }\n\n .mx-calendar-month-dropdown-options {\n position: absolute;\n }\n\n .mx-calendar,\n .mx-calendar-month-dropdown {\n user-select: none;\n }\n\n .mx-calendar-month-current {\n display: inline-block;\n }\n\n .mx-calendar-month-spacer {\n position: relative;\n height: 0px;\n overflow: hidden;\n visibility: hidden;\n }\n\n .mx-calendar,\n .mx-calendar-month-dropdown-options {\n border: 1px solid lightgrey;\n background-color: white;\n }\n\n .mx-datagrid tr {\n cursor: pointer;\n }\n\n .mx-datagrid tr.mx-datagrid-row-empty {\n cursor: default;\n }\n\n .mx-datagrid table {\n width: 100%;\n max-width: 100%;\n table-layout: fixed;\n margin-bottom: 0;\n }\n\n .mx-datagrid th,\n .mx-datagrid td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: bottom;\n border: 1px solid #ddd;\n }\n\n /* head */\n .mx-datagrid th {\n position: relative; /* Required for the positioning of the column resizers */\n border-bottom-width: 2px;\n }\n .mx-datagrid-head-caption {\n overflow: hidden;\n white-space: nowrap;\n }\n .mx-datagrid-sort-icon {\n float: right;\n padding-left: 5px;\n }\n [dir=\"rtl\"] .mx-datagrid-sort-icon {\n float: left;\n padding: 0 5px 0 0;\n }\n .mx-datagrid-column-resizer {\n position: absolute;\n top: 0;\n left: -6px;\n width: 10px;\n height: 100%;\n cursor: col-resize;\n }\n [dir=\"rtl\"] .mx-datagrid-column-resizer {\n left: auto;\n right: -6px;\n }\n\n /* body */\n .mx-datagrid tbody tr:first-child td {\n border-top: none;\n }\n //.mx-datagrid tbody tr:nth-child(2n+1) td {\n // background-color: #f9f9f9;\n //}\n .mx-datagrid tbody .selected td {\n background-color: #eee;\n }\n .mx-datagrid-data-wrapper {\n overflow: hidden;\n white-space: nowrap;\n }\n .mx-datagrid tbody img {\n max-width: 16px;\n max-height: 16px;\n }\n .mx-datagrid input,\n .mx-datagrid select,\n .mx-datagrid textarea {\n cursor: auto;\n }\n\n /* foot */\n .mx-datagrid tfoot th,\n .mx-datagrid tfoot td {\n padding: 3px 8px;\n }\n .mx-datagrid tfoot th {\n border-top: 1px solid #ddd;\n }\n .mx-datagrid.mx-content-loading .mx-content-loader {\n display: inline-block;\n width: 90%;\n animation: placeholderGradient 1s linear infinite;\n border-radius: 4px;\n background: #f5f5f5;\n background: repeating-linear-gradient(to right, #f5f5f5 0%, #f5f5f5 5%, #f9f9f9 50%, #f5f5f5 95%, #f5f5f5 100%);\n background-size: 200px 100px;\n animation-fill-mode: both;\n }\n @keyframes placeholderGradient {\n 0% {\n background-position: 100px 0;\n }\n 100% {\n background-position: -100px 0;\n }\n }\n\n .mx-datagrid-table-resizing th,\n .mx-datagrid-table-resizing td {\n cursor: col-resize !important;\n }\n\n .mx-templategrid-content-wrapper {\n display: table;\n width: 100%;\n border-collapse: collapse;\n box-sizing: border-box;\n }\n .mx-templategrid-row {\n display: table-row;\n }\n .mx-templategrid-item {\n padding: 5px;\n display: table-cell;\n border: 1px solid #ddd;\n cursor: pointer;\n box-sizing: border-box;\n }\n .mx-templategrid-empty {\n display: table-cell;\n }\n .mx-templategrid-item.selected {\n background-color: #f5f5f5;\n }\n .mx-templategrid-item .mx-table th,\n .mx-templategrid-item .mx-table td {\n padding: 2px 8px;\n }\n\n .mx-scrollcontainer-horizontal {\n width: 100%;\n display: table;\n table-layout: fixed;\n }\n .mx-scrollcontainer-horizontal > div {\n display: table-cell;\n vertical-align: top;\n }\n //.mx-scrollcontainer-wrapper {\n // padding: 10px;\n //}\n .mx-scrollcontainer-nested {\n padding: 0;\n }\n .mx-scrollcontainer-fixed > .mx-scrollcontainer-middle > .mx-scrollcontainer-wrapper,\n .mx-scrollcontainer-fixed > .mx-scrollcontainer-left > .mx-scrollcontainer-wrapper,\n .mx-scrollcontainer-fixed > .mx-scrollcontainer-center > .mx-scrollcontainer-wrapper,\n .mx-scrollcontainer-fixed > .mx-scrollcontainer-right > .mx-scrollcontainer-wrapper {\n overflow: auto;\n }\n\n .mx-scrollcontainer-move-in {\n transition: left 250ms ease-out;\n }\n .mx-scrollcontainer-move-out {\n transition: left 250ms ease-in;\n }\n .mx-scrollcontainer-shrink .mx-scrollcontainer-toggleable {\n transition-property: width;\n }\n\n .mx-scrollcontainer-toggleable {\n background-color: #fff;\n }\n //.mx-scrollcontainer-slide > .mx-scrollcontainer-toggleable > .mx-scrollcontainer-wrapper {\n // position: relative;\n // z-index: 1;\n // background-color: inherit;\n //}\n .mx-scrollcontainer-push {\n position: relative;\n }\n .mx-scrollcontainer-shrink > .mx-scrollcontainer-toggleable {\n overflow: hidden;\n }\n .mx-scrollcontainer-push.mx-scrollcontainer-open > div,\n .mx-scrollcontainer-slide.mx-scrollcontainer-open > div {\n pointer-events: none;\n }\n .mx-scrollcontainer-push.mx-scrollcontainer-open > .mx-scrollcontainer-toggleable,\n .mx-scrollcontainer-slide.mx-scrollcontainer-open > .mx-scrollcontainer-toggleable {\n pointer-events: auto;\n }\n\n .mx-navbar-item img,\n .mx-navbar-subitem img {\n height: 16px;\n }\n\n .mx-navigationtree .navbar-inner {\n padding-left: 0;\n padding-right: 0;\n }\n .mx-navigationtree ul {\n list-style: none;\n }\n //.mx-navigationtree ul li {\n // border-bottom: 1px solid #dfe6ea;\n //}\n //.mx-navigationtree li:last-child {\n // border-style: none;\n //}\n .mx-navigationtree a {\n display: block;\n padding: 5px 10px;\n color: #777;\n text-shadow: 0 1px 0 #fff;\n text-decoration: none;\n }\n .mx-navigationtree a.active {\n color: #fff;\n text-shadow: none;\n background: #3498db;\n border-radius: 3px;\n }\n .mx-navigationtree .mx-navigationtree-collapsed ul {\n display: none;\n }\n .mx-navigationtree ul {\n margin: 0;\n padding: 0;\n }\n //.mx-navigationtree ul li {\n // padding: 5px 0;\n //}\n .mx-navigationtree ul li ul {\n padding: 0;\n margin-left: 10px;\n }\n .mx-navigationtree ul li ul li {\n margin-left: 8px;\n padding: 5px 0;\n }\n [dir=\"rtl\"] .mx-navigationtree ul li ul li {\n margin-left: auto;\n margin-right: 8px;\n }\n .mx-navigationtree ul li ul li ul li {\n font-size: 10px;\n padding-top: 3px;\n padding-bottom: 3px;\n }\n .mx-navigationtree ul li ul li ul li img {\n vertical-align: top;\n }\n\n .mx-link img,\n .mx-button img {\n height: 16px;\n }\n .mx-link {\n padding: 6px 12px;\n display: inline-block;\n cursor: pointer;\n }\n\n .mx-groupbox {\n margin-bottom: 10px;\n }\n .mx-groupbox-header {\n margin: 0;\n padding: 10px 15px;\n color: #eee;\n background: #333;\n font-size: inherit;\n line-height: inherit;\n border-radius: 4px 4px 0 0;\n }\n .mx-groupbox-collapsible > .mx-groupbox-header {\n cursor: pointer;\n }\n .mx-groupbox.collapsed > .mx-groupbox-header {\n border-radius: 4px;\n }\n .mx-groupbox-body {\n padding: 8px;\n border: 1px solid #ddd;\n border-radius: 4px;\n }\n .mx-groupbox.collapsed > .mx-groupbox-body {\n display: none;\n }\n .mx-groupbox-header + .mx-groupbox-body {\n border-top: none;\n border-radius: 0 0 4px 4px;\n }\n .mx-groupbox-collapse-icon {\n float: right;\n }\n [dir=\"rtl\"] .mx-groupbox-collapse-icon {\n float: left;\n }\n\n .mx-dataview {\n position: relative;\n }\n .mx-dataview-controls {\n padding: 19px 20px 12px;\n background-color: #f5f5f5;\n border-top: 1px solid #eee;\n }\n\n .mx-dataview-controls .mx-button {\n margin-bottom: 8px;\n }\n\n .mx-dataview-controls .mx-button + .mx-button {\n margin-left: 0.3em;\n }\n\n .mx-dataview-message {\n background: #fff;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n .mx-dataview-message > div {\n display: table;\n width: 100%;\n height: 100%;\n }\n .mx-dataview-message > div > p {\n display: table-cell;\n text-align: center;\n vertical-align: middle;\n }\n\n /* Top-level data view in window is a special case, handle it as such. */\n .mx-window-view .mx-window-body {\n padding: 0;\n }\n .mx-window-view .mx-window-body > .mx-dataview > .mx-dataview-content,\n .mx-window-view .mx-window-body > .mx-placeholder > .mx-dataview > .mx-dataview-content {\n padding: 15px;\n }\n .mx-window-view .mx-window-body > .mx-dataview > .mx-dataview-controls,\n .mx-window-view .mx-window-body > .mx-placeholder > .mx-dataview > .mx-dataview-controls {\n border-radius: 0px 0px 6px 6px;\n }\n\n .mx-dialog {\n position: fixed;\n left: auto;\n right: auto;\n padding: 0;\n width: 500px;\n /* If the margin is set to auto, IE9 reports the calculated value of the\n * margin as the actual value. Other browsers will just report 0. Eliminate\n * this difference by setting margin to 0 for every browser. */\n margin: 0;\n }\n .mx-dialog-header {\n cursor: move;\n }\n .mx-dialog-body {\n overflow: auto;\n }\n\n .mx-window {\n position: fixed;\n left: auto;\n right: auto;\n padding: 0;\n width: 600px;\n /* If the margin is set to auto, IE9 reports the calculated value of the\n * margin as the actual value. Other browsers will just report 0. Eliminate\n * this difference by setting margin to 0 for every browser. */\n margin: 0;\n }\n .mx-window-content {\n height: 100%;\n overflow: hidden;\n }\n .mx-window-active .mx-window-header {\n background-color: #f5f5f5;\n border-radius: 6px 6px 0 0;\n }\n .mx-window-header {\n cursor: move;\n }\n .mx-window-body {\n overflow: auto;\n }\n\n .mx-dropdown-list * {\n cursor: pointer;\n }\n .mx-dropdown-list img {\n width: 35px;\n vertical-align: middle;\n margin-right: 10px;\n }\n [dir=\"rtl\"] .mx-dropdown-list img {\n margin-left: 10px;\n margin-right: auto;\n }\n\n .mx-dropdown-list {\n padding: 0;\n list-style: none;\n }\n .mx-dropdown-list > li {\n padding: 5px 10px 10px;\n border: 1px #ddd;\n border-style: solid solid none;\n background-color: #fff;\n }\n .mx-dropdown-list > li:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n }\n .mx-dropdown-list > li:last-child {\n border-bottom-style: solid;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n }\n .mx-dropdown-list-striped > li:nth-child(2n + 1) {\n background: #f9f9f9;\n }\n .mx-dropdown-list > li:hover {\n background: #f5f5f5;\n }\n\n .mx-header {\n position: relative;\n padding: 9px;\n background: #333;\n text-align: center;\n }\n .mx-header-center {\n display: inline-block;\n color: #eee;\n line-height: 30px; /* height of buttons */\n }\n body[dir=\"ltr\"] .mx-header-left,\n body[dir=\"rtl\"] .mx-header-right {\n position: absolute;\n top: 9px;\n left: 9px;\n }\n body[dir=\"ltr\"] .mx-header-right,\n body[dir=\"rtl\"] .mx-header-left {\n position: absolute;\n top: 9px;\n right: 9px;\n }\n\n .mx-title {\n margin-bottom: 0px;\n margin-top: 0px;\n }\n\n .mx-listview {\n padding: 8px;\n }\n .mx-listview > ul {\n padding: 0px;\n list-style: none;\n }\n // .mx-listview > ul > li {\n // padding: 5px 10px 10px;\n // border: 1px #ddd;\n // border-style: solid solid none;\n // background-color: #fff;\n // outline: none;\n // }\n // .mx-listview > ul > li:first-child {\n // border-top-left-radius: 4px;\n // border-top-right-radius: 4px;\n // }\n // .mx-listview > ul > li:last-child {\n // border-bottom-style: solid;\n // border-bottom-left-radius: 4px;\n // border-bottom-right-radius: 4px;\n // }\n //.mx-listview li:nth-child(2n+1) {\n // background: #f9f9f9;\n //}\n //.mx-listview li:nth-child(2n+1):hover {\n // background: #f5f5f5;\n //}\n .mx-listview > ul > li.selected {\n // background: #eee;\n }\n .mx-listview-clickable > ul > li {\n cursor: pointer;\n }\n .mx-listview-empty {\n color: #999;\n text-align: center;\n }\n .mx-listview .mx-listview-loading {\n padding: 10px;\n line-height: 0;\n text-align: center;\n }\n .mx-listview-searchbar {\n display: flex;\n margin-bottom: 10px;\n }\n .mx-listview-searchbar > input {\n width: 100%;\n }\n .mx-listview-searchbar > button {\n margin-left: 5px;\n }\n [dir=\"rtl\"] .mx-listview-searchbar > button {\n margin-left: 0;\n margin-right: 5px;\n }\n .mx-listview-selection {\n display: table-cell;\n vertical-align: middle;\n padding: 0 15px 0 5px;\n }\n [dir=\"rtl\"] .mx-listview-selection {\n padding: 0 5px 0 15px;\n }\n .mx-listview-selectable .mx-listview-content {\n display: table-cell;\n vertical-align: middle;\n width: 100%;\n }\n .mx-listview .selected {\n background: #def;\n }\n .mx-listview .mx-table th,\n .mx-listview .mx-table td {\n padding: 2px;\n }\n\n .mx-login .form-control {\n margin-top: 10px;\n }\n\n .mx-menubar {\n padding: 8px;\n }\n .mx-menubar-icon {\n height: 16px;\n }\n .mx-menubar-more-icon {\n display: inline-block;\n width: 16px;\n height: 16px;\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKNJREFUeNpi/P//P8NgAUwMgwiMOmbUMaOOGXXMqGNGHTPYHMOCTfDs2bMeQKoOiI1BXCBuMjY23kFrdYzoTQigRm8gtQWLG0OBBqyhlTpc0dSOIxTraKwOq2PUcWhWp7E6rI65iUPzTRqrw+qYGhyam2isDtMxwES1CUgFAfFxqBCIDkJPbNRWhzU3jRZ6o44ZdcyoY0YdM+qYUccMUscABBgAUXpEjE/Bs/IAAAAASUVORK5CYII=)\n no-repeat center center;\n background-size: 16px 16px;\n vertical-align: middle;\n }\n\n .mx-navigationlist {\n padding: 8px;\n }\n .mx-navigationlist li:hover,\n .mx-navigationlist li:focus,\n .mx-navigationlist li.active {\n color: #fff;\n background-color: #3498db;\n }\n .mx-navigationlist * {\n cursor: pointer;\n }\n .mx-navigationlist .table th,\n .mx-navigationlist .table td {\n padding: 2px;\n }\n\n .mx-progress {\n position: fixed;\n top: 30%;\n left: 0;\n right: 0;\n margin: auto;\n width: 250px;\n max-width: 90%;\n background: #333;\n opacity: 0.8;\n z-index: 5000;\n border-radius: 4px;\n padding: 20px 15px;\n transition: opacity 0.4s ease-in-out;\n }\n .mx-progress-hidden {\n opacity: 0;\n }\n .mx-progress-message {\n color: #fff;\n text-align: center;\n margin-bottom: 15px;\n }\n .mx-progress-empty .mx-progress-message {\n display: none;\n }\n .mx-progress-indicator {\n width: 70px;\n height: 10px;\n margin: auto;\n background: url(data:image/gif;base64,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);\n }\n\n .mx-reload-notification {\n position: fixed;\n z-index: 1001;\n top: 0;\n width: 100%;\n padding: 1rem;\n\n border: 1px solid hsl(200, 96%, 41%);\n background-color: hsl(200, 96%, 44%);\n\n box-shadow: 0 5px 20px rgba(1, 37, 55, 0.16);\n color: white;\n\n text-align: center;\n font-size: 14px;\n }\n\n .mx-resizer-n,\n .mx-resizer-s {\n position: absolute;\n left: 0;\n width: 100%;\n height: 10px;\n }\n .mx-resizer-n {\n top: -5px;\n cursor: n-resize;\n }\n .mx-resizer-s {\n bottom: -5px;\n cursor: s-resize;\n }\n\n .mx-resizer-e,\n .mx-resizer-w {\n position: absolute;\n top: 0;\n width: 10px;\n height: 100%;\n }\n .mx-resizer-e {\n right: -5px;\n cursor: e-resize;\n }\n .mx-resizer-w {\n left: -5px;\n cursor: w-resize;\n }\n\n .mx-resizer-nw,\n .mx-resizer-ne,\n .mx-resizer-sw,\n .mx-resizer-se {\n position: absolute;\n width: 20px;\n height: 20px;\n }\n\n .mx-resizer-nw,\n .mx-resizer-ne {\n top: -5px;\n }\n .mx-resizer-sw,\n .mx-resizer-se {\n bottom: -5px;\n }\n .mx-resizer-nw,\n .mx-resizer-sw {\n left: -5px;\n }\n .mx-resizer-ne,\n .mx-resizer-se {\n right: -5px;\n }\n\n .mx-resizer-nw {\n cursor: nw-resize;\n }\n .mx-resizer-ne {\n cursor: ne-resize;\n }\n .mx-resizer-sw {\n cursor: sw-resize;\n }\n .mx-resizer-se {\n cursor: se-resize;\n }\n\n .mx-text {\n white-space: pre-line;\n }\n\n .mx-textarea textarea {\n resize: none;\n overflow-y: hidden;\n }\n .mx-textarea .mx-textarea-noresize {\n height: auto;\n resize: vertical;\n overflow-y: auto;\n }\n .mx-textarea .mx-textarea-counter {\n font-size: smaller;\n }\n .mx-textarea .form-control-static {\n white-space: pre-line;\n }\n\n .mx-underlay {\n position: fixed;\n top: 0;\n width: 100%;\n height: 100%;\n z-index: 1000;\n opacity: 0.5;\n background-color: #333;\n }\n\n .mx-imagezoom {\n position: absolute;\n display: table;\n width: 100%;\n height: 100%;\n background-color: #999;\n }\n .mx-imagezoom-wrapper {\n display: table-cell;\n text-align: center;\n vertical-align: middle;\n }\n .mx-imagezoom-image {\n max-width: none;\n }\n\n .mx-dropdown li {\n padding: 3px 20px;\n cursor: pointer;\n }\n .mx-dropdown label {\n padding: 0;\n color: #333;\n white-space: nowrap;\n cursor: pointer;\n }\n .mx-dropdown input {\n margin: 0;\n vertical-align: middle;\n cursor: pointer;\n }\n .mx-dropdown .selected {\n background: #f8f8f8;\n }\n //.mx-selectbox {\n // text-align: left;\n //}\n //.mx-selectbox-caret-wrapper {\n // float: right;\n // height: 100%;\n //}\n\n .mx-demouserswitcher {\n position: fixed;\n top: 0;\n right: 0;\n width: 360px;\n height: 100%;\n z-index: 20000;\n box-shadow: -1px 0 5px rgba(28, 59, 86, 0.2);\n }\n .mx-demouserswitcher-content {\n padding: 80px 40px 20px;\n height: 100%;\n color: #387ea2;\n font-size: 14px;\n overflow: auto;\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOgAAABgCAYAAAAXSj7NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0MzkwOTREMDQ2NEYxMUU0QTQ4MUI5NTNGMUQ3QzE5NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0MzkwOTREMTQ2NEYxMUU0QTQ4MUI5NTNGMUQ3QzE5NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0REMyMUZGNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0REMyMjAwNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+g1tRlwAAEFFJREFUeNrsnYl3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)\n top right no-repeat #1b3149;\n /* background-attachement local is not supported on IE8\n * when this is part of background the complete background is ignored */\n background-attachment: local;\n }\n .mx-demouserswitcher ul {\n padding: 0;\n margin-top: 25px;\n list-style-type: none;\n border-top: 1px solid #496076;\n }\n .mx-demouserswitcher a {\n display: block;\n padding: 10px 0;\n color: #387ea2;\n border-bottom: 1px solid #496076;\n }\n .mx-demouserswitcher h2 {\n margin: 20px 0 5px;\n color: #5bc4fe;\n font-size: 28px;\n }\n .mx-demouserswitcher h3 {\n margin: 0 0 2px;\n color: #5bc4fe;\n font-size: 18px;\n font-weight: normal;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n .mx-demouserswitcher .active h3 {\n color: #11efdb;\n }\n .mx-demouserswitcher p {\n margin-bottom: 0;\n }\n .mx-demouserswitcher-toggle {\n position: absolute;\n top: 25%;\n left: -35px;\n width: 35px;\n height: 38px;\n margin-top: -40px;\n cursor: pointer;\n border-top-left-radius: 3px;\n border-bottom-left-radius: 3px;\n box-shadow: -1px 0 5px rgba(28, 59, 86, 0.2);\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NERDMjFGRDQ2NEMxMUU0QTQ4MUI5NTNGMUQ3QzE5NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NERDMjFGRTQ2NEMxMUU0QTQ4MUI5NTNGMUQ3QzE5NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0REMyMUZCNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0REMyMUZDNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+1ZovNAAAAWdJREFUeNqM1M0rRFEYx/E7Y5qIQpOUbIiymQWysBgvJVJK2VgryZQtKSULZelPsB0LZaNZjJUNK1FskJqUvCS3NAsZc3zP9NziOOfeeepTc8/c8+vc8xZTSnmOakEGKdzgDBXXy54OMsSwjpL6W9cYsrxfZWvcUu7y0VdLUCc+VXgd2oLixpfOIOmF17TtHTOozYuupCxAaNB9DUEfeDUbE8bzEXxZerP00l8hh3LUiHTIMr6N9j2ksYoihv/1deyLSVzKKm1jEW+WfZV2Lf8gskjIcwcWpOM++pHCFPLosgWtoCyd7jCPOjzhGHHLyDPY1achaJhDxRj6rBwJXUuoN0IG8IIv7OiGBjxadvAITuT3rex6c0SbKASflnUcBT3JTThAjyWkGUVsBEEFR5CerzXpNIacrFIrJnCBB3muBvkhB1TP27hM/Lvx3zl6gxHqu6c74kiU8IxGjKJdLrrT3xfdjwADAJaMxP2bvD2BAAAAAElFTkSuQmCC)\n center center no-repeat #1b3149;\n }\n\n /* master details screen for mobile */\n .mx-master-detail-screen {\n top: 0;\n left: 0;\n overflow: auto;\n width: 100%;\n height: 100%;\n position: absolute;\n background-color: white;\n will-change: transform;\n }\n\n .mx-master-detail-screen .mx-master-detail-details {\n padding: 15px;\n }\n\n .mx-master-detail-screen-header {\n position: relative;\n overflow: auto;\n border-bottom: 1px solid #ccc;\n background-color: #f7f7f7;\n }\n\n .mx-master-detail-screen-header-caption {\n text-align: center;\n font-size: 17px;\n line-height: 24px;\n font-weight: 600;\n }\n\n .mx-master-detail-screen-header-close {\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n width: 50px;\n border: none;\n background: transparent;\n color: #007aff;\n }\n\n body[dir=\"rtl\"] .mx-master-detail-screen-header-close {\n right: 0;\n left: auto;\n }\n\n .mx-master-detail-screen-header-close::before {\n content: \"\\2039\";\n font-size: 52px;\n line-height: 24px;\n }\n\n /* classes for content page */\n .mx-master-detail-content-fix {\n height: 100vh;\n overflow: hidden;\n }\n\n .mx-master-detail-content-hidden {\n transform: translateX(-200%);\n }\n\n body[dir=\"rtl\"] .mx-master-detail-content-hidden {\n transform: translateX(200%);\n }\n .reportingReport {\n padding: 5px;\n border: 1px solid #ddd;\n border-radius: 3px;\n }\n\n .reportingReportParameter th {\n text-align: right;\n }\n\n .reportingDateRange table {\n width: 100%;\n table-layout: fixed;\n }\n .reportingDateRange th {\n padding: 5px;\n text-align: right;\n background-color: #eee;\n }\n .reportingDateRange td {\n padding: 5px;\n }\n\n .mx-reportmatrix table {\n width: 100%;\n max-width: 100%;\n table-layout: fixed;\n margin-bottom: 0;\n }\n\n .mx-reportmatrix th,\n .mx-reportmatrix td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: bottom;\n border: 1px solid #ddd;\n }\n\n .mx-reportmatrix tbody tr:first-child td {\n border-top: none;\n }\n\n .mx-reportmatrix tbody tr:nth-child(2n + 1) td {\n background-color: #f9f9f9;\n }\n\n .mx-reportmatrix tbody img {\n max-width: 16px;\n max-height: 16px;\n }\n\n @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n .dijitInline {\n zoom: 1; /* set hasLayout:true to mimic inline-block */\n display: inline; /* don't use .dj_ie since that increases the priority */\n vertical-align: auto; /* makes TextBox,Button line up w/native counterparts on IE6 */\n }\n\n .dj_ie6 .dijitComboBox .dijitInputContainer,\n .dijitInputContainer {\n zoom: 1;\n }\n\n .dijitRight {\n /* Right part of a 3-element border */\n display: inline; /* IE7 sizes to outer size w/o this */\n }\n\n .dijitButtonNode {\n vertical-align: auto;\n }\n\n .dijitTextBox {\n overflow: hidden; /* #6027, #6067 */\n }\n\n .dijitPlaceHolder {\n filter: \"\"; /* make this show up in IE6 after the rendering of the widget */\n }\n\n .dijitValidationTextBoxError input.dijitValidationInner,\n .dijitSelect input,\n .dijitTextBox input.dijitArrowButtonInner {\n text-indent: 0 !important;\n letter-spacing: -5em !important;\n text-align: right !important;\n }\n\n .dj_a11y input.dijitValidationInner,\n .dj_a11y input.dijitArrowButtonInner {\n text-align: left !important;\n }\n\n .dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton {\n bottom: 50%; /* otherwise (on some machines) top arrow icon too close to splitter border (IE6/7) */\n }\n\n .dijitTabContainerTop-tabs .dijitTab,\n .dijitTabContainerBottom-tabs .dijitTab {\n zoom: 1; /* set hasLayout:true to mimic inline-block */\n display: inline; /* don't use .dj_ie since that increases the priority */\n }\n\n .dojoDndHorizontal .dojoDndItem {\n /* make contents of horizontal container be side by side, rather than vertical */\n display: inline;\n }\n }\n}\n\n/* WARNING: IE9 limits nested imports to three levels deep: http://jorgealbaladejo.com/2011/05/28/internet-explorer-limits-nested-import-css-statements */\n\n/* dijit base */\n\n/* mendix base */\n\n/* widgets */\n\n/* reporting */\n\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9kb2pvL2Rpaml0L3RoZW1lcy9kaWppdC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS9iYXNlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL2Zvcm1zLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9Ub29sdGlwLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9UYWJDb250YWluZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L19HcmlkLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9DYWxlbmRhci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvRGF0YUdyaWQuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RlbXBsYXRlR3JpZC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvU2Nyb2xsQ29udGFpbmVyLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9OYXZiYXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L05hdmlnYXRpb25UcmVlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9CdXR0b24uY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0dyb3VwQm94LmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9EYXRhVmlldy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvRGlhbG9nLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9XaW5kb3cuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0Ryb3BEb3duLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9IZWFkZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RpdGxlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9MaXN0Vmlldy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvTG9naW5EaWFsb2cuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L01lbnVCYXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L05hdmlnYXRpb25MaXN0LmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9Qcm9ncmVzcy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvUmVsb2FkTm90aWZpY2F0aW9uLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9SZXNpemFibGUuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RleHQuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RleHRBcmVhLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9VbmRlcmxheS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvSW1hZ2Vab29tLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9TZWxlY3RCb3guY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0RlbW9Vc2VyU3dpdGNoZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L01hc3RlckRldGFpbC5jc3MiLCJ3ZWJwYWNrOi8vLy4vcmVwb3J0aW5nL3VpL3dpZGdldC9SZXBvcnQuY3NzIiwid2VicGFjazovLy8uL3JlcG9ydGluZy91aS93aWRnZXQvUmVwb3J0UGFyYW1ldGVyLmNzcyIsIndlYnBhY2s6Ly8vLi9yZXBvcnRpbmcvdWkvd2lkZ2V0L0RhdGVSYW5nZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vcmVwb3J0aW5nL3VpL3dpZGdldC9SZXBvcnRNYXRyaXguY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvbXh1aS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFJQTtBQUNBO0FBQ0E7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QUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkIsd0JBQXdCO0FBQ3hCLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHlDQUF5QztBQUN4RDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHdCQUF3QixvQkFBb0I7O0FBRTVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjs7QUFFQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQsMEJBQTBCO0FBQzFCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsYUFBYTtBQUNiLGFBQWEsd0RBQXdEO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esd0JBQXdCO0FBQ3hCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrQkFBa0I7QUFDbEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQjtBQUNoQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQztBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHFCQUFxQjtBQUNyQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpQkFBaUI7O0FBRWpCO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdnNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQzs7O0FDOUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUN6REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOztBQzdCQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JGQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQzFCQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDhCQUE4QjtBQUN0QyxVQUFVLCtCQUErQjtBQUN6Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUN0R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyREE7QUFDQTtBQUNBO0FBQ0E7OztBQ0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RCQTtBQUNBO0FBQ0E7QUFDQTs7QUNIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0VBO0FBQ0E7QUFDQTs7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0E7O0FDYkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DOztBQy9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JFQTtBQUNBO0FBQ0E7O0FDRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQzs7QUMvREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxDO0FDaEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ05BO0FBQ0E7QUFDQTs7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDekJBOztBQUVBOztBQUVBOztBQUVBOztBQUVBIiwiZmlsZSI6Im14dWkvdWkvbXh1aS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuXHRFc3NlbnRpYWwgc3R5bGVzIHRoYXQgdGhlbWVzIGNhbiBpbmhlcml0LlxuXHRJbiBvdGhlciB3b3Jkcywgd29ya3MgYnV0IGRvZXNuJ3QgbG9vayBncmVhdC5cbiovXG5cblxuXG4vKioqKlxuXHRcdEdFTkVSSUMgUElFQ0VTXG4gKioqKi9cblxuLmRpaml0UmVzZXQge1xuXHQvKiBVc2UgdGhpcyBzdHlsZSB0byBudWxsIG91dCBwYWRkaW5nLCBtYXJnaW4sIGJvcmRlciBpbiB5b3VyIHRlbXBsYXRlIGVsZW1lbnRzXG5cdFx0c28gdGhhdCBwYWdlIHNwZWNpZmljIHN0eWxlcyBkb24ndCBicmVhayB0aGVtLlxuXHRcdC0gVXNlIGluIGFsbCBUQUJMRSwgVFIgYW5kIFREIHRhZ3MuXG5cdCovXG5cdG1hcmdpbjowO1xuXHRib3JkZXI6MDtcblx0cGFkZGluZzowO1xuXHRmb250OiBpbmhlcml0O1xuXHRsaW5lLWhlaWdodDpub3JtYWw7XG5cdGNvbG9yOiBpbmhlcml0O1xufVxuLmRqX2ExMXkgLmRpaml0UmVzZXQge1xuXHQtbW96LWFwcGVhcmFuY2U6IG5vbmU7IC8qIHJlbW92ZSBwcmVkZWZpbmVkIGhpZ2gtY29udHJhc3Qgc3R5bGluZyBpbiBGaXJlZm94ICovXG59XG5cbi5kaWppdElubGluZSB7XG5cdC8qICBUbyBpbmxpbmUgYmxvY2sgZWxlbWVudHMuXG5cdFx0U2ltaWxhciB0byBJbmxpbmVCb3ggYmVsb3csIGJ1dCB0aGlzIGhhcyBmZXdlciBzaWRlLWVmZmVjdHMgaW4gTW96LlxuXHRcdEFsc28sIGFwcGFyZW50bHkgd29ya3Mgb24gYSBESVYgYXMgd2VsbCBhcyBhIEZJRUxEU0VULlxuXHQqL1xuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcdFx0XHQvKiB3ZWJraXQgYW5kIEZGMyAqL1xuXHQjem9vbTogMTsgLyogc2V0IGhhc0xheW91dDp0cnVlIHRvIG1pbWljIGlubGluZS1ibG9jayAqL1xuXHQjZGlzcGxheTppbmxpbmU7IC8qIGRvbid0IHVzZSAuZGpfaWUgc2luY2UgdGhhdCBpbmNyZWFzZXMgdGhlIHByaW9yaXR5ICovXG5cdGJvcmRlcjowO1xuXHRwYWRkaW5nOjA7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0I3ZlcnRpY2FsLWFsaWduOiBhdXRvO1x0LyogbWFrZXMgVGV4dEJveCxCdXR0b24gbGluZSB1cCB3L25hdGl2ZSBjb3VudGVycGFydHMgb24gSUU2ICovXG59XG5cbnRhYmxlLmRpaml0SW5saW5lIHtcblx0LyogVG8gaW5saW5lIHRhYmxlcyB3aXRoIGEgZ2l2ZW4gd2lkdGggc2V0ICovXG5cdGRpc3BsYXk6aW5saW5lLXRhYmxlO1xuXHRib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLmRpaml0SGlkZGVuIHtcblx0LyogVG8gaGlkZSB1bnNlbGVjdGVkIHBhbmVzIGluIFN0YWNrQ29udGFpbmVyIGV0Yy4gKi9cblx0cG9zaXRpb246IGFic29sdXRlOyAvKiByZW1vdmUgZnJvbSBub3JtYWwgZG9jdW1lbnQgZmxvdyB0byBzaW11bGF0ZSBkaXNwbGF5OiBub25lICovXG5cdHZpc2liaWxpdHk6IGhpZGRlbjsgLyogaGlkZSBlbGVtZW50IGZyb20gdmlldywgYnV0IGRvbid0IGJyZWFrIHNjcm9sbGluZywgc2VlICMxODYxMiAqL1xufVxuLmRpaml0SGlkZGVuICoge1xuXHR2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsgLyogaGlkZSB2aXNpYmlsaXR5OnZpc2libGUgZGVzY2VuZGFudHMgb2YgY2xhc3M9ZGlqaXRIaWRkZW4gbm9kZXMsIHNlZSAjMTg3OTkgKi9cbn1cblxuLmRpaml0VmlzaWJsZSB7XG5cdC8qIFRvIHNob3cgc2VsZWN0ZWQgcGFuZSBpbiBTdGFja0NvbnRhaW5lciBldGMuICovXG5cdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHQvKiBvdmVycmlkZSB1c2VyJ3MgZGlzcGxheTpub25lIHNldHRpbmcgdmlhIHN0eWxlIHNldHRpbmcgb3IgaW5kaXJlY3RseSB2aWEgY2xhc3MgKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1x0XHRcdC8qIHRvIHN1cHBvcnQgc2V0dGluZyB3aWR0aC9oZWlnaHQsIHNlZSAjMjAzMyAqL1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4uZGpfaWU2IC5kaWppdENvbWJvQm94IC5kaWppdElucHV0Q29udGFpbmVyLFxuLmRpaml0SW5wdXRDb250YWluZXIge1xuXHQvKiBmb3IgcG9zaXRpb25pbmcgb2YgcGxhY2VIb2xkZXIgKi9cblx0I3pvb206IDE7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGZsb2F0OiBub25lICFpbXBvcnRhbnQ7IC8qIG5lZWRlZCB0byBzcXVlZXplIHRoZSBJTlBVVCBpbiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZGpfaWU3IC5kaWppdElucHV0Q29udGFpbmVyIHtcblx0ZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsgLyogbmVlZGVkIGJ5IElFIHRvIHNxdWVlemUgdGhlIElOUFVUIGluICovXG5cdGNsZWFyOiBsZWZ0O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgLyogdG8gZml4IHdyb25nIHRleHQgYWxpZ25tZW50IGluIHRleHRkaXI9cnRsIHRleHQgYm94ICovXG59XG5cbi5kal9pZSAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWUgaW5wdXQuZGlqaXRUZXh0Qm94LFxuLmRqX2llIC5kaWppdFRleHRCb3ggaW5wdXQge1xuXHRmb250LXNpemU6IDEwMCU7XG59XG4uZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uVGV4dCB7XG5cdGZsb2F0OiBsZWZ0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuVEFCTEUuZGlqaXRTZWxlY3Qge1xuXHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IC8qIG1lc3NlcyB1cCBib3JkZXIgYWxpZ25tZW50ICovXG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7IC8qIHNvIGpzZmlkZGxlIHdvcmtzIHdpdGggTm9ybWFsaXplZCBDU1MgY2hlY2tlZCAqL1xufVxuLmRpaml0VGV4dEJveCAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyLFxuLmRpaml0VGV4dEJveCAuZGlqaXRBcnJvd0J1dHRvbkNvbnRhaW5lcixcbi5kaWppdFZhbGlkYXRpb25UZXh0Qm94IC5kaWppdFZhbGlkYXRpb25Db250YWluZXIge1xuXHRmbG9hdDogcmlnaHQ7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5kaWppdFNlbGVjdCBpbnB1dC5kaWppdElucHV0RmllbGQsXG4uZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRGaWVsZCB7XG5cdC8qIG92ZXJyaWRlIHVucmVhc29uYWJsZSB1c2VyIHN0eWxpbmcgb2YgYnV0dG9ucyBhbmQgaWNvbnMgKi9cblx0cGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cbi5kaWppdFZhbGlkYXRpb25UZXh0Qm94IC5kaWppdFZhbGlkYXRpb25Db250YWluZXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZGlqaXRUZWVueSB7XG5cdGZvbnQtc2l6ZToxcHg7XG5cdGxpbmUtaGVpZ2h0OjFweDtcbn1cblxuLmRpaml0T2ZmU2NyZWVuIHsgLyogdGhlc2UgY2xhc3MgYXR0cmlidXRlcyBzaG91bGQgc3VwZXJzZWRlIGFueSBpbmxpbmUgcG9zaXRpb25pbmcgc3R5bGUgKi9cblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdGxlZnQ6IC0xMDAwMHB4ICFpbXBvcnRhbnQ7XG5cdHRvcDogLTEwMDAwcHggIWltcG9ydGFudDtcbn1cblxuLypcbiAqIFBvcHVwIGl0ZW1zIGhhdmUgYSB3cmFwcGVyIGRpdiAoZGlqaXRQb3B1cClcbiAqIHdpdGggdGhlIHJlYWwgcG9wdXAgaW5zaWRlLCBhbmQgbWF5YmUgYW4gaWZyYW1lIHRvb1xuICovXG4uZGlqaXRQb3B1cCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdG1hcmdpbjogMDtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5kaWppdFBvc2l0aW9uT25seSB7XG5cdC8qIE51bGwgb3V0IGFsbCBwb3NpdGlvbi1yZWxhdGVkIHByb3BlcnRpZXMgKi9cblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xuXHRib3JkZXI6IDAgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0d2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmRpaml0Tm9uUG9zaXRpb25Pbmx5IHtcblx0LyogTnVsbCBwb3NpdGlvbi1yZWxhdGVkIHByb3BlcnRpZXMgKi9cblx0ZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcblx0cG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDAgMCAwIDAgIWltcG9ydGFudDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xufVxuXG4uZGlqaXRCYWNrZ3JvdW5kSWZyYW1lIHtcblx0LyogaWZyYW1lIHVzZWQgdG8gcHJldmVudCBwcm9ibGVtcyB3aXRoIFBERiBvciBvdGhlciBhcHBsZXRzIG92ZXJsYXlpbmcgbWVudXMgZXRjICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0dG9wOiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR6LWluZGV4OiAtMTtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdERpc3BsYXlOb25lIHtcblx0LyogaGlkZSBzb21ldGhpbmcuICBVc2UgdGhpcyBhcyBhIGNsYXNzIHJhdGhlciB0aGFuIGVsZW1lbnQuc3R5bGUgc28gYW5vdGhlciBjbGFzcyBjYW4gb3ZlcnJpZGUgKi9cblx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdENvbnRhaW5lciB7XG5cdC8qIGZvciBhbGwgbGF5b3V0IGNvbnRhaW5lcnMgKi9cblx0b3ZlcmZsb3c6IGhpZGRlbjtcdC8qIG5lZWQgb24gSUUgc28gc29tZXRoaW5nIGNhbiBiZSByZWR1Y2VkIGluIHNpemUsIGFuZCBzbyBzY3JvbGxiYXJzIGFyZW4ndCB0ZW1wb3JhcmlseSBkaXNwbGF5ZWQgd2hlbiByZXNpemluZyAqL1xufVxuXG4vKioqKlxuXHRcdEExMVlcbiAqKioqL1xuLmRqX2ExMXkgLmRpaml0SWNvbixcbi5kal9hMTF5IGRpdi5kaWppdEFycm93QnV0dG9uSW5uZXIsIC8qIGlzIHRoaXMgb25seSBmb3IgU3Bpbm5lcj8gIGlmIHNvLCBpdCBzaG91bGQgYmUgZGVsZXRlZCAqL1xuLmRqX2ExMXkgc3Bhbi5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGpfYTExeSBpbWcuZGlqaXRBcnJvd0J1dHRvbklubmVyLFxuLmRqX2ExMXkgLmRpaml0Q2FsZW5kYXJJbmNyZW1lbnRDb250cm9sLFxuLmRqX2ExMXkgLmRpaml0VHJlZUV4cGFuZG8ge1xuXHQvKiBoaWRlIGljb24gbm9kZXMgaW4gaGlnaCBjb250cmFzdCBtb2RlOyB3aGVuIG5lY2Vzc2FyeSB0aGV5IHdpbGwgYmUgcmVwbGFjZWQgYnkgY2hhcmFjdGVyIGVxdWl2YWxlbnRzXG5cdCAqIGV4Y2VwdGlvbiBmb3IgaW5wdXQuZGlqaXRBcnJvd0J1dHRvbklubmVyLCBiZWNhdXNlIHRoZSBpY29uIGFuZCBjaGFyYWN0ZXIgYXJlIGNvbnRyb2xsZWQgYnkgdGhlIHNhbWUgbm9kZSAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRpaml0U3Bpbm5lciBkaXYuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0ZGlzcGxheTogYmxvY2s7IC8qIG92ZXJyaWRlIHByZXZpb3VzIHJ1bGUgKi9cbn1cblxuLmRqX2ExMXkgLmRpaml0QTExeVNpZGVBcnJvdyB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyAvKiBkaXNwbGF5IHRleHQgaW5zdGVhZCAqL1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qXG4gKiBTaW5jZSB3ZSBjYW4ndCB1c2Ugc2hhZGluZyBpbiBhMTF5IG1vZGUsIGFuZCBzaW5jZSB0aGUgdW5kZXJsaW5lIGluZGljYXRlcyB0b2RheSdzIGRhdGUsXG4gKiB1c2UgYSBib3JkZXIgdG8gc2hvdyB0aGUgc2VsZWN0ZWQgZGF0ZS5cbiAqIEF2b2lkIHNjcmVlbiBqaXR0ZXIgd2hlbiBzd2l0Y2hpbmcgc2VsZWN0ZWQgZGF0ZSBieSBjb21wZW5zYXRpbmcgZm9yIHRoZSBzZWxlY3RlZCBub2RlJ3NcbiAqIGJvcmRlciB3L3BhZGRpbmcgb24gb3RoZXIgbm9kZXMuXG4gKi9cbi5kal9hMTF5IC5kaWppdENhbGVuZGFyRGF0ZUxhYmVsIHtcblx0cGFkZGluZzogMXB4O1xuXHRib3JkZXI6IDBweCAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0Q2FsZW5kYXJTZWxlY3RlZERhdGUgLmRpaml0Q2FsZW5kYXJEYXRlTGFiZWwge1xuXHRib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG5cdGJvcmRlci13aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmc6IDA7XG59XG4uZGpfYTExeSAuZGlqaXRDYWxlbmRhckRhdGVUZW1wbGF0ZSB7XG5cdHBhZGRpbmctYm90dG9tOiAwLjFlbSAhaW1wb3J0YW50O1x0Lyogb3RoZXJ3aXNlIGJvdHRvbSBib3JkZXIgZG9lc24ndCBhcHBlYXIgb24gSUUgKi9cblx0Ym9yZGVyOiAwcHggIWltcG9ydGFudDtcbn1cbi5kal9hMTF5IC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXI6IGJsYWNrIG91dHNldCBtZWRpdW0gIWltcG9ydGFudDtcblxuXHQvKiBJbiBjbGFybywgaG92ZXJpbmcgYSB0b29sYmFyIGJ1dHRvbiByZWR1Y2VzIHBhZGRpbmcgYW5kIGFkZHMgYSBib3JkZXIuXG5cdCAqIE5vdCBuZWVkZWQgaW4gYTExeSBtb2RlIHNpbmNlIFRvb2xiYXIgYnV0dG9ucyBhbHdheXMgaGF2ZSBhIGJvcmRlci5cblx0ICovXG5cdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cbi5kal9hMTF5IC5kaWppdEFycm93QnV0dG9uIHtcblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXRCdXR0b25Db250ZW50cyB7XG5cdG1hcmdpbjogMC4xNWVtOyAvKiBNYXJnaW4gbmVlZGVkIHRvIG1ha2UgZm9jdXMgb3V0bGluZSB2aXNpYmxlICovXG59XG5cbi5kal9hMTF5IC5kaWppdFRleHRCb3hSZWFkT25seSAuZGlqaXRJbnB1dEZpZWxkLFxuLmRqX2ExMXkgLmRpaml0VGV4dEJveFJlYWRPbmx5IC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItc3R5bGU6IG91dHNldCFpbXBvcnRhbnQ7XG5cdGJvcmRlci13aWR0aDogbWVkaXVtIWltcG9ydGFudDtcblx0Ym9yZGVyLWNvbG9yOiAjOTk5ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiM5OTkgIWltcG9ydGFudDtcbn1cblxuLyogYnV0dG9uIGlubmVyIGNvbnRlbnRzIC0gbGFiZWxzLCBpY29ucyBldGMuICovXG4uZGlqaXRCdXR0b25Ob2RlICoge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmRpaml0U2VsZWN0IC5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGlqaXRCdXR0b25Ob2RlIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHQvKiB0aGUgYXJyb3cgaWNvbiBub2RlICovXG5cdGJhY2tncm91bmQ6IG5vLXJlcGVhdCBjZW50ZXI7XG5cdHdpZHRoOiAxMnB4O1xuXHRoZWlnaHQ6IDEycHg7XG5cdGRpcmVjdGlvbjogbHRyOyAvKiBuZWVkZWQgYnkgSUUvUlRMICovXG59XG5cbi8qKioqXG5cdDMtZWxlbWVudCBib3JkZXJzOiAgKCBkaWppdExlZnQgKyBkaWppdFN0cmV0Y2ggKyBkaWppdFJpZ2h0IClcblx0VGhlc2Ugd2VyZSBhZGRlZCBmb3Igcm91bmRlZCBjb3JuZXJzIG9uIGRpaml0LmZvcm0uKkJ1dHRvbiBidXQgbmV2ZXIgYWN0dWFsbHkgdXNlZC5cbiAqKioqL1xuXG4uZGlqaXRMZWZ0IHtcblx0LyogTGVmdCBwYXJ0IG9mIGEgMy1lbGVtZW50IGJvcmRlciAqL1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgdG9wO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG59XG5cbi5kaWppdFN0cmV0Y2gge1xuXHQvKiBNaWRkbGUgKHN0cmV0Y2h5KSBwYXJ0IG9mIGEgMy1lbGVtZW50IGJvcmRlciAqL1xuXHR3aGl0ZS1zcGFjZTpub3dyYXA7XHRcdFx0LyogTU9XOiBtb3ZlIHNvbWV3aGVyZSBlbHNlICovXG5cdGJhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O1xufVxuXG4uZGlqaXRSaWdodCB7XG5cdC8qIFJpZ2h0IHBhcnQgb2YgYSAzLWVsZW1lbnQgYm9yZGVyICovXG5cdCNkaXNwbGF5OmlubGluZTtcdFx0XHRcdC8qIElFNyBzaXplcyB0byBvdXRlciBzaXplIHcvbyB0aGlzICovXG5cdGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgdG9wO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG59XG5cbi8qIEJ1dHRvbnMgKi9cbi5kal9nZWNrbyAuZGpfYTExeSAuZGlqaXRCdXR0b25EaXNhYmxlZCAuZGlqaXRCdXR0b25Ob2RlIHtcblx0b3BhY2l0eTogMC41O1xufVxuXG4uZGlqaXRUb2dnbGVCdXR0b24sXG4uZGlqaXRCdXR0b24sXG4uZGlqaXREcm9wRG93bkJ1dHRvbixcbi5kaWppdENvbWJvQnV0dG9uIHtcblx0Lyogb3V0c2lkZSBvZiBidXR0b24gKi9cblx0bWFyZ2luOiAwLjJlbTtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRkaXNwbGF5OiBibG9jaztcdFx0LyogdG8gbWFrZSBmb2N1cyBib3JkZXIgcmVjdGFuZ3VsYXIgKi9cbn1cbnRkLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRkaXNwbGF5OiB0YWJsZS1jZWxsO1x0LyogYnV0IGRvbid0IGFmZmVjdCBTZWxlY3QsIENvbWJvQnV0dG9uICovXG59XG5cbi5kaWppdEJ1dHRvbk5vZGUgaW1nIHtcblx0LyogbWFrZSB0ZXh0IGFuZCBpbWFnZXMgbGluZSB1cCBjbGVhbmx5ICovXG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0LyptYXJnaW4tYm90dG9tOi4yZW07Ki9cbn1cblxuLmRpaml0VG9vbGJhciAuZGlqaXRDb21ib0J1dHRvbiB7XG5cdC8qIGJlY2F1c2UgVG9vbGJhciBvbmx5IGRyYXdzIGEgYm9yZGVyIGFyb3VuZCB0aGUgaG92ZXJlZCB0aGluZyAqL1xuXHRib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xufVxuXG4uZGlqaXRUb29sYmFyIC5kaWppdFRvZ2dsZUJ1dHRvbixcbi5kaWppdFRvb2xiYXIgLmRpaml0QnV0dG9uLFxuLmRpaml0VG9vbGJhciAuZGlqaXREcm9wRG93bkJ1dHRvbixcbi5kaWppdFRvb2xiYXIgLmRpaml0Q29tYm9CdXR0b24ge1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdFRvb2xiYXIgLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHQvKiBqdXN0IGJlY2F1c2UgaXQgdXNlZCB0byBiZSB0aGlzIHdheSAqL1xuXHRwYWRkaW5nOiAxcHggMnB4O1xufVxuXG5cbi5kal93ZWJraXQgLmRpaml0VG9vbGJhciAuZGlqaXREcm9wRG93bkJ1dHRvbiB7XG5cdHBhZGRpbmctbGVmdDogMC4zZW07XG59XG4uZGpfZ2Vja28gLmRpaml0VG9vbGJhciAuZGlqaXRCdXR0b25Ob2RlOjotbW96LWZvY3VzLWlubmVyIHtcblx0cGFkZGluZzowO1xufVxuXG4uZGlqaXRTZWxlY3Qge1xuXHRib3JkZXI6MXB4IHNvbGlkIGdyYXk7XG59XG4uZGlqaXRCdXR0b25Ob2RlIHtcblx0LyogTm9kZSB0aGF0IGlzIGFjdGluZyBhcyBhIGJ1dHRvbiAtLSBtYXkgb3IgbWF5IG5vdCBiZSBhIEJVVFRPTiBlbGVtZW50ICovXG5cdGJvcmRlcjoxcHggc29saWQgZ3JheTtcblx0bWFyZ2luOjA7XG5cdGxpbmUtaGVpZ2h0Om5vcm1hbDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0I3ZlcnRpY2FsLWFsaWduOiBhdXRvO1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5kal93ZWJraXQgLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIHtcblx0LyogYXBwYXJlbnQgV2ViS2l0IGJ1ZyB3aGVyZSBtZXNzaW5nIHdpdGggdGhlIGZvbnQgY291cGxlZCB3aXRoIGxpbmUtaGVpZ2h0Om5vcm1hbCBYIDIgKGRpaml0UmVzZXQgJiBkaWppdEJ1dHRvbk5vZGUpXG5cdGNhbiBiZSBkaWZmZXJlbnQgdGhhbiBqdXN0IGEgc2luZ2xlIGxpbmUtaGVpZ2h0Om5vcm1hbCwgdmlzaWJsZSBpbiBJbmxpbmVFZGl0Qm94L1NwaW5uZXIgKi9cblx0bGluZS1oZWlnaHQ6aW5oZXJpdDtcbn1cbi5kaWppdFRleHRCb3ggLmRpaml0QnV0dG9uTm9kZSB7XG5cdGJvcmRlci13aWR0aDogMDtcbn1cblxuLmRpaml0U2VsZWN0LFxuLmRpaml0U2VsZWN0ICosXG4uZGlqaXRCdXR0b25Ob2RlLFxuLmRpaml0QnV0dG9uTm9kZSAqIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGpfaWUgLmRpaml0QnV0dG9uTm9kZSB7XG5cdC8qIGVuc3VyZSBoYXNMYXlvdXQgKi9cblx0em9vbTogMTtcbn1cblxuLmRqX2llIC5kaWppdEJ1dHRvbk5vZGUgYnV0dG9uIHtcblx0Lypcblx0XHRkaXNndXN0aW5nIGhhY2sgdG8gZ2V0IHJpZCBvZiBzcHVyaW91cyBwYWRkaW5nIGFyb3VuZCBidXR0b24gZWxlbWVudHNcblx0XHRvbiBJRS4gTVNJRSBpcyB0cnVseSB0aGUgd2ViJ3MgYm9hdCBhbmNob3IuXG5cdCovXG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5kaXYuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdGZsb2F0OiByaWdodDtcbn1cblxuLyoqKioqKlxuXHRUZXh0Qm94IHJlbGF0ZWQuXG5cdEV2ZXJ5dGhpbmcgdGhhdCBoYXMgYW4gPGlucHV0PlxuKioqKioqKi9cblxuLmRpaml0VGV4dEJveCB7XG5cdGJvcmRlcjogc29saWQgYmxhY2sgMXB4O1xuXHQjb3ZlcmZsb3c6IGhpZGRlbjsgLyogIzYwMjcsICM2MDY3ICovXG5cdHdpZHRoOiAxNWVtO1x0LyogbmVlZCB0byBzZXQgZGVmYXVsdCBzaXplIG9uIG91dGVyIG5vZGUgc2luY2UgaW5uZXIgbm9kZXMgc2F5IDxpbnB1dCBzdHlsZT1cIndpZHRoOjEwMCVcIj4gYW5kIDx0ZCB3aWR0aD0xMDAlPi4gIHVzZXIgY2FuIG92ZXJyaWRlICovXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kaWppdFRleHRCb3hSZWFkT25seSxcbi5kaWppdFRleHRCb3hEaXNhYmxlZCB7XG5cdGNvbG9yOiBncmF5O1xufVxuLmRqX3NhZmFyaSAuZGlqaXRUZXh0Qm94RGlzYWJsZWQgaW5wdXQge1xuXHRjb2xvcjogI0IwQjBCMDsgLyogYmVjYXVzZSBTYWZhcmkgbGlnaHRlbnMgZGlzYWJsZWQgaW5wdXQvdGV4dGFyZWEgbm8gbWF0dGVyIHdoYXQgY29sb3IgeW91IHNwZWNpZnkgKi9cbn1cbi5kal9zYWZhcmkgdGV4dGFyZWEuZGlqaXRUZXh0QXJlYURpc2FibGVkIHtcblx0Y29sb3I6ICMzMzM7IC8qIGJlY2F1c2UgU2FmYXJpIGxpZ2h0ZW5zIGRpc2FibGVkIGlucHV0L3RleHRhcmVhIG5vIG1hdHRlciB3aGF0IGNvbG9yIHlvdSBzcGVjaWZ5ICovXG59XG4uZGpfZ2Vja28gLmRpaml0VGV4dEJveFJlYWRPbmx5IGlucHV0LmRpaml0SW5wdXRGaWVsZCwgLyogZGlzYWJsZSBhcnJvdyBhbmQgdmFsaWRhdGlvbiBwcmVzZW50YXRpb24gaW5wdXRzIGJ1dCBhbGxvdyByZWFsIGlucHV0IGZvciB0ZXh0IHNlbGVjdGlvbiAqL1xuLmRqX2dlY2tvIC5kaWppdFRleHRCb3hEaXNhYmxlZCBpbnB1dCB7XG5cdC1tb3otdXNlci1pbnB1dDogbm9uZTsgLyogcHJldmVudCBmb2N1cyBvZiBkaXNhYmxlZCB0ZXh0Ym94IGJ1dHRvbnMgKi9cbn1cblxuLmRpaml0UGxhY2VIb2xkZXIge1xuXHQvKiBoaW50IHRleHQgdGhhdCBhcHBlYXJzIGluIGEgdGV4dGJveCB1bnRpbCB1c2VyIHN0YXJ0cyB0eXBpbmcgKi9cblx0Y29sb3I6ICNBQUFBQUE7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdCNmaWx0ZXI6IFwiXCI7IC8qIG1ha2UgdGhpcyBzaG93IHVwIGluIElFNiBhZnRlciB0aGUgcmVuZGVyaW5nIG9mIHRoZSB3aWRnZXQgKi9cblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7ICAgLyogc28gY3V0L3Bhc3RlIGNvbnRleHQgbWVudSBzaG93cyB1cCB3aGVuIHJpZ2h0IGNsaWNraW5nICovXG59XG5cbi5kaWppdFRpbWVUZXh0Qm94IHtcblx0d2lkdGg6IDhlbTtcbn1cblxuLyogcnVsZXMgZm9yIHdlYmtpdCB0byBkZWFsIHdpdGggZnV6enkgYmx1ZSBmb2N1cyBib3JkZXIgKi9cbi5kaWppdFRleHRCb3ggaW5wdXQ6Zm9jdXMge1xuXHRvdXRsaW5lOiBub25lO1x0LyogYmx1ZSBmdXp6eSBsaW5lIGxvb2tzIHdyb25nIG9uIGNvbWJvYm94IG9yIHNvbWV0aGluZyB3L3ZhbGlkYXRpb24gaWNvbiBzaG93aW5nICovXG59XG4uZGlqaXRUZXh0Qm94Rm9jdXNlZCB7XG5cdG91dGxpbmU6IDVweCAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG59XG5cbi5kaWppdFNlbGVjdCBpbnB1dCxcbi5kaWppdFRleHRCb3ggaW5wdXQge1xuXHRmbG9hdDogbGVmdDsgLyogbmVlZGVkIGJ5IElFIHRvIHJlbW92ZSBzZWNyZXQgbWFyZ2luICovXG59XG4uZGpfaWU2IGlucHV0LmRpaml0VGV4dEJveCxcbi5kal9pZTYgLmRpaml0VGV4dEJveCBpbnB1dCB7XG5cdGZsb2F0OiBub25lO1xufVxuLmRpaml0SW5wdXRJbm5lciB7XG5cdC8qIGZvciB3aGVuIGFuIDxpbnB1dD4gaXMgZW1iZWRkZWQgaW5zaWRlIGFuIGlubGluZS1ibG9jayA8ZGl2PiB3aXRoIGEgc2l6ZSBhbmQgYm9yZGVyICovXG5cdGJvcmRlcjowICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuXHQvKiBJRSBkaXNsaWtlcyBob3Jpem9udGFsIHR3ZWFraW5nIGNvbWJpbmVkIHdpdGggd2lkdGg6MTAwJSBzbyBwdW5pc2ggZXZlcnlvbmUgZm9yIGNvbnNpc3RlbmN5ICovXG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0VGV4dEJveCBpbnB1dCB7XG5cdG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuLmRpaml0VmFsaWRhdGlvblRleHRCb3hFcnJvciBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kaWppdFNlbGVjdCBpbnB1dCxcbi5kaWppdFRleHRCb3ggaW5wdXQuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0LyogPGlucHV0PiB1c2VkIHRvIGRpc3BsYXkgYXJyb3cgaWNvbi92YWxpZGF0aW9uIGljb24sIG9yIGluIGFycm93IGNoYXJhY3RlciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuXG5cdCAqIFRoZSBjc3MgYmVsb3cgaXMgYSB0cmljayB0byBoaWRlIHRoZSBjaGFyYWN0ZXIgaW4gbm9uLWhpZ2gtY29udHJhc3QgbW9kZVxuXHQgKi9cblx0dGV4dC1pbmRlbnQ6IC0yZW0gIWltcG9ydGFudDtcblx0ZGlyZWN0aW9uOiBsdHIgIWltcG9ydGFudDtcblx0dGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0I3RleHQtaW5kZW50OiAwICFpbXBvcnRhbnQ7XG5cdCNsZXR0ZXItc3BhY2luZzogLTVlbSAhaW1wb3J0YW50O1xuXHQjdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbn1cbi5kal9pZSAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWUgLmRpaml0VGV4dEJveCBpbnB1dCxcbi5kal9pZSBpbnB1dC5kaWppdFRleHRCb3gge1xuXHRvdmVyZmxvdy15OiB2aXNpYmxlOyAvKiBpbnB1dHMgbmVlZCBoZWxwIGV4cGFuZGluZyB3aGVuIHBhZGRpbmcgaXMgYWRkZWQgb3IgbGluZS1oZWlnaHQgaXMgYWRqdXN0ZWQgKi9cblx0bGluZS1oZWlnaHQ6IG5vcm1hbDsgLyogc3RyaWN0IG1vZGUgKi9cbn1cbi5kaWppdFNlbGVjdCAuZGlqaXRTZWxlY3RMYWJlbCBzcGFuIHtcblx0bGluZS1oZWlnaHQ6IDEwMCU7XG59XG4uZGpfaWUgLmRpaml0U2VsZWN0IC5kaWppdFNlbGVjdExhYmVsIHtcblx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cbi5kal9pZTYgLmRpaml0U2VsZWN0IC5kaWppdFNlbGVjdExhYmVsLFxuLmRqX2llNyAuZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwsXG4uZGpfaWU4IC5kaWppdFNlbGVjdCAuZGlqaXRTZWxlY3RMYWJlbCxcbi5kal9pZXF1aXJrcyAuZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwsXG4uZGlqaXRTZWxlY3QgdGQsXG4uZGpfaWU2IC5kaWppdFNlbGVjdCBpbnB1dCxcbi5kal9pZXF1aXJrcyAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWU2IC5kaWppdFNlbGVjdCAuZGlqaXRWYWxpZGF0aW9uQ29udGFpbmVyLFxuLmRqX2llNiAuZGlqaXRUZXh0Qm94IGlucHV0LFxuLmRqX2llNiBpbnB1dC5kaWppdFRleHRCb3gsXG4uZGpfaWVxdWlya3MgLmRpaml0VGV4dEJveCBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kal9pZXF1aXJrcyAuZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0QXJyb3dCdXR0b25Jbm5lcixcbi5kal9pZXF1aXJrcyAuZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0U3Bpbm5lckJ1dHRvbklubmVyLFxuLmRqX2llcXVpcmtzIC5kaWppdFRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRqX2llcXVpcmtzIGlucHV0LmRpaml0VGV4dEJveCB7XG5cdGxpbmUtaGVpZ2h0OiAxMDAlOyAvKiBJRTcgcHJvYmxlbSB3aGVyZSB0aGUgaWNvbiBpcyB2ZXJ0aWNhbGx5IHdheSB0b28gbG93IHcvbyB0aGlzICovXG59XG4uZGpfYTExeSBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kal9hMTF5IGlucHV0LmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdC8qIChpbiBoaWdoIGNvbnRyYXN0IG1vZGUpIHJldmVydCBydWxlcyBmcm9tIGFib3ZlIHNvIGNoYXJhY3RlciBkaXNwbGF5cyAqL1xuXHR0ZXh0LWluZGVudDogMCAhaW1wb3J0YW50O1xuXHR3aWR0aDogMWVtICFpbXBvcnRhbnQ7XG5cdCN0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xufVxuLmRpaml0VmFsaWRhdGlvblRleHRCb3hFcnJvciAuZGlqaXRWYWxpZGF0aW9uQ29udGFpbmVyIHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qIENvbWJvQm94ICYgU3Bpbm5lciAqL1xuXG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGlqaXRDb21ib0JveCAuZGlqaXRBcnJvd0J1dHRvbkNvbnRhaW5lciB7XG5cdC8qIGRpdmlkaW5nIGxpbmUgYmV0d2VlbiBpbnB1dCBhcmVhIGFuZCB1cC9kb3duIGJ1dHRvbihzKSBmb3IgQ29tYm9Cb3ggYW5kIFNwaW5uZXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwIDAgMCAxcHggIWltcG9ydGFudDsgLyogIWltcG9ydGFudCBuZWVkZWQgZHVlIHRvIHdheXdhcmQgXCIudGhlbWUgLmRpaml0QnV0dG9uTm9kZVwiIHJ1bGVzICovXG59XG4uZGpfYTExeSAuZGlqaXRTZWxlY3QgLmRpaml0QXJyb3dCdXR0b25Db250YWluZXIsXG4uZGlqaXRUb29sYmFyIC5kaWppdENvbWJvQm94IC5kaWppdEFycm93QnV0dG9uQ29udGFpbmVyIHtcblx0Lyogb3ZlcnJpZGVzIGFib3ZlIHJ1bGUgcGx1cyBtaXJyb3ItaW1hZ2UgcnVsZSBpbiBkaWppdF9ydGwuY3NzIHRvIGhhdmUgbm8gZGl2aWRlciB3aGVuIENvbWJvQm94IGluIFRvb2xiYXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdENvbWJvQm94TWVudSB7XG5cdC8qIERyb3AgZG93biBtZW51IGlzIGltcGxlbWVudGVkIGFzIDx1bD4gPGxpLz4gPGxpLz4gLi4uIGJ1dCB3ZSBkb24ndCB3YW50IGNpcmNsZXMgYmVmb3JlIGVhY2ggaXRlbSAqL1xuXHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QnV0dG9uTm9kZSB7XG5cdC8qIGRpdmlkaW5nIGxpbmUgYmV0d2VlbiBpbnB1dCBhcmVhIGFuZCB1cC9kb3duIGJ1dHRvbihzKSBmb3IgQ29tYm9Cb3ggYW5kIFNwaW5uZXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwO1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdFNwaW5uZXIgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRCdXR0b25Ob2RlIHtcblx0Y2xlYXI6IGJvdGg7IC8qIElFIHdvcmthcm91bmQgKi9cbn1cblxuLmRqX2llIC5kaWppdFRvb2xiYXIgLmRpaml0Q29tYm9Cb3gge1xuXHQvKiBtYWtlIGNvbWJvYm94IGJ1dHRvbnMgYWxpZ24gcHJvcGVybHkgd2l0aCBvdGhlciBidXR0b25zIGluIGEgdG9vbGJhciAqL1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vKiBTcGlubmVyICovXG5cbi5kaWppdFRleHRCb3ggLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciB7XG5cdHdpZHRoOiAxZW07XG5cdHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uSW5uZXIge1xuXHR3aWR0aDoxZW07XG5cdHZpc2liaWxpdHk6aGlkZGVuICFpbXBvcnRhbnQ7IC8qIGp1c3QgYSBzaXppbmcgZWxlbWVudCAqL1xuXHRvdmVyZmxvdy14OmhpZGRlbjtcbn1cbi5kaWppdENvbWJvQm94IC5kaWppdEJ1dHRvbk5vZGUsXG4uZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItd2lkdGg6IDA7XG59XG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItd2lkdGg6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRUZXh0Qm94IC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIGlucHV0IHtcblx0d2lkdGg6IDFlbSAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0bWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDsgLyogc2hvdWxkIGF1dG8tY2VudGVyICovXG59XG4uZGpfaWUgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRwYWRkaW5nLWxlZnQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwLjNlbSAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxLjRlbSAhaW1wb3J0YW50O1xufVxuLmRqX2llNyAuZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIgLmRpaml0SW5wdXRGaWVsZCB7XG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyAvKiBtYW51YWxseSBjZW50ZXIgSU5QVVQ6IGNoYXJhY3RlciBpcyAuNWVtIGFuZCB0b3RhbCB3aWR0aCA9IDFlbSAqL1xuXHRwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxZW0gIWltcG9ydGFudDtcbn1cbi5kal9pZTYgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRtYXJnaW4tbGVmdDogMC4xZW0gIWltcG9ydGFudDtcblx0bWFyZ2luLXJpZ2h0OiAwLjFlbSAhaW1wb3J0YW50O1xuXHR3aWR0aDogMWVtICFpbXBvcnRhbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcblx0d2lkdGg6IDJlbSAhaW1wb3J0YW50O1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEFycm93QnV0dG9uIHtcblx0Lyogbm90ZTogLmRpaml0SW5wdXRMYXlvdXRDb250YWluZXIgbWFrZXMgdGhpcyBydWxlIG92ZXJyaWRlIC5kaWppdEFycm93QnV0dG9uIHNldHRpbmdzXG5cdCAqIGZvciBkaWppdC5mb3JtLkJ1dHRvblxuXHQgKi9cblx0cGFkZGluZzogMDtcblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHJpZ2h0OiAwO1xuXHRmbG9hdDogbm9uZTtcblx0aGVpZ2h0OiA1MCU7XG5cdHdpZHRoOiAxMDAlO1xuXHRib3R0b206IGF1dG87XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiBhdXRvO1xufVxuLmRqX2llcXVpcmtzIC5kaWppdFNwaW5uZXIgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdHdpZHRoOiBhdXRvO1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0RG93bkFycm93QnV0dG9uIHtcblx0dG9wOiA1MCU7XG5cdGJvcmRlci10b3Atd2lkdGg6IDFweCAhaW1wb3J0YW50O1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdFVwQXJyb3dCdXR0b24ge1xuXHQjYm90dG9tOiA1MCU7XHQvKiBvdGhlcndpc2UgKG9uIHNvbWUgbWFjaGluZXMpIHRvcCBhcnJvdyBpY29uIHRvbyBjbG9zZSB0byBzcGxpdHRlciBib3JkZXIgKElFNi83KSAqL1xuXHR0b3A6IDA7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHRtYXJnaW46IGF1dG87XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0aGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0aGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIgLmRpaml0SW5wdXRGaWVsZCB7XG5cdC1tb3otdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHQtbW96LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHQtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG5cdC1vLXRyYW5zZm9ybTogc2NhbGUoMC41KTtcblx0LW8tdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDtcblx0dHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHR0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcblx0cGFkZGluZy10b3A6IDA7XG5cdHBhZGRpbmctYm90dG9tOiAwO1xuXHRwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcblx0cGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuXHR3aWR0aDogMTAwJTtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmRqX2llIC5kaWppdFNwaW5uZXIgLmRpaml0QXJyb3dCdXR0b25Jbm5lciAuZGlqaXRJbnB1dEZpZWxkIHtcblx0em9vbTogNTAlOyAvKiBlbXVsYXRlIHRyYW5zZm9ybTogc2NhbGUoMC41KSAqL1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QXJyb3dCdXR0b24ge1xuXHR3aWR0aDogMTAwJTtcbn1cbi5kal9pZXF1aXJrcyAuZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QXJyb3dCdXR0b24ge1xuXHR3aWR0aDogMWVtOyAvKiBtYXRjaGVzIC5kal9hMTF5IC5kaWppdFRleHRCb3ggLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciBydWxlIC0gMTAwJSBpcyB0aGUgd2hvbGUgc2NyZWVuIHdpZHRoIGluIHF1aXJrcyAqL1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHR2ZXJ0aWNhbC1hbGlnbjp0b3A7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIHtcblx0d2lkdGg6IDFlbTtcbn1cblxuLyoqKipcblx0XHRkaWppdC5mb3JtLkNoZWNrQm94XG4gXHQgJlxuICBcdFx0ZGlqaXQuZm9ybS5SYWRpb0J1dHRvblxuICoqKiovXG5cbi5kaWppdENoZWNrQm94LFxuLmRpaml0UmFkaW8sXG4uZGlqaXRDaGVja0JveElucHV0IHtcblx0cGFkZGluZzogMDtcblx0Ym9yZGVyOiAwO1xuXHR3aWR0aDogMTZweDtcblx0aGVpZ2h0OiAxNnB4O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7XG5cdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRpaml0Q2hlY2tCb3ggaW5wdXQsXG4uZGlqaXRSYWRpbyBpbnB1dCB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi5kaWppdENoZWNrQm94SW5wdXQge1xuXHQvKiBwbGFjZSB0aGUgYWN0dWFsIGlucHV0IG9uIHRvcCwgYnV0IGludmlzaWJsZSAqL1xuXHRvcGFjaXR5OiAwO1xufVxuXG4uZGpfaWUgLmRpaml0Q2hlY2tCb3hJbnB1dCB7XG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbn1cblxuLmRqX2ExMXkgLmRpaml0Q2hlY2tCb3gsXG4uZGpfYTExeSAuZGlqaXRSYWRpbyB7XG5cdC8qIGluIGExMXkgbW9kZSB3ZSBkaXNwbGF5IHRoZSBuYXRpdmUgY2hlY2tib3ggKG5vdCB0aGUgaWNvbiksIHNvIGRvbid0IHJlc3RyaWN0IHRoZSBzaXplICovXG5cdHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG5cdGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0Q2hlY2tCb3hJbnB1dCB7XG5cdG9wYWNpdHk6IDE7XG5cdGZpbHRlcjogbm9uZTtcblx0d2lkdGg6IGF1dG87XG5cdGhlaWdodDogYXV0bztcbn1cblxuLmRqX2ExMXkgLmRpaml0Rm9jdXNlZExhYmVsIHtcblx0LyogZm9yIGNoZWNrYm94ZXMgb3IgcmFkaW8gYnV0dG9ucyBpbiBoaWdoIGNvbnRyYXN0IG1vZGUsIHVzZSBib3JkZXIgcmF0aGVyIHRoYW4gb3V0bGluZSB0byBpbmRpY2F0ZSBmb2N1cyAob3V0bGluZSBkb2VzIG5vdCB3b3JrIGluIEZGKSovXG5cdGJvcmRlcjogMXB4IGRvdHRlZDtcblx0b3V0bGluZTogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi8qKioqXG5cdFx0ZGlqaXQuUHJvZ3Jlc3NCYXJcbiAqKioqL1xuXG4uZGlqaXRQcm9ncmVzc0JhciB7XG4gICAgei1pbmRleDogMDsgLyogc28gei1pbmRleCBzZXR0aW5ncyBiZWxvdyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIG9mIHRoZSBQcm9ncmVzc0JhciAqL1xufVxuLmRpaml0UHJvZ3Jlc3NCYXJFbXB0eSB7XG5cdC8qIG91dGVyIGNvbnRhaW5lciBhbmQgYmFja2dyb3VuZCBvZiB0aGUgYmFyIHRoYXQncyBub3QgZmluaXNoZWQgeWV0Ki9cblx0cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO1xuXHRib3JkZXI6MXB4IHNvbGlkIGJsYWNrOyBcdC8qIGExMXk6IGJvcmRlciBuZWNlc3NhcnkgZm9yIGhpZ2gtY29udHJhc3QgbW9kZSAqL1xuXHR6LWluZGV4OjA7XHRcdFx0LyogZXN0YWJsaXNoIGEgc3RhY2tpbmcgY29udGV4dCBmb3IgdGhpcyBwcm9ncmVzcyBiYXIgKi9cbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJGdWxsIHtcblx0Lyogb3V0ZXIgY29udGFpbmVyIGZvciBiYWNrZ3JvdW5kIG9mIGJhciB0aGF0IGlzIGZpbmlzaGVkICovXG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHRvdmVyZmxvdzpoaWRkZW47XG5cdHotaW5kZXg6LTE7XG5cdHRvcDowO1xuXHR3aWR0aDoxMDAlO1xufVxuLmRqX2llNiAuZGlqaXRQcm9ncmVzc0JhckZ1bGwge1xuXHRoZWlnaHQ6MS42ZW07XG59XG5cbi5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGlubmVyIGNvbnRhaW5lciBmb3IgZmluaXNoZWQgcG9ydGlvbiAqL1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHRib3R0b206MDtcblx0cmlnaHQ6MDtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MDtcblx0d2lkdGg6IDEwMCU7ICAgIC8qIG5lZWRlZCBmb3IgSUUvcXVpcmtzICovXG5cdGhlaWdodDphdXRvO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiNhYWE7XG5cdGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG59XG5cbi5kal9hMTF5IC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGExMXk6ICBUaGUgYm9yZGVyIHByb3ZpZGVzIHZpc2liaWxpdHkgaW4gaGlnaC1jb250cmFzdCBtb2RlICovXG5cdGJvcmRlci13aWR0aDoycHg7XG5cdGJvcmRlci1zdHlsZTpzb2xpZDtcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4uZGpfaWU2IC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIHdpZHRoOmF1dG8gd29ya3MgaW4gSUU2IHdpdGggcG9zaXRpb246c3RhdGljIGJ1dCBub3QgcG9zaXRpb246YWJzb2x1dGUgKi9cblx0cG9zaXRpb246c3RhdGljO1xuXHQvKiBoZWlnaHQ6YXV0byBvciAxMDAlIGRvZXMgbm90IHdvcmsgaW4gSUU2ICovXG5cdGhlaWdodDoxLjZlbTtcbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJJbmRldGVybWluYXRlIC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGFuaW1hdGVkIGdpZiBmb3IgJ2luZGV0ZXJtaW5hdGUnIG1vZGUgKi9cbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJJbmRldGVybWluYXRlSGlnaENvbnRyYXN0SW1hZ2Uge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi5kal9hMTF5IC5kaWppdFByb2dyZXNzQmFySW5kZXRlcm1pbmF0ZSAuZGlqaXRQcm9ncmVzc0JhckluZGV0ZXJtaW5hdGVIaWdoQ29udHJhc3RJbWFnZSB7XG5cdGRpc3BsYXk6YmxvY2s7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHR0b3A6MDtcblx0Ym90dG9tOjA7XG5cdG1hcmdpbjowO1xuXHRwYWRkaW5nOjA7XG5cdHdpZHRoOjEwMCU7XG5cdGhlaWdodDphdXRvO1xufVxuXG4uZGlqaXRQcm9ncmVzc0JhckxhYmVsIHtcblx0ZGlzcGxheTpibG9jaztcblx0cG9zaXRpb246c3RhdGljO1xuXHR3aWR0aDoxMDAlO1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKioqKlxuXHRcdGRpaml0LlRvb2x0aXBcbiAqKioqL1xuXG4uZGlqaXRUb29sdGlwIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiAyMDAwO1xuXHRkaXNwbGF5OiBibG9jaztcblx0LyogbWFrZSB2aXNpYmxlIGJ1dCBvZmYgc2NyZWVuICovXG5cdGxlZnQ6IDA7XG5cdHRvcDogLTEwMDAwcHg7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4uZGlqaXRUb29sdGlwQ29udGFpbmVyIHtcblx0Ym9yZGVyOiBzb2xpZCBibGFjayAycHg7XG5cdGJhY2tncm91bmQ6ICNiOGI1YjU7XG5cdGNvbG9yOiBibGFjaztcblx0Zm9udC1zaXplOiBzbWFsbDtcbn1cblxuLmRpaml0VG9vbHRpcEZvY3VzTm9kZSB7XG5cdHBhZGRpbmc6IDJweCAycHggMnB4IDJweDtcbn1cblxuLmRpaml0VG9vbHRpcENvbm5lY3RvciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5kal9hMTF5IC5kaWppdFRvb2x0aXBDb25uZWN0b3Ige1xuXHRkaXNwbGF5OiBub25lO1x0Lyogd29uJ3Qgc2hvdyBiL2MgaXQncyBiYWNrZ3JvdW5kLWltYWdlOyBoaWRlIHRvIGF2b2lkIGJvcmRlciBnYXAgKi9cbn1cblxuLmRpaml0VG9vbHRpcERhdGEge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi8qIExheW91dCB3aWRnZXRzLiBUaGlzIGlzIGVzc2VudGlhbCBDU1MgdG8gbWFrZSBsYXlvdXQgd29yayAoaXQgaXNuJ3QgXCJzdHlsaW5nXCIgQ1NTKVxuICAgbWFrZSBzdXJlIHRoYXQgdGhlIHBvc2l0aW9uOmFic29sdXRlIGluIGRpaml0QWxpZ24qIG92ZXJyaWRlcyBvdGhlciBjbGFzc2VzICovXG5cbi5kaWppdExheW91dENvbnRhaW5lciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5kaWppdEFsaWduVG9wLFxuLmRpaml0QWxpZ25Cb3R0b20sXG4uZGlqaXRBbGlnbkxlZnQsXG4uZGlqaXRBbGlnblJpZ2h0IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5ib2R5IC5kaWppdEFsaWduQ2xpZW50IHsgcG9zaXRpb246IGFic29sdXRlOyB9XG5cbi8qXG4gKiBCb3JkZXJDb250YWluZXJcbiAqXG4gKiAuZGlqaXRCb3JkZXJDb250YWluZXIgaXMgYSBzdHlsaXplZCBsYXlvdXQgd2hlcmUgcGFuZXMgaGF2ZSBib3JkZXIgYW5kIG1hcmdpbi5cbiAqIC5kaWppdEJvcmRlckNvbnRhaW5lck5vR3V0dGVyIGlzIGEgcmF3IGxheW91dC5cbiAqL1xuLmRpaml0Qm9yZGVyQ29udGFpbmVyLCAuZGlqaXRCb3JkZXJDb250YWluZXJOb0d1dHRlciB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuICAgIHotaW5kZXg6IDA7IC8qIHNvIHotaW5kZXggc2V0dGluZ3MgYmVsb3cgaGF2ZSBubyBlZmZlY3Qgb3V0c2lkZSBvZiB0aGUgQm9yZGVyQ29udGFpbmVyICovXG59XG5cbi5kaWppdEJvcmRlckNvbnRhaW5lclBhbmUsXG4uZGlqaXRCb3JkZXJDb250YWluZXJOb0d1dHRlclBhbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcdC8qICFpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgcG9zaXRpb246cmVsYXRpdmUgaW4gZGlqaXRUYWJDb250YWluZXIgZXRjLiAqL1xuXHR6LWluZGV4OiAyO1x0XHQvKiBhYm92ZSB0aGUgc3BsaXR0ZXJzIHNvIHRoYXQgb2ZmLWJ5LW9uZSBicm93c2VyIGVycm9ycyBkb24ndCBjb3ZlciB1cCBib3JkZXIgb2YgcGFuZSAqL1xufVxuXG4uZGlqaXRCb3JkZXJDb250YWluZXIgPiAuZGlqaXRUZXh0QXJlYSB7XG5cdC8qIE9uIFNhZmFyaSwgZm9yIFNpbXBsZVRleHRBcmVhIGluc2lkZSBhIEJvcmRlckNvbnRhaW5lcixcblx0XHRkb24ndCB3YW50IHRvIGRpc3BsYXkgdGhlIGdyaXAgdG8gcmVzaXplICovXG5cdHJlc2l6ZTogbm9uZTtcbn1cblxuLmRpaml0R3V0dGVyIHtcblx0LyogZ3V0dGVyIGlzIGp1c3QgYSBwbGFjZSBob2xkZXIgZm9yIGVtcHR5IHNwYWNlIGJldHdlZW4gcGFuZXMgaW4gQm9yZGVyQ29udGFpbmVyICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Zm9udC1zaXplOiAxcHg7XHRcdC8qIG5lZWRlZCBieSBJRTYgZXZlbiB0aG91Z2ggZGl2IGlzIGVtcHR5LCBvdGhlcndpc2UgZ29lcyB0byAxNXB4ICovXG59XG5cbi8qIFNwbGl0Q29udGFpbmVyXG5cblx0J1YnID09IGNvbnRhaW5lciB0aGF0IHNwbGl0cyB2ZXJ0aWNhbGx5ICh1cC9kb3duKVxuXHQnSCcgPSBob3Jpem9udGFsIChsZWZ0L3JpZ2h0KVxuKi9cblxuLmRpaml0U3BsaXR0ZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHotaW5kZXg6IDEwO1x0XHQvKiBhYm92ZSB0aGUgcGFuZXMgc28gdGhhdCBzcGxpdHRlciBmb2N1cyBpcyB2aXNpYmxlIG9uIEZGLCBzZWUgIzc1ODMqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRib3JkZXItY29sb3I6IGdyYXk7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogMDtcbn1cbi5kal9pZSAuZGlqaXRTcGxpdHRlciB7XG5cdHotaW5kZXg6IDE7XHQvKiBiZWhpbmQgdGhlIHBhbmVzIHNvIHRoYXQgcGFuZSBib3JkZXJzIGFyZW4ndCBvYnNjdXJlZCBzZWUgdGVzdF9HdWkuaHRtbC9bMTQzOTJdICovXG59XG5cbi5kaWppdFNwbGl0dGVyQWN0aXZlIHtcblx0ei1pbmRleDogMTEgIWltcG9ydGFudDtcbn1cblxuLmRpaml0U3BsaXR0ZXJDb3ZlciB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHR6LWluZGV4Oi0xO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHR3aWR0aDoxMDAlO1xuXHRoZWlnaHQ6MTAwJTtcbn1cblxuLmRpaml0U3BsaXR0ZXJDb3ZlckFjdGl2ZSB7XG5cdHotaW5kZXg6MyAhaW1wb3J0YW50O1xufVxuXG4vKiAjNjk0NTogc3RvcCBtb3VzZSBldmVudHMgKi9cbi5kal9pZSAuZGlqaXRTcGxpdHRlckNvdmVyIHtcblx0YmFja2dyb3VuZDogd2hpdGU7XG5cdG9wYWNpdHk6IDA7XG59XG4uZGpfaWU2IC5kaWppdFNwbGl0dGVyQ292ZXIsXG4uZGpfaWU3IC5kaWppdFNwbGl0dGVyQ292ZXIsXG4uZGpfaWU4IC5kaWppdFNwbGl0dGVyQ292ZXIge1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XG59XG5cbi5kaWppdFNwbGl0dGVySCB7XG5cdGhlaWdodDogN3B4O1xuXHRib3JkZXItdG9wOjFweDtcblx0Ym9yZGVyLWJvdHRvbToxcHg7XG5cdGN1cnNvcjogcm93LXJlc2l6ZTtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kaWppdFNwbGl0dGVyViB7XG5cdHdpZHRoOiA3cHg7XG5cdGJvcmRlci1sZWZ0OjFweDtcblx0Ym9yZGVyLXJpZ2h0OjFweDtcblx0Y3Vyc29yOiBjb2wtcmVzaXplO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0U3BsaXRDb250YWluZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZGlqaXRTcGxpdFBhbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJILFxuLmRpaml0U3BsaXRDb250YWluZXJTaXplclYge1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0Zm9udC1zaXplOiAxcHg7XG5cdGJhY2tncm91bmQtY29sb3I6IFRocmVlREZhY2U7XG5cdGJvcmRlcjogMXB4IHNvbGlkO1xuXHRib3JkZXItY29sb3I6IFRocmVlREhpZ2hsaWdodCBUaHJlZURTaGFkb3cgVGhyZWVEU2hhZG93IFRocmVlREhpZ2hsaWdodDtcblx0bWFyZ2luOiAwO1xufVxuXG4uZGlqaXRTcGxpdENvbnRhaW5lclNpemVySCAudGh1bWIsIC5kaWppdFNwbGl0dGVyViAuZGlqaXRTcGxpdHRlclRodW1iIHtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0dG9wOjQ5JTtcbn1cblxuLmRpaml0U3BsaXRDb250YWluZXJTaXplclYgLnRodW1iLCAuZGlqaXRTcGxpdHRlckggLmRpaml0U3BsaXR0ZXJUaHVtYiB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHRsZWZ0OjQ5JTtcbn1cblxuLmRpaml0U3BsaXR0ZXJTaGFkb3csXG4uZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplckgsXG4uZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplclYge1xuXHRmb250LXNpemU6IDFweDtcblx0YmFja2dyb3VuZC1jb2xvcjogVGhyZWVEU2hhZG93O1xuXHQtbW96LW9wYWNpdHk6IDAuNTtcblx0b3BhY2l0eTogMC41O1xuXHRmaWx0ZXI6IEFscGhhKE9wYWNpdHk9NTApO1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJILCAuZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplckgge1xuXHRjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJWLCAuZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplclYge1xuXHRjdXJzb3I6IHJvdy1yZXNpemU7XG59XG5cbi5kal9hMTF5IC5kaWppdFNwbGl0dGVySCB7XG5cdGJvcmRlci10b3A6MXB4IHNvbGlkICNkM2QzZDMgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2QzZDNkMyAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0U3BsaXR0ZXJWIHtcblx0Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNkM2QzZDMgIWltcG9ydGFudDtcblx0Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZDNkM2QzICFpbXBvcnRhbnQ7XG59XG5cbi8qIENvbnRlbnRQYW5lICovXG5cbi5kaWppdENvbnRlbnRQYW5lIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBhdXRvO1x0LyogaWYgd2UgZG9uJ3QgaGF2ZSB0aGlzIChvciBvdmVyZmxvdzpoaWRkZW4pLCB0aGVuIFdpZGdldC5yZXNpemVUbygpIGRvZXNuJ3QgbWFrZSBzZW5zZSBmb3IgQ29udGVudFBhbmUgKi9cblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG4uZGlqaXRDb250ZW50UGFuZVNpbmdsZUNoaWxkIHtcblx0Lypcblx0ICogaWYgdGhlIENvbnRlbnRQYW5lIGhvbGRzIGEgc2luZ2xlIGxheW91dCB3aWRnZXQgY2hpbGQgd2hpY2ggaXMgYmVpbmcgc2l6ZWQgdG8gbWF0Y2ggdGhlIGNvbnRlbnQgcGFuZSxcblx0ICogdGhlbiB0aGUgQ29udGVudFBhbmUgc2hvdWxkIG5ldmVyIGdldCBhIHNjcm9sbGJhciAoYnV0IGl0IGRvZXMgZHVlIHRvIGJyb3dzZXIgYnVncywgc2VlICM5NDQ5XG5cdCAqL1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZGlqaXRDb250ZW50UGFuZUxvYWRpbmcgLmRpaml0SWNvbkxvYWRpbmcsXG4uZGlqaXRDb250ZW50UGFuZUVycm9yIC5kaWppdEljb25FcnJvciB7XG5cdG1hcmdpbi1yaWdodDogOXB4O1xufVxuXG4vKiBUaXRsZVBhbmUgYW5kIEZpZWxkc2V0ICovXG5cbi5kaWppdFRpdGxlUGFuZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRpaml0RmllbGRzZXQge1xuXHRib3JkZXI6IDFweCBzb2xpZCBncmF5O1xufVxuLmRpaml0VGl0bGVQYW5lVGl0bGUsIC5kaWppdEZpZWxkc2V0VGl0bGUge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGlqaXRUaXRsZVBhbmVUaXRsZUZpeGVkT3BlbiwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZENsb3NlZCxcbi5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZE9wZW4sIC5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZENsb3NlZCB7XG5cdC8qIFRpdGxlUGFuZSBvciBGaWVsZHNldCB0aGF0IGNhbm5vdCBiZSB0b2dnbGVkICovXG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cbi5kaWppdFRpdGxlUGFuZVRpdGxlICoge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZUlubmVyLCAuZGlqaXRGaWVsZHNldCAuZGlqaXRBcnJvd05vZGVJbm5lciB7XG5cdC8qIG5vcm1hbGx5LCBoaWRlIGFycm93IHRleHQgaW4gZmF2b3Igb2YgaWNvbiAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRqX2ExMXkgLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZUlubmVyLCAuZGpfYTExeSAuZGlqaXRGaWVsZHNldCAuZGlqaXRBcnJvd05vZGVJbm5lciB7XG5cdC8qIC4uLiBleGNlcHQgaW4gYTExeSBtb2RlLCB0aGVuIHNob3cgdGV4dCBhcnJvdyAqL1xuXHRkaXNwbGF5OiBpbmxpbmU7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XHRcdC8qIGJlY2F1c2UgLSBhbmQgKyBhcmUgZGlmZmVyZW50IHdpZHRocyAqL1xufVxuLmRqX2ExMXkgLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZSwgLmRqX2ExMXkgLmRpaml0RmllbGRzZXQgLmRpaml0QXJyb3dOb2RlIHtcblx0LyogLi4uIGFuZCBoaWRlIGljb24gKFRPRE86IGp1c3QgcG9pbnQgZGlqaXRJY29uIGNsYXNzIG9uIHRoZSBpY29uLCBhbmQgaXQgaGlkZXMgYXV0b21hdGljYWxseSkgKi9cblx0ZGlzcGxheTogbm9uZTtcbn1cbi5kaWppdFRpdGxlUGFuZVRpdGxlRml4ZWRPcGVuIC5kaWppdEFycm93Tm9kZSwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZE9wZW4gLmRpaml0QXJyb3dOb2RlSW5uZXIsXG4uZGlqaXRUaXRsZVBhbmVUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZSwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZENsb3NlZCAuZGlqaXRBcnJvd05vZGVJbm5lcixcbi5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZE9wZW4gLmRpaml0QXJyb3dOb2RlLCAuZGlqaXRGaWVsZHNldFRpdGxlRml4ZWRPcGVuIC5kaWppdEFycm93Tm9kZUlubmVyLFxuLmRpaml0RmllbGRzZXRUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZSwgLmRpaml0RmllbGRzZXRUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZUlubmVyIHtcblx0LyogZG9uJ3Qgc2hvdyB0aGUgb3BlbiBjbG9zZSBpY29uIG9yIHRleHQgYXJyb3c7IGl0IG1ha2VzIHRoZSB1c2VyIHRoaW5rIHRoZSBwYW5lIGlzIGNsb3NhYmxlICovXG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcdC8qICFpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgYWJvdmUgYTExeSBydWxlcyB0byBzaG93IHRleHQgYXJyb3cgKi9cbn1cblxuLmRqX2llNiAuZGlqaXRUaXRsZVBhbmVDb250ZW50T3V0ZXIsXG4uZGpfaWU2IC5kaWppdFRpdGxlUGFuZSAuZGlqaXRUaXRsZVBhbmVUaXRsZSB7XG5cdC8qIGZvcmNlIGhhc0xheW91dCB0byBlbnN1cmUgYm9yZGVycyBldGMsIHNob3cgdXAgKi9cblx0em9vbTogMTtcbn1cblxuLyogQ29sb3IgUGFsZXR0ZVxuICogU2l6ZXMgZGVzaWduZWQgc28gdGhhdCB0YWJsZSBjZWxsIHBvc2l0aW9ucyBtYXRjaCBpY29ucyBpbiB1bmRlcmx5aW5nIGltYWdlLFxuICogd2hpY2ggYXBwZWFyIGF0IDIweDIwIGludGVydmFscy5cbiAqL1xuXG4uZGlqaXRDb2xvclBhbGV0dGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUge1xuXHQvKiBUYWJsZSB0aGF0IGhvbGRzIHRoZSBwYWxldHRlIGNlbGxzLCBhbmQgb3ZlcmxheXMgaW1hZ2UgZmlsZSB3aXRoIGNvbG9yIHN3YXRjaGVzLlxuXHQgKiBwYWRkaW5nL21hcmdpbiB0byBhbGlnbiB0YWJsZSB3aXRoIGltYWdlLlxuXHQgKi9cblx0cGFkZGluZzogMnB4IDNweCAzcHggM3B4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdG91dGxpbmU6IDA7XG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG59XG4uZGpfaWU2IC5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUsXG4uZGpfaWU3IC5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUsXG4uZGpfaWVxdWlya3MgLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVUYWJsZSB7XG5cdC8qIHVzaW5nIHBhZGRpbmcgYWJvdmUgc28gdGhhdCBmb2N1cyBib3JkZXIgaXNuJ3QgY3V0b2ZmIG9uIG1vei93ZWJraXQsXG5cdCAqIGJ1dCB1c2luZyBtYXJnaW4gb24gSUUgYmVjYXVzZSBwYWRkaW5nIGRvZXNuJ3Qgc2VlbSB0byB3b3JrXG5cdCAqL1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDJweCAzcHggM3B4IDNweDtcbn1cblxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVDZWxsIHtcblx0LyogPHRkPiBpbiB0aGUgPHRhYmxlPiAqL1xuXHRmb250LXNpemU6IDFweDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kOiBub25lO1xufVxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVJbWcge1xuXHQvKiBDYWxsZWQgZGlqaXRQYWxldHRlSW1nIGZvciBiYWNrLWNvbXBhdCwgdGhpcyBhY3R1YWxseSB3cmFwcyB0aGUgY29sb3Igc3dhdGNoIHdpdGggYSBib3JkZXIgYW5kIHBhZGRpbmcgKi9cblx0cGFkZGluZzogMXB4O1x0XHQvKiB3aGl0ZSBhcmVhIGJldHdlZW4gZ3JheSBib3JkZXIgYW5kIGNvbG9yIHN3YXRjaCAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuXHRtYXJnaW46IDJweCAxcHg7XG5cdGN1cnNvcjogZGVmYXVsdDtcblx0Zm9udC1zaXplOiAxcHg7XHRcdC8qIHByZXZlbnQgPHNwYW4+IGZyb20gZ2V0dGluZyBiaWdnZXIganVzdCB0byBob2xkIGEgY2hhcmFjdGVyICovXG59XG4uZGpfZ2Vja28gLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVJbWcge1xuXHRwYWRkaW5nLWJvdHRvbTogMDtcdC8qIHdvcmthcm91bmQgcmVuZGVyaW5nIGdsaXRjaCBvbiBGRiwgaXQgYWRkcyBhbiBleHRyYSBwaXhlbCBhdCB0aGUgYm90dG9tICovXG59XG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0Q29sb3JQYWxldHRlU3dhdGNoIHtcblx0LyogdGhlIGFjdHVhbCBwYXJ0IHdoZXJlIHRoZSBjb2xvciBpcyAqL1xuXHR3aWR0aDogMTRweDtcblx0aGVpZ2h0OiAxMnB4O1xufVxuLmRpaml0UGFsZXR0ZVRhYmxlIHRkIHtcblx0XHRwYWRkaW5nOiAwO1xufVxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVDZWxsOmhvdmVyIC5kaWppdFBhbGV0dGVJbWcge1xuXHQvKiBob3ZlcmVkIGNvbG9yIHN3YXRjaCAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xufVxuXG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZUNlbGw6YWN0aXZlIC5kaWppdFBhbGV0dGVJbWcsXG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZVRhYmxlIC5kaWppdFBhbGV0dGVDZWxsU2VsZWN0ZWQgLmRpaml0UGFsZXR0ZUltZyB7XG5cdGJvcmRlcjogMnB4IHNvbGlkICMwMDA7XG5cdG1hcmdpbjogMXB4IDA7XHQvKiByZWR1Y2UgbWFyZ2luIHRvIGNvbXBlbnNhdGUgZm9yIGluY3JlYXNlZCBib3JkZXIgKi9cbn1cblxuXG4uZGpfYTExeSAuZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZVRhYmxlLFxuLmRqX2ExMXkgLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVUYWJsZSAqIHtcblx0LyogdGFibGUgY2VsbHMgYXJlIHRvIGNhdGNoIGV2ZW50cywgYnV0IHRoZSBzd2F0Y2hlcyBhcmUgaW4gdGhlIFBhbGV0dGVJbWcgYmVoaW5kIHRoZSB0YWJsZSAqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKiBBY2NvcmRpb25Db250YWluZXIgKi9cblxuLmRpaml0QWNjb3JkaW9uQ29udGFpbmVyIHtcblx0Ym9yZGVyOjFweCBzb2xpZCAjYjdiN2I3O1xuXHRib3JkZXItdG9wOjAgIWltcG9ydGFudDtcbn1cbi5kaWppdEFjY29yZGlvblRpdGxlIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0QWNjb3JkaW9uVGl0bGVTZWxlY3RlZCB7XG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyogaW1hZ2VzIG9mZiwgaGlnaC1jb250cmFzdCBtb2RlIHN0eWxlcyAqL1xuLmRpaml0QWNjb3JkaW9uVGl0bGUgLmFycm93VGV4dFVwLFxuLmRpaml0QWNjb3JkaW9uVGl0bGUgLmFycm93VGV4dERvd24ge1xuXHRkaXNwbGF5OiBub25lO1xuXHRmb250LXNpemU6IDAuNjVlbTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZSAuYXJyb3dUZXh0VXAsXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZVNlbGVjdGVkIC5hcnJvd1RleHREb3duIHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZVNlbGVjdGVkIC5hcnJvd1RleHRVcCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kaWppdEFjY29yZGlvbkNoaWxkV3JhcHBlciB7XG5cdC8qIHRoaXMgaXMgdGhlIG5vZGUgd2hvc2UgaGVpZ2h0IGlzIGFkanVzdGVkICovXG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIENhbGVuZGFyICovXG5cbi5kaWppdENhbGVuZGFyQ29udGFpbmVyIHRhYmxlIHtcblx0d2lkdGg6IGF1dG87XHQvKiBpbiBjYXNlIHVzZXIgaGFzIHNwZWNpZmllZCBhIHdpZHRoIGZvciB0aGUgVEFCTEUgbm9kZXMsIHNlZSAjMTA1NTMgKi9cblx0Y2xlYXI6IGJvdGg7ICAgIC8qIGNsZWFyIG1hcmdpbiBjcmVhdGVkIGZvciBsZWZ0L3JpZ2h0IG1vbnRoIGFycm93czsgbmVlZGVkIG9uIElFMTAgZm9yIENhbGVuZGFyTGl0ZSAqL1xufVxuLmRpaml0Q2FsZW5kYXJDb250YWluZXIgdGgsIC5kaWppdENhbGVuZGFyQ29udGFpbmVyIHRkIHtcblx0cGFkZGluZzogMDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRpaml0Q2FsZW5kYXJNb250aENvbnRhaW5lciB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5kaWppdENhbGVuZGFyRGVjcmVtZW50QXJyb3cge1xuXHRmbG9hdDogbGVmdDtcbn1cbi5kaWppdENhbGVuZGFySW5jcmVtZW50QXJyb3cge1xuXHRmbG9hdDogcmlnaHQ7XG59XG5cbi5kaWppdENhbGVuZGFyWWVhckxhYmVsIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyAgICAvKiBtYWtlIHN1cmUgcHJldmlvdXMsIGN1cnJlbnQsIGFuZCBuZXh0IHllYXIgYXBwZWFyIG9uIHNhbWUgcm93ICovXG59XG5cbi5kaWppdENhbGVuZGFyTmV4dFllYXIge1xuXHRtYXJnaW46MCAwIDAgMC41NWVtO1xufVxuXG4uZGlqaXRDYWxlbmRhclByZXZpb3VzWWVhciB7XG5cdG1hcmdpbjowIDAuNTVlbSAwIDA7XG59XG5cbi5kaWppdENhbGVuZGFySW5jcmVtZW50Q29udHJvbCB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kaWppdENhbGVuZGFySW5jcmVtZW50Q29udHJvbCxcbi5kaWppdENhbGVuZGFyRGF0ZVRlbXBsYXRlLFxuLmRpaml0Q2FsZW5kYXJNb250aExhYmVsLFxuLmRpaml0Q2FsZW5kYXJQcmV2aW91c1llYXIsXG4uZGlqaXRDYWxlbmRhck5leHRZZWFyIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGlqaXRDYWxlbmRhckRpc2FibGVkRGF0ZSB7XG5cdGNvbG9yOiBncmF5O1xuXHR0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZGlqaXRTcGFjZXIge1xuXHQvKiBkb24ndCBkaXNwbGF5IGl0LCBidXQgbWFrZSBpdCBhZmZlY3QgdGhlIHdpZHRoICovXG4gIFx0cG9zaXRpb246IHJlbGF0aXZlO1xuICBcdGhlaWdodDogMXB4O1xuICBcdG92ZXJmbG93OiBoaWRkZW47XG4gIFx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vKiBTdHlsaW5nIGZvciBtb250aCBkcm9wIGRvd24gbGlzdCAqL1xuXG4uZGlqaXRDYWxlbmRhck1vbnRoTWVudSAuZGlqaXRDYWxlbmRhck1vbnRoTGFiZWwge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcbn1cblxuLyogTWVudSAqL1xuXG4uZGlqaXRNZW51IHtcblx0Ym9yZGVyOjFweCBzb2xpZCBibGFjaztcblx0YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtcbn1cbi5kaWppdE1lbnVUYWJsZSB7XG5cdGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtcblx0Ym9yZGVyLXdpZHRoOjA7XG5cdGJhY2tncm91bmQtY29sb3I6d2hpdGU7XG59XG5cbi8qIHdvcmthcm91bmQgZm9yIHdlYmtpdCBidWcgIzg0MjcsIHJlbW92ZSB0aGlzIHdoZW4gaXQgaXMgZml4ZWQgdXBzdHJlYW0gKi9cbi5kal93ZWJraXQgLmRpaml0TWVudVRhYmxlIHRkW2NvbHNwYW49XCIyXCJde1xuXHRib3JkZXItcmlnaHQ6aGlkZGVuO1xufVxuXG4uZGlqaXRNZW51SXRlbSB7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdHBhZGRpbmc6LjFlbSAuMmVtO1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLypcbk5vIG5lZWQgdG8gc2hvdyBhIGZvY3VzIGJvcmRlciBzaW5jZSBpdCdzIG9idmlvdXMgZnJvbSB0aGUgc2hhZGluZywgYW5kIHRoZXJlJ3MgYSAuZGpfYTExeSAuZGlqaXRNZW51SXRlbVNlbGVjdGVkXG5ydWxlIGJlbG93IHRoYXQgaGFuZGxlcyB0aGUgaGlnaCBjb250cmFzdCBjYXNlIHdoZW4gdGhlcmUncyBubyBzaGFkaW5nLlxuSGlkaW5nIHRoZSBmb2N1cyBib3JkZXIgYWxzbyB3b3JrcyBhcm91bmQgd2Via2l0IGJ1ZyBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTI1Nzc5LlxuKi9cbi5kaWppdE1lbnVJdGVtOmZvY3VzIHtcblx0b3V0bGluZTogbm9uZVxufVxuXG4uZGlqaXRNZW51UGFzc2l2ZSAuZGlqaXRNZW51SXRlbUhvdmVyLFxuLmRpaml0TWVudUl0ZW1TZWxlY3RlZCB7XG5cdC8qXG5cdCAqIGRpaml0TWVudUl0ZW1Ib3ZlciByZWZlcnMgdG8gYWN0dWFsIG1vdXNlIG92ZXJcblx0ICogZGlqaXRNZW51SXRlbVNlbGVjdGVkIGlzIHVzZWQgYWZ0ZXIgYSBtZW51IGhhcyBiZWVuIFwiYWN0aXZhdGVkXCIgYnlcblx0ICogY2xpY2tpbmcgaXQsIHRhYmJpbmcgaW50byBpdCwgb3IgYmVpbmcgb3BlbmVkIGZyb20gYSBwYXJlbnQgbWVudSxcblx0ICogYW5kIGRlbm90ZXMgdGhhdCB0aGUgbWVudSBpdGVtIGhhcyBmb2N1cyBvciB0aGF0IGZvY3VzIGlzIG9uIGEgY2hpbGRcblx0ICogbWVudVxuXHQgKi9cblx0YmFja2dyb3VuZC1jb2xvcjpibGFjaztcblx0Y29sb3I6d2hpdGU7XG59XG5cbi5kaWppdE1lbnVJdGVtSWNvbiwgLmRpaml0TWVudUV4cGFuZCB7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi5kaWppdE1lbnVJdGVtRGlzYWJsZWQgKiB7XG5cdC8qIGZvciBhIGRpc2FibGVkIG1lbnUgaXRlbSwganVzdCBzZXQgaXQgdG8gbW9zdGx5IHRyYW5zcGFyZW50ICovXG5cdG9wYWNpdHk6MC41O1xuXHRjdXJzb3I6ZGVmYXVsdDtcbn1cbi5kal9pZSAuZGpfYTExeSAuZGlqaXRNZW51SXRlbURpc2FibGVkLFxuLmRqX2llIC5kal9hMTF5IC5kaWppdE1lbnVJdGVtRGlzYWJsZWQgKixcbi5kal9pZSAuZGlqaXRNZW51SXRlbURpc2FibGVkICoge1xuXHRjb2xvcjogZ3JheTtcblx0ZmlsdGVyOiBhbHBoYShvcGFjaXR5PTM1KTtcbn1cblxuLmRpaml0TWVudUl0ZW1MYWJlbCB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kal9hMTF5IC5kaWppdE1lbnVJdGVtU2VsZWN0ZWQge1xuXHRib3JkZXI6IDFweCBkb3R0ZWQgYmxhY2sgIWltcG9ydGFudDtcdC8qIGZvciAyLjAgdXNlIG91dGxpbmUgaW5zdGVhZCwgdG8gcHJldmVudCBqaXR0ZXIgKi9cbn1cblxuLmRqX2ExMXkgLmRpaml0TWVudUl0ZW1TZWxlY3RlZCAuZGlqaXRNZW51SXRlbUxhYmVsIHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZGpfaWU4IC5kal9hMTF5IC5kaWppdE1lbnVJdGVtTGFiZWwge1xuXHRwb3NpdGlvbjpzdGF0aWM7XG59XG5cbi5kaWppdE1lbnVFeHBhbmRBMTF5IHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi5kal9hMTF5IC5kaWppdE1lbnVFeHBhbmRBMTF5IHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGlqaXRNZW51U2VwYXJhdG9yIHRkIHtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKiBzZXBhcmF0b3IgY2FuIGJlIHR3byBwaXhlbHMgLS0gc2V0IGJvcmRlciBvZiBlaXRoZXIgb25lIHRvIDAgdG8gaGF2ZSBvbmx5IG9uZSAqL1xuLmRpaml0TWVudVNlcGFyYXRvclRvcCB7XG5cdGhlaWdodDogNTAlO1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi10b3A6M3B4O1xuXHRmb250LXNpemU6IDFweDtcbn1cblxuLmRpaml0TWVudVNlcGFyYXRvckJvdHRvbSB7XG5cdGhlaWdodDogNTAlO1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi1ib3R0b206M3B4O1xuXHRmb250LXNpemU6IDFweDtcbn1cblxuLyogQ2hlY2tlZE1lbnVJdGVtIGFuZCBSYWRpb01lbnVJdGVtICovXG4uZGlqaXRNZW51SXRlbUljb25DaGFyIHtcblx0ZGlzcGxheTogbm9uZTtcdFx0LyogZG9uJ3QgZGlzcGxheSBleGNlcHQgaW4gaGlnaCBjb250cmFzdCBtb2RlICovXG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcdC8qIGZvciBoaWdoIGNvbnRyYXN0IG1vZGUgd2hlbiBtZW51aXRlbSBpcyB1bmNoZWNrZWQ6IGxlYXZlIHNwYWNlIGZvciB3aGVuIGl0IGlzIGNoZWNrZWQgKi9cbn1cbi5kal9hMTF5IC5kaWppdE1lbnVJdGVtSWNvbkNoYXIge1xuXHRkaXNwbGF5OiBpbmxpbmU7XHQvKiBkaXNwbGF5IGNoYXJhY3RlciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUsIHNpbmNlIGljb24gZG9lc24ndCBzaG93ICovXG59XG4uZGlqaXRDaGVja2VkTWVudUl0ZW1DaGVja2VkIC5kaWppdE1lbnVJdGVtSWNvbkNoYXIsXG4uZGlqaXRSYWRpb01lbnVJdGVtQ2hlY2tlZCAuZGlqaXRNZW51SXRlbUljb25DaGFyIHtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTsgLyogbWVudWl0ZW0gaXMgY2hlY2tlZCAqL1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdE1lbnVCYXIgLmRpaml0TWVudUl0ZW0ge1xuXHQvKiBzbyBib3R0b20gYm9yZGVyIG9mIE1lbnVCYXIgYXBwZWFycyBvbiBJRTcgaW4gaGlnaC1jb250cmFzdCBtb2RlICovXG5cdG1hcmdpbjogMDtcbn1cblxuLyogU3RhY2tDb250YWluZXIgKi9cblxuLmRpaml0U3RhY2tDb250cm9sbGVyIC5kaWppdFRvZ2dsZUJ1dHRvbkNoZWNrZWQgKiB7XG5cdGN1cnNvcjogZGVmYXVsdDtcdC8qIGJlY2F1c2UgcHJlc3NpbmcgaXQgaGFzIG5vIGVmZmVjdCAqL1xufVxuXG4vKioqXG5UYWJDb250YWluZXJcblxuTWFpbiBjbGFzcyBoaWVyYXJjaHk6XG5cbi5kaWppdFRhYkNvbnRhaW5lciAtIHRoZSB3aG9sZSBUYWJDb250YWluZXJcbiAgIC5kaWppdFRhYkNvbnRyb2xsZXIgLyAuZGlqaXRUYWJMaXN0Q29udGFpbmVyLXRvcCAtIHdyYXBwZXIgZm9yIHRhYiBidXR0b25zLCBzY3JvbGwgYnV0dG9uc1xuXHQgLmRpaml0VGFiTGlzdFdyYXBwZXIgLyAuZGlqaXRUYWJDb250YWluZXJUb3BTdHJpcCAtIG91dGVyIHdyYXBwZXIgZm9yIHRhYiBidXR0b25zIChub3JtYWwgd2lkdGgpXG5cdFx0Lm5vd3JhcFRhYlN0cmlwIC8gLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgLSBpbm5lciB3cmFwcGVyIGZvciB0YWIgYnV0dG9ucyAoNTBLIHdpZHRoKVxuICAgLmRpaml0VGFiUGFuZVdyYXBwZXIgLSB3cmFwcGVyIGZvciBjb250ZW50IHBhbmVzLCBoYXMgYWxsIGJvcmRlcnMgZXhjZXB0IHRoZSBvbmUgYmV0d2VlbiBjb250ZW50IGFuZCB0YWJzXG4qKiovXG5cbi5kaWppdFRhYkNvbnRhaW5lciB7XG4gICAgei1pbmRleDogMDsgLyogc28gei1pbmRleCBzZXR0aW5ncyBiZWxvdyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIG9mIHRoZSBUYWJDb250YWluZXIgKi9cbiAgICBvdmVyZmxvdzogdmlzaWJsZTsgLyogcHJldmVudCBvZmYtYnktb25lLXBpeGVsIGVycm9ycyBmcm9tIGhpZGluZyBib3R0b20gYm9yZGVyIChvcHBvc2l0ZSB0YWIgbGFiZWxzKSAqL1xufVxuLmRqX2llNiAuZGlqaXRUYWJDb250YWluZXIge1xuICAgIC8qIHdvcmthcm91bmQgSUU2IHByb2JsZW0gd2hlbiB0YWxsIGNvbnRlbnQgb3ZlcmZsb3dzIFRhYkNvbnRhaW5lciwgc2VlIGVkaXRvci90ZXN0X0Z1bGxTY3JlZW4uaHRtbCAqL1xuICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxufVxuLmRpaml0VGFiQ29udGFpbmVyTm9MYXlvdXQge1xuXHR3aWR0aDogMTAwJTtcdC8qIG90aGVyd2lzZSBTY3JvbGxpbmdUYWJDb250cm9sbGVyIGdvZXMgdG8gNTBLIHBpeGVscyB3aWRlICovXG59XG5cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzLFxuLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMsXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMsXG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIHtcbiAgICB6LWluZGV4OiAxO1xuXHRvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OyAgLyogc28gdGFicyBjYW4gY292ZXIgdXAgYm9yZGVyIGFkamFjZW50IHRvIGNvbnRhaW5lciAqL1xufVxuXG4uZGlqaXRUYWJDb250cm9sbGVyIHtcbiAgICB6LWluZGV4OiAxO1xufVxuLmRpaml0VGFiQ29udGFpbmVyQm90dG9tLWNvbnRhaW5lcixcbi5kaWppdFRhYkNvbnRhaW5lclRvcC1jb250YWluZXIsXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LWNvbnRhaW5lcixcbi5kaWppdFRhYkNvbnRhaW5lclJpZ2h0LWNvbnRhaW5lciB7XG5cdHotaW5kZXg6MDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0Ym9yZGVyOiAxcHggc29saWQgYmxhY2s7XG59XG4ubm93cmFwVGFiU3RyaXAge1xuXHR3aWR0aDogNTAwMDBweDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyAgLyoganVzdCBpbiBjYXNlIGFuY2VzdG9yIGhhcyBub24tc3RhbmRhcmQgc2V0dGluZyAqL1xuICAgIHotaW5kZXg6IDE7XG59XG4uZGlqaXRUYWJMaXN0V3JhcHBlciB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogMTtcbn1cblxuLmRqX2ExMXkgLnRhYlN0cmlwQnV0dG9uIGltZyB7XG5cdC8qIGhpZGUgdGhlIGljb25zIChvciByYXRoZXIgdGhlIGVtcHR5IHNwYWNlIHdoZXJlIHRoZXkgbm9ybWFsbHkgYXBwZWFyKSBiZWNhdXNlIHRleHQgd2lsbCBhcHBlYXIgaW5zdGVhZCAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJUb3AtdGFicyB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjaztcbn1cbi5kaWppdFRhYkNvbnRhaW5lclRvcC1jb250YWluZXIge1xuXHRib3JkZXItdG9wOiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMge1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBibGFjaztcblx0ZmxvYXQ6IGxlZnQ7ICAgIC8qIG5lZWRlZCBmb3IgSUU3IFJUTCBtb2RlICovXG59XG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LWNvbnRhaW5lciB7XG5cdGJvcmRlci1sZWZ0OiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJCb3R0b20tdGFicyB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjaztcbn1cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS1jb250YWluZXIge1xuXHRib3JkZXItYm90dG9tOiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIHtcblx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCBibGFjaztcblx0ZmxvYXQ6IGxlZnQ7ICAgIC8qIG5lZWRlZCBmb3IgSUU3IFJUTCBtb2RlICovXG59XG4uZGlqaXRUYWJDb250YWluZXJSaWdodC1jb250YWluZXIge1xuXHRib3JkZXItcmlnaHQ6IDA7XG59XG5cbmRpdi5kaWppdFRhYkRpc2FibGVkLCAuZGpfaWUgZGl2LmRpaml0VGFiRGlzYWJsZWQge1xuXHRjdXJzb3I6IGF1dG87XG59XG5cbi5kaWppdFRhYiB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcblx0d2hpdGUtc3BhY2U6bm93cmFwO1xuXHR6LWluZGV4OjM7XG59XG4uZGlqaXRUYWIgKiB7XG5cdC8qIG1ha2UgdGFiIGljb25zIGFuZCBjbG9zZSBpY29uIGxpbmUgdXAgdy90ZXh0ICovXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uZGlqaXRUYWJDaGVja2VkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1x0LyogYmVjYXVzZSBjbGlja2luZyB3aWxsIGhhdmUgbm8gZWZmZWN0ICovXG59XG5cbi5kaWppdFRhYkNvbnRhaW5lclRvcC10YWJzIC5kaWppdFRhYiB7XG5cdHRvcDogMXB4O1x0LyogdG8gb3ZlcmxhcCBib3JkZXIgb24gLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgKi9cbn1cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzIC5kaWppdFRhYiB7XG5cdHRvcDogLTFweDtcdC8qIHRvIG92ZXJsYXAgYm9yZGVyIG9uIC5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzICovXG59XG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMgLmRpaml0VGFiIHtcblx0bGVmdDogMXB4O1x0LyogdG8gb3ZlcmxhcCBib3JkZXIgb24gLmRpaml0VGFiQ29udGFpbmVyTGVmdC10YWJzICovXG59XG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIC5kaWppdFRhYiB7XG5cdGxlZnQ6IC0xcHg7XHQvKiB0byBvdmVybGFwIGJvcmRlciBvbiAuZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzICovXG59XG5cblxuLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgLmRpaml0VGFiLFxuLmRpaml0VGFiQ29udGFpbmVyQm90dG9tLXRhYnMgLmRpaml0VGFiIHtcblx0LyogSW5saW5lLWJsb2NrICovXG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1x0XHRcdC8qIHdlYmtpdCBhbmQgRkYzICovXG5cdCN6b29tOiAxOyAvKiBzZXQgaGFzTGF5b3V0OnRydWUgdG8gbWltaWMgaW5saW5lLWJsb2NrICovXG5cdCNkaXNwbGF5OmlubGluZTsgLyogZG9uJ3QgdXNlIC5kal9pZSBzaW5jZSB0aGF0IGluY3JlYXNlcyB0aGUgcHJpb3JpdHkgKi9cbn1cblxuLnRhYlN0cmlwQnV0dG9uIHtcblx0ei1pbmRleDogMTI7XG59XG5cbi5kaWppdFRhYkJ1dHRvbkRpc2FibGVkIC50YWJTdHJpcEJ1dHRvbiB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cblxuLmRpaml0VGFiQ2xvc2VCdXR0b24ge1xuXHRtYXJnaW4tbGVmdDogMWVtO1xufVxuXG4uZGlqaXRUYWJDbG9zZVRleHQge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi5kaWppdFRhYiAudGFiTGFiZWwge1xuXHQvKiBtYWtlIHN1cmUgdGFicyB3L2Nsb3NlIGJ1dHRvbiBhbmQgdy9vdXQgY2xvc2UgYnV0dG9uIGFyZSBzYW1lIGhlaWdodCwgZXZlbiB3L3NtYWxsICg8MTVweCkgZm9udC5cblx0ICogYXNzdW1lcyA8PTE1cHggaGVpZ2h0IGZvciBjbG9zZSBidXR0b24gaWNvbi5cblx0ICovXG5cdG1pbi1oZWlnaHQ6IDE1cHg7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5kaWppdE5vSWNvbiB7XG5cdC8qIGFwcGxpZWQgdG8gPGltZz4vPHNwYW4+IG5vZGUgd2hlbiB0aGVyZSBpcyBubyBpY29uIHNwZWNpZmllZCAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRqX2llNiAuZGlqaXRUYWIgLmRpaml0Tm9JY29uIHtcblx0LyogYmVjYXVzZSBtaW4taGVpZ2h0IChvbiAudGFiTGFiZWwsIGFib3ZlKSBkb2Vzbid0IHdvcmsgb24gSUU2ICovXG5cdGRpc3BsYXk6IGlubGluZTtcblx0aGVpZ2h0OiAxNXB4O1xuXHR3aWR0aDogMXB4O1xufVxuXG4vKiBpbWFnZXMgb2ZmLCBoaWdoLWNvbnRyYXN0IG1vZGUgc3R5bGVzICovXG5cbi5kal9hMTF5IC5kaWppdFRhYkNsb3NlQnV0dG9uIHtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHR3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmRqX2ExMXkgLmRpaml0VGFiQ2xvc2VUZXh0IHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGlqaXRUYWJQYW5lLFxuLmRpaml0U3RhY2tDb250YWluZXItY2hpbGQsXG4uZGlqaXRBY2NvcmRpb25Db250YWluZXItY2hpbGQge1xuXHQvKiBjaGlsZHJlbiBvZiBUYWJDb250YWluZXIsIFN0YWNrQ29udGFpbmVyLCBhbmQgQWNjb3JkaW9uQ29udGFpbmVyIHNob3VsZG4ndCBoYXZlIGJvcmRlcnNcblx0ICogYi9jIGEgYm9yZGVyIGlzIGFscmVhZHkgdGhlcmUgZnJvbSB0aGUgVGFiQ29udGFpbmVyL1N0YWNrQ29udGFpbmVyL0FjY29yZGlvbkNvbnRhaW5lciBpdHNlbGYuXG5cdCAqL1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBJbmxpbmVFZGl0Qm94ICovXG4uZGlqaXRJbmxpbmVFZGl0Qm94RGlzcGxheU1vZGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcdC8qIHNvIGtleWxpbmUgKGJvcmRlcikgb24gaG92ZXIgY2FuIGFwcGVhciB3aXRob3V0IHNjcmVlbiBqdW1wICovXG5cdGN1cnNvcjogdGV4dDtcbn1cblxuLmRqX2ExMXkgLmRpaml0SW5saW5lRWRpdEJveERpc3BsYXlNb2RlLFxuLmRqX2llNiAuZGlqaXRJbmxpbmVFZGl0Qm94RGlzcGxheU1vZGUge1xuXHQvKiBleGNlcHQgdGhhdCBJRTYgZG9lc24ndCBzdXBwb3J0IHRyYW5zcGFyZW50IGJvcmRlcnMsIG5vciBkb2VzIGhpZ2ggY29udHJhc3QgbW9kZSAqL1xuXHRib3JkZXI6IG5vbmU7XG59XG5cbi5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZUhvdmVyLFxuLmRqX2ExMXkgLmRpaml0SW5saW5lRWRpdEJveERpc3BsYXlNb2RlSG92ZXIsXG4uZGpfaWU2IC5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZUhvdmVyIHtcblx0LyogQW4gSW5saW5lRWRpdEJveCBpbiB2aWV3IG1vZGUgKGNsaWNrIHRoaXMgdG8gZWRpdCB0aGUgdGV4dCkgKi9cblx0YmFja2dyb3VuZC1jb2xvcjogI2UyZWJmMjtcblx0Ym9yZGVyOiBzb2xpZCAxcHggYmxhY2s7XG59XG5cbi5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZURpc2FibGVkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBUcmVlICovXG4uZGlqaXRUcmVlIHtcblx0b3ZlcmZsb3c6IGF1dG87XHQvKiBmb3Igc2Nyb2xsYmFycyB3aGVuIFRyZWUgaGFzIGEgaGVpZ2h0IHNldHRpbmcsIGFuZCB0byBwcmV2ZW50IHdyYXBwaW5nIGFyb3VuZCBmbG9hdCBlbGVtZW50cywgc2VlICMxMTQ5MSAqL1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGlqaXRUcmVlQ29udGFpbmVyIHtcblx0ZmxvYXQ6IGxlZnQ7XHQvKiBmb3IgY29ycmVjdCBoaWdobGlnaHRpbmcgZHVyaW5nIGhvcml6b250YWwgc2Nyb2xsLCBzZWUgIzE2MTMyICovXG59XG5cbi5kaWppdFRyZWVJbmRlbnQge1xuXHQvKiBhbW91bnQgdG8gaW5kZW50IGVhY2ggdHJlZSBub2RlIChyZWxhdGl2ZSB0byBwYXJlbnQgbm9kZSkgKi9cblx0d2lkdGg6IDE5cHg7XG59XG5cbi5kaWppdFRyZWVSb3csIC5kaWppdFRyZWVDb250ZW50IHtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmRqX2llIC5kaWppdFRyZWVMYWJlbDpmb2N1cyB7XG5cdC8qIHdvcmthcm91bmQgSUU5IGJlaGF2aW9yIHdoZXJlIGRvd24gYXJyb3dpbmcgdGhyb3VnaCBUcmVlTm9kZXMgZG9lc24ndCBzaG93IGZvY3VzIG91dGxpbmUgKi9cblx0b3V0bGluZTogMXB4IGRvdHRlZCBibGFjaztcbn1cblxuLmRpaml0VHJlZVJvdyBpbWcge1xuXHQvKiBtYWtlIHRoZSBleHBhbmRvIGFuZCBmb2xkZXIgaWNvbnMgbGluZSB1cCB3aXRoIHRoZSBsYWJlbCAqL1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uZGlqaXRUcmVlQ29udGVudCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZGlqaXRFeHBhbmRvVGV4dCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kal9hMTF5IC5kaWppdEV4cGFuZG9UZXh0IHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogdGhpbjtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZGlqaXRUcmVlTGFiZWwge1xuXHRtYXJnaW46IDAgNHB4O1xufVxuXG4vKiBEaWFsb2cgKi9cblxuLmRpaml0RGlhbG9nIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiA5OTk7XG5cdG92ZXJmbG93OiBoaWRkZW47XHQvKiBvdmVycmlkZSBvdmVyZmxvdzogYXV0bzsgZnJvbSBDb250ZW50UGFuZSB0byBtYWtlIGRyYWdnaW5nIHNtb290aGVyICovXG59XG5cbi5kaWppdERpYWxvZ1RpdGxlQmFyIHtcblx0Y3Vyc29yOiBtb3ZlO1xufVxuLmRpaml0RGlhbG9nRml4ZWQgLmRpaml0RGlhbG9nVGl0bGVCYXIge1xuXHRjdXJzb3I6ZGVmYXVsdDtcbn1cbi5kaWppdERpYWxvZ0Nsb3NlSWNvbiB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kaWppdERpYWxvZ1BhbmVDb250ZW50IHtcblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuLmRpaml0RGlhbG9nVW5kZXJsYXlXcmFwcGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdHotaW5kZXg6IDk5ODtcblx0ZGlzcGxheTogbm9uZTtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuLmRpaml0RGlhbG9nVW5kZXJsYXkge1xuXHRiYWNrZ3JvdW5kOiAjZWVlO1xuXHRvcGFjaXR5OiAwLjU7XG59XG5cbi5kal9pZSAuZGlqaXREaWFsb2dVbmRlcmxheSB7XG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7XG59XG5cbi8qIGltYWdlcyBvZmYsIGhpZ2gtY29udHJhc3QgbW9kZSBzdHlsZXMgKi9cbi5kal9hMTF5IC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGpfYTExeSAuZGlqaXREaWFsb2cge1xuXHRvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdERpYWxvZyAuY2xvc2VUZXh0IHtcblx0ZGlzcGxheTpub25lO1xuXHQvKiBmb3IgdGhlIG9uaG92ZXIgYm9yZGVyIGluIGhpZ2ggY29udHJhc3Qgb24gSUU6ICovXG5cdHBvc2l0aW9uOmFic29sdXRlO1xufVxuXG4uZGpfYTExeSAuZGlqaXREaWFsb2cgLmNsb3NlVGV4dCB7XG5cdGRpc3BsYXk6aW5saW5lO1xufVxuXG4vKiBTbGlkZXIgKi9cblxuLmRpaml0U2xpZGVyTW92ZWFibGUge1xuXHR6LWluZGV4Ojk5O1xuXHRwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50O1xuXHRkaXNwbGF5OmJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG59XG5cbi5kaWppdFNsaWRlck1vdmVhYmxlSCB7XG5cdHJpZ2h0OjA7XG59XG4uZGlqaXRTbGlkZXJNb3ZlYWJsZVYge1xuXHRyaWdodDo1MCU7XG59XG5cbi5kal9hMTF5IGRpdi5kaWppdFNsaWRlckltYWdlSGFuZGxlLFxuLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRtYXJnaW46MDtcblx0cGFkZGluZzowO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZSAhaW1wb3J0YW50O1xuXHRib3JkZXI6OHB4IHNvbGlkIGdyYXk7XG5cdHdpZHRoOjA7XG5cdGhlaWdodDowO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRqX2ExMXkgLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRmb250LXNpemU6IDA7XG59XG4uZGpfaWU3IC5kaWppdFNsaWRlckltYWdlSGFuZGxlIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjsgLyogSUU3IHdvcmthcm91bmQgdG8gbWFrZSBzbGlkZXIgaGFuZGxlIFZJU0lCTEUgaW4gbm9uLWExMXkgbW9kZSAqL1xufVxuLmRqX2llNyAuZGpfYTExeSAuZGlqaXRTbGlkZXJJbWFnZUhhbmRsZSB7XG5cdG92ZXJmbG93OiB2aXNpYmxlOyAvKiBJRTcgd29ya2Fyb3VuZCB0byBtYWtlIHNsaWRlciBoYW5kbGUgVklTSUJMRSBpbiBhMTF5IG1vZGUgKi9cbn1cbi5kal9hMTF5IC5kaWppdFNsaWRlckZvY3VzZWQgLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRib3JkZXI6NHB4IHNvbGlkICMwMDA7XG5cdGhlaWdodDo4cHg7XG5cdHdpZHRoOjhweDtcbn1cblxuLmRpaml0U2xpZGVySW1hZ2VIYW5kbGVWIHtcblx0dG9wOi04cHg7XG5cdHJpZ2h0OiAtNTAlO1xufVxuXG4uZGlqaXRTbGlkZXJJbWFnZUhhbmRsZUgge1xuXHRsZWZ0OjUwJTtcblx0dG9wOi01cHg7XG5cdHZlcnRpY2FsLWFsaWduOnRvcDtcbn1cblxuLmRpaml0U2xpZGVyQmFyIHtcblx0Ym9yZGVyLXN0eWxlOnNvbGlkO1xuXHRib3JkZXItY29sb3I6YmxhY2s7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmRpaml0U2xpZGVyQmFyQ29udGFpbmVyViB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRoZWlnaHQ6MTAwJTtcblx0ei1pbmRleDoxO1xufVxuXG4uZGlqaXRTbGlkZXJCYXJDb250YWluZXJIIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdHotaW5kZXg6MTtcbn1cblxuLmRpaml0U2xpZGVyQmFySCB7XG5cdGhlaWdodDo0cHg7XG5cdGJvcmRlci13aWR0aDoxcHggMDtcbn1cblxuLmRpaml0U2xpZGVyQmFyViB7XG5cdHdpZHRoOjRweDtcblx0Ym9yZGVyLXdpZHRoOjAgMXB4O1xufVxuXG4uZGlqaXRTbGlkZXJQcm9ncmVzc0JhciB7XG5cdGJhY2tncm91bmQtY29sb3I6cmVkO1xuXHR6LWluZGV4OjE7XG59XG5cbi5kaWppdFNsaWRlclByb2dyZXNzQmFyViB7XG5cdHBvc2l0aW9uOnN0YXRpYyAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6MDtcblx0dmVydGljYWwtYWxpZ246dG9wO1xuXHR0ZXh0LWFsaWduOmxlZnQ7XG59XG5cbi5kaWppdFNsaWRlclByb2dyZXNzQmFySCB7XG5cdHBvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHdpZHRoOjA7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0b3ZlcmZsb3c6dmlzaWJsZTtcbn1cblxuLmRpaml0U2xpZGVyUmVtYWluaW5nQmFyIHtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xuXHR6LWluZGV4OjE7XG59XG5cbi5kaWppdFNsaWRlclJlbWFpbmluZ0JhclYge1xuXHRoZWlnaHQ6MTAwJTtcblx0dGV4dC1hbGlnbjpsZWZ0O1xufVxuXG4uZGlqaXRTbGlkZXJSZW1haW5pbmdCYXJIIHtcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xufVxuXG4vKiB0aGUgc2xpZGVyIGJ1bXBlciBpcyB0aGUgc3BhY2UgY29uc3VtZWQgYnkgdGhlIHNsaWRlciBoYW5kbGUgd2hlbiBpdCBoYW5ncyBvdmVyIGFuIGVkZ2UgKi9cbi5kaWppdFNsaWRlckJ1bXBlciB7XG5cdG92ZXJmbG93OmhpZGRlbjtcblx0ei1pbmRleDoxO1xufVxuXG4uZGlqaXRTbGlkZXJCdW1wZXJWIHtcblx0d2lkdGg6NHB4O1xuXHRoZWlnaHQ6OHB4O1xuXHRib3JkZXItd2lkdGg6MCAxcHg7XG59XG5cbi5kaWppdFNsaWRlckJ1bXBlckgge1xuXHR3aWR0aDo4cHg7XG5cdGhlaWdodDo0cHg7XG5cdGJvcmRlci13aWR0aDoxcHggMDtcbn1cblxuLmRpaml0U2xpZGVyQm90dG9tQnVtcGVyLFxuLmRpaml0U2xpZGVyTGVmdEJ1bXBlciB7XG5cdGJhY2tncm91bmQtY29sb3I6cmVkO1xufVxuXG4uZGlqaXRTbGlkZXJUb3BCdW1wZXIsXG4uZGlqaXRTbGlkZXJSaWdodEJ1bXBlciB7XG5cdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XG59XG5cbi5kaWppdFNsaWRlckRlY29yYXRpb24ge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvbkMsXG4uZGlqaXRTbGlkZXJEZWNvcmF0aW9uViB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogbmVlZGVkIGZvciBJRStxdWlya3MrUlRMK3ZlcnRpY2FsIChyZW5kZXJpbmcgYnVnKSBidXQgYWRkIGV2ZXJ5d2hlcmUgZm9yIGN1c3RvbSBzdHlsaW5nIGNvbnNpc3RlbmN5IGJ1dCB0aGlzIG1lc3NlcyB1cCBJRSBob3Jpem9udGFsIHNsaWRlcnMgKi9cbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvbkgge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvblYge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5kaWppdFNsaWRlckJ1dHRvbiB7XG5cdGZvbnQtZmFtaWx5Om1vbm9zcGFjZTtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MDtcblx0ZGlzcGxheTpibG9jaztcbn1cblxuLmRqX2ExMXkgLmRpaml0U2xpZGVyQnV0dG9uSW5uZXIge1xuXHR2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0U2xpZGVyQnV0dG9uQ29udGFpbmVyIHtcblx0dGV4dC1hbGlnbjpjZW50ZXI7XG5cdGhlaWdodDowO1x0LyogPz8/ICovXG59XG4uZGlqaXRTbGlkZXJCdXR0b25Db250YWluZXIgKiB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmRpaml0U2xpZGVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRwYWRkaW5nOjA7XG5cdGRpc3BsYXk6YmxvY2s7XG59XG5cbi5kaWppdFJ1bGVDb250YWluZXIge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0b3ZlcmZsb3c6dmlzaWJsZTtcbn1cblxuLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRoZWlnaHQ6MTAwJTtcblx0bGluZS1oZWlnaHQ6MDtcblx0ZmxvYXQ6bGVmdDtcblx0dGV4dC1hbGlnbjpsZWZ0O1xufVxuXG4uZGpfb3BlcmEgLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRsaW5lLWhlaWdodDoyJTtcbn1cblxuLmRqX2llIC5kaWppdFJ1bGVDb250YWluZXJWIHtcblx0bGluZS1oZWlnaHQ6bm9ybWFsO1xufVxuXG4uZGpfZ2Vja28gLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRtYXJnaW46MCAwIDFweCAwOyAvKiBtb3ppbGxhIGJ1ZyB3b3JrYXJvdW5kIGZvciBmbG9hdDpsZWZ0LGhlaWdodDoxMDAlIGJsb2NrIGVsZW1lbnRzICovXG59XG5cbi5kaWppdFJ1bGVNYXJrIHtcblx0cG9zaXRpb246YWJzb2x1dGU7XG5cdGJvcmRlcjoxcHggc29saWQgYmxhY2s7XG5cdGxpbmUtaGVpZ2h0OjA7XG5cdGhlaWdodDoxMDAlO1xufVxuXG4uZGlqaXRSdWxlTWFya0gge1xuXHR3aWR0aDowO1xuXHRib3JkZXItdG9wLXdpZHRoOjAgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbS13aWR0aDowICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1sZWZ0LXdpZHRoOjAgIWltcG9ydGFudDtcbn1cblxuLmRpaml0UnVsZUxhYmVsQ29udGFpbmVyIHtcblx0cG9zaXRpb246YWJzb2x1dGU7XG59XG5cbi5kaWppdFJ1bGVMYWJlbENvbnRhaW5lckgge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG59XG5cbi5kaWppdFJ1bGVMYWJlbEgge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0bGVmdDotNTAlO1xufVxuXG4uZGlqaXRSdWxlTGFiZWxWIHtcblx0Lyogc28gdGhhdCBsb25nIGxhYmVscyBkb24ndCBvdmVyZmxvdyB0byBtdWx0aXBsZSByb3dzLCBvciBvdmVyd3JpdGUgc2xpZGVyIGl0c2VsZiAqL1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRpaml0UnVsZU1hcmtWIHtcblx0aGVpZ2h0OjA7XG5cdGJvcmRlci1yaWdodC13aWR0aDowICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1ib3R0b20td2lkdGg6MCAhaW1wb3J0YW50O1xuXHRib3JkZXItbGVmdC13aWR0aDowICFpbXBvcnRhbnQ7XG5cdHdpZHRoOjEwMCU7XG5cdGxlZnQ6MDtcbn1cblxuLmRqX2llIC5kaWppdFJ1bGVMYWJlbENvbnRhaW5lclYge1xuXHRtYXJnaW4tdG9wOi0uNTVlbTtcbn1cblxuLmRqX2ExMXkgLmRpaml0U2xpZGVyUmVhZE9ubHksXG4uZGpfYTExeSAuZGlqaXRTbGlkZXJEaXNhYmxlZCB7XG5cdG9wYWNpdHk6MC42O1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdFNsaWRlclJlYWRPbmx5IC5kaWppdFNsaWRlckJhcixcbi5kal9pZSAuZGpfYTExeSAuZGlqaXRTbGlkZXJEaXNhYmxlZCAuZGlqaXRTbGlkZXJCYXIge1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NDApO1xufVxuXG4vKiArIGFuZCAtIFNsaWRlciBidXR0b25zOiBvdmVycmlkZSB0aGVtZSBzZXR0aW5ncyB0byBkaXNwbGF5IGljb25zICovXG4uZGpfYTExeSAuZGlqaXRTbGlkZXIgLmRpaml0U2xpZGVyQnV0dG9uQ29udGFpbmVyIGRpdiB7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IC8qIG90aGVyd2lzZSBoeXBoZW4gaXMgbGFyZ2VyIGFuZCBtb3JlIHZlcnRpY2FsbHkgY2VudGVyZWQgKi9cblx0Zm9udC1zaXplOiAxZW07XG5cdGxpbmUtaGVpZ2h0OiAxZW07XG5cdGhlaWdodDogYXV0bztcblx0d2lkdGg6IGF1dG87XG5cdG1hcmdpbjogMCA0cHg7XG59XG5cbi8qIEljb24tb25seSBidXR0b25zIChvZnRlbiBpbiB0b29sYmFycykgc3RpbGwgZGlzcGxheSB0aGUgdGV4dCBpbiBoaWdoLWNvbnRyYXN0IG1vZGUgKi9cbi5kal9hMTF5IC5kaWppdEJ1dHRvbkNvbnRlbnRzIC5kaWppdEJ1dHRvblRleHQsXG4uZGpfYTExeSAuZGlqaXRUYWIgLnRhYkxhYmVsIHtcblx0ZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uVGV4dCB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xufVxuXG4vKiBUZXh0QXJlYSwgU2ltcGxlVGV4dEFyZWEgKi9cbi5kaWppdFRleHRBcmVhIHtcblx0d2lkdGg6MTAwJTtcblx0b3ZlcmZsb3cteTogYXV0bztcdC8qIHcvb3V0IHRoaXMgSUUncyBTaW1wbGVUZXh0QXJlYSBnb2VzIHRvIG92ZXJmbG93OiBzY3JvbGwgKi9cbn1cbi5kaWppdFRleHRBcmVhW2NvbHNdIHtcblx0d2lkdGg6YXV0bzsgLyogU2ltcGxlVGV4dEFyZWEgY29scyAqL1xufVxuLmRqX2llIC5kaWppdFRleHRBcmVhQ29scyB7XG5cdHdpZHRoOmF1dG87XG59XG5cbi5kaWppdEV4cGFuZGluZ1RleHRBcmVhIHtcblx0LyogZm9yIGF1dG8gZXhhbmRpbmcgdGV4dGFyZWEgKGNhbGxlZCBUZXh0YXJlYSBjdXJyZW50bHksIHJlbmFtZSBmb3IgMi4wKSBkb24ndCB3YW50IHRvIGRpc3BsYXkgdGhlIGdyaXAgdG8gcmVzaXplICovXG5cdHJlc2l6ZTogbm9uZTtcbn1cblxuXG4vKiBUb29sYmFyXG4gKiBOb3RlIHRoYXQgb3RoZXIgdG9vbGJhciBydWxlcyAoZm9yIG9iamVjdHMgaW4gdG9vbGJhcnMpIGFyZSBzY2F0dGVyZWQgdGhyb3VnaG91dCB0aGlzIGZpbGUuXG4gKi9cblxuLmRpaml0VG9vbGJhclNlcGFyYXRvciB7XG5cdGhlaWdodDogMThweDtcblx0d2lkdGg6IDVweDtcblx0cGFkZGluZzogMCAxcHg7XG5cdG1hcmdpbjogMDtcbn1cblxuLyogRWRpdG9yICovXG4uZGlqaXRJRUZpeGVkVG9vbGJhciB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHQvKiB0b3A6MDsgKi9cblx0dG9wOiBleHByZXNzaW9uKGV2YWwoKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudHx8ZG9jdW1lbnQuYm9keSkuc2Nyb2xsVG9wKSk7XG59XG5cbi5kaWppdEVkaXRvciB7XG5cdGRpc3BsYXk6IGJsb2NrO1x0LyogcHJldmVudHMgZ2xpdGNoIG9uIEZGIHdpdGggSW5saW5lRWRpdEJveCwgc2VlICM4NDA0ICovXG59XG5cbi5kaWppdEVkaXRvckRpc2FibGVkLFxuLmRpaml0RWRpdG9yUmVhZE9ubHkge1xuXHRjb2xvcjogZ3JheTtcbn1cblxuLyogVGltZVBpY2tlciAqL1xuXG4uZGlqaXRUaW1lUGlja2VyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZGlqaXRUaW1lUGlja2VySXRlbSB7XG5cdGN1cnNvcjpwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0VGltZVBpY2tlckl0ZW1Ib3ZlciB7XG5cdGJhY2tncm91bmQtY29sb3I6Z3JheTtcblx0Y29sb3I6d2hpdGU7XG59XG4uZGlqaXRUaW1lUGlja2VySXRlbVNlbGVjdGVkIHtcblx0Zm9udC13ZWlnaHQ6Ym9sZDtcblx0Y29sb3I6IzMzMztcblx0YmFja2dyb3VuZC1jb2xvcjojYjdjZGVlO1xufVxuLmRpaml0VGltZVBpY2tlckl0ZW1EaXNhYmxlZCB7XG5cdGNvbG9yOmdyYXk7XG5cdHRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7XG59XG5cbi5kaWppdFRpbWVQaWNrZXJJdGVtSW5uZXIge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0Ym9yZGVyOjA7XG5cdHBhZGRpbmc6MnB4IDhweCAycHggOHB4O1xufVxuXG4uZGlqaXRUaW1lUGlja2VyVGljayxcbi5kaWppdFRpbWVQaWNrZXJNYXJrZXIge1xuXHRib3JkZXItYm90dG9tOjFweCBzb2xpZCBncmF5O1xufVxuXG4uZGlqaXRUaW1lUGlja2VyIC5kaWppdERvd25BcnJvd0J1dHRvbiB7XG5cdGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0VGltZVBpY2tlclRpY2sge1xuXHRjb2xvcjojQ0NDO1xufVxuXG4uZGlqaXRUaW1lUGlja2VyTWFya2VyIHtcblx0Y29sb3I6YmxhY2s7XG5cdGJhY2tncm91bmQtY29sb3I6I0NDQztcbn1cblxuLmRqX2ExMXkgLmRpaml0VGltZVBpY2tlckl0ZW1TZWxlY3RlZCAuZGlqaXRUaW1lUGlja2VySXRlbUlubmVyIHtcblx0Ym9yZGVyOiBzb2xpZCA0cHggYmxhY2s7XG59XG4uZGpfYTExeSAuZGlqaXRUaW1lUGlja2VySXRlbUhvdmVyIC5kaWppdFRpbWVQaWNrZXJJdGVtSW5uZXIge1xuXHRib3JkZXI6IGRhc2hlZCA0cHggYmxhY2s7XG59XG5cblxuLmRpaml0VG9nZ2xlQnV0dG9uSWNvbkNoYXIge1xuXHQvKiBjaGFyYWN0ZXIgKGluc3RlYWQgb2YgaWNvbikgdG8gc2hvdyB0aGF0IFRvZ2dsZUJ1dHRvbiBpcyBjaGVja2VkICovXG5cdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0VG9nZ2xlQnV0dG9uIC5kaWppdFRvZ2dsZUJ1dHRvbkljb25DaGFyIHtcblx0ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDtcblx0dmlzaWJpbGl0eTpoaWRkZW47XG59XG4uZGpfaWU2IC5kaWppdFRvZ2dsZUJ1dHRvbkljb25DaGFyLCAuZGpfaWU2IC50YWJTdHJpcEJ1dHRvbiAuZGlqaXRCdXR0b25UZXh0IHtcblx0Zm9udC1mYW1pbHk6IFwiQXJpYWwgVW5pY29kZSBNU1wiO1x0Lyogb3RoZXJ3aXNlIHRoZSBhMTF5IGNoYXJhY3RlciAoY2hlY2ttYXJrLCBhcnJvdywgZXRjLikgYXBwZWFycyBhcyBhIGJveCAqL1xufVxuLmRqX2ExMXkgLmRpaml0VG9nZ2xlQnV0dG9uQ2hlY2tlZCAuZGlqaXRUb2dnbGVCdXR0b25JY29uQ2hhciB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyAvKiBJbiBoaWdoIGNvbnRyYXN0IG1vZGUsIGRpc3BsYXkgdGhlIGNoZWNrIHN5bWJvbCAqL1xuXHR2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0QXJyb3dCdXR0b25DaGFyIHtcblx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRBcnJvd0J1dHRvbkNoYXIge1xuXHRkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXREcm9wRG93bkJ1dHRvbiAuZGlqaXRBcnJvd0J1dHRvbklubmVyLFxuLmRqX2ExMXkgLmRpaml0Q29tYm9CdXR0b24gLmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBTZWxlY3QgKi9cbi5kal9hMTF5IC5kaWppdFNlbGVjdCB7XG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGUgIWltcG9ydGFudDtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZGpfaWUgLmRpaml0U2VsZWN0IHtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTsgLyogU2V0IHRoaXMgYmFjayBmb3Igd2hhdCB3ZSBoYWNrIGluIGRpaml0IGlubGluZSAqL1xufVxuLmRqX2llNiAuZGlqaXRTZWxlY3QgLmRpaml0VmFsaWRhdGlvbkNvbnRhaW5lcixcbi5kal9pZTggLmRpaml0U2VsZWN0IC5kaWppdEJ1dHRvblRleHQge1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLmRqX2llNiAuZGlqaXRUZXh0Qm94IC5kaWppdElucHV0Q29udGFpbmVyLFxuLmRqX2llcXVpcmtzIC5kaWppdFRleHRCb3ggLmRpaml0SW5wdXRDb250YWluZXIsXG4uZGpfaWU2IC5kaWppdFRleHRCb3ggLmRpaml0QXJyb3dCdXR0b25Jbm5lcixcbi5kal9pZTYgLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uSW5uZXIsXG4uZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwge1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi5kaWppdE51bWJlclRleHRCb3gge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRkaXJlY3Rpb246IGx0cjtcbn1cblxuLmRpaml0TnVtYmVyVGV4dEJveCAuZGlqaXRJbnB1dElubmVyIHtcblx0dGV4dC1hbGlnbjogaW5oZXJpdDsgLyogaW5wdXQgKi9cbn1cblxuLmRpaml0TnVtYmVyVGV4dEJveCBpbnB1dC5kaWppdElucHV0SW5uZXIsXG4uZGlqaXRDdXJyZW5jeVRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRpaml0U3Bpbm5lciBpbnB1dC5kaWppdElucHV0SW5uZXIge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmRqX2llOCAuZGlqaXROdW1iZXJUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXROdW1iZXJUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lcixcbi5kal9pZTggLmRpaml0Q3VycmVuY3lUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXRDdXJyZW5jeVRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRqX2llOCAuZGlqaXRTcGlubmVyIGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXRTcGlubmVyIGlucHV0LmRpaml0SW5wdXRJbm5lciB7XG5cdC8qIHdvcmthcm91bmQgYnVnIHdoZXJlIGNhcmV0IGludmlzaWJsZSBpbiBlbXB0eSB0ZXh0Ym94ZXMgKi9cblx0cGFkZGluZy1yaWdodDogMXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdFRvb2xiYXIgLmRpaml0U2VsZWN0IHtcblx0bWFyZ2luOiAwO1xufVxuLmRqX3dlYmtpdCAuZGlqaXRUb29sYmFyIC5kaWppdFNlbGVjdCB7XG5cdHBhZGRpbmctbGVmdDogMC4zZW07XG59XG4uZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRwYWRkaW5nOiAwO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRib3JkZXItc3R5bGU6IG5vbmUgc29saWQgbm9uZSBub25lO1xuXHRib3JkZXItd2lkdGg6IDFweDtcbn1cbi5kaWppdFNlbGVjdEZpeGVkV2lkdGggLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmRpaml0U2VsZWN0TWVudSAuZGlqaXRNZW51SXRlbUljb24ge1xuXHQvKiBhdm9pZCBibGFuayBhcmVhIGluIGxlZnQgc2lkZSBvZiBtZW51IChzaW5jZSB3ZSBoYXZlIG5vIGljb25zKSAqL1xuXHRkaXNwbGF5Om5vbmU7XG59XG4uZGpfaWU2IC5kaWppdFNlbGVjdE1lbnUgLmRpaml0TWVudUl0ZW1MYWJlbCxcbi5kal9pZTcgLmRpaml0U2VsZWN0TWVudSAuZGlqaXRNZW51SXRlbUxhYmVsIHtcblx0LyogU2V0IGJhY2sgdG8gc3RhdGljIGR1ZSB0byBidWcgaW4gaWU2L2llNyAtIFNlZSBCdWcgIzk2NTEgKi9cblx0cG9zaXRpb246IHN0YXRpYztcbn1cblxuLyogRml4IHRoZSBiYXNlbGluZSBvZiBvdXIgbGFiZWwgKGZvciBtdWx0aS1zaXplIGZvbnQgZWxlbWVudHMpICovXG4uZGlqaXRTZWxlY3RMYWJlbCAqXG57XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyogU3R5bGluZyBmb3IgdGhlIGN1cnJlbnRseS1zZWxlY3RlZCBvcHRpb24gKHJpY2ggdGV4dCBjYW4gbWVzcyB0aGlzIHVwKSAqL1xuLmRpaml0U2VsZWN0U2VsZWN0ZWRPcHRpb24gKiB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBGaXggdGhlIHN0eWxpbmcgb2YgdGhlIGRyb3Bkb3duIG1lbnUgdG8gYmUgbW9yZSBjb21ib2JveC1saWtlICovXG4uZGlqaXRTZWxlY3RNZW51IHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbi8qIFVzZWQgaW4gY2FzZXMsIHN1Y2ggYXMgRnVsbFNjcmVlbiBwbHVnaW4sIHdoZW4gd2UgbmVlZCB0byBmb3JjZSBzdHVmZiB0byBzdGF0aWMgcG9zaXRpb25pbmcuICovXG4uZGlqaXRGb3JjZVN0YXRpYyB7XG5cdHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbn1cblxuLyoqKiogRGlzYWJsZWQgY3Vyc29yICoqKioqL1xuLmRpaml0UmVhZE9ubHkgKixcbi5kaWppdERpc2FibGVkICosXG4uZGlqaXRSZWFkT25seSxcbi5kaWppdERpc2FibGVkIHtcblx0LyogYSByZWdpb24gdGhlIHVzZXIgd291bGQgYmUgYWJsZSB0byBjbGljayBvbiwgYnV0IGl0J3MgZGlzYWJsZWQgKi9cblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBEcmFnIGFuZCBEcm9wICovXG4uZG9qb0RuZEl0ZW0ge1xuICAgIHBhZGRpbmc6IDJweDsgIC8qIHdpbGwgYmUgcmVwbGFjZWQgYnkgYm9yZGVyIGR1cmluZyBkcmFnIG92ZXIgKGRvam9EbmRJdGVtQmVmb3JlLCBkb2pvRG5kSXRlbUFmdGVyKSAqL1xuXG5cdC8qIFByZXZlbnQgbWFnbmlmeWluZy1nbGFzcyB0ZXh0IHNlbGVjdGlvbiBpY29uIHRvIGFwcGVhciBvbiBtb2JpbGUgd2Via2l0IGFzIGl0IGNhdXNlcyBhIHRvdWNob3V0IGV2ZW50ICovXG5cdC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgLyogRGlzYWJsZSBzZWxlY3Rpb24vQ29weSBvZiBVSVdlYlZpZXcgKi9cbn1cbi5kb2pvRG5kSG9yaXpvbnRhbCAuZG9qb0RuZEl0ZW0ge1xuICAgIC8qIG1ha2UgY29udGVudHMgb2YgaG9yaXpvbnRhbCBjb250YWluZXIgYmUgc2lkZSBieSBzaWRlLCByYXRoZXIgdGhhbiB2ZXJ0aWNhbCAqL1xuICAgICNkaXNwbGF5OiBpbmxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZG9qb0RuZEl0ZW1CZWZvcmUsXG4uZG9qb0RuZEl0ZW1BZnRlciB7XG5cdGJvcmRlcjogMHB4IHNvbGlkICMzNjk7XG59XG4uZG9qb0RuZEl0ZW1CZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogMnB4IDAgMCAwO1xuICAgIHBhZGRpbmc6IDAgMnB4IDJweCAycHg7XG59XG4uZG9qb0RuZEl0ZW1BZnRlciB7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDAgMnB4IDA7XG4gICAgcGFkZGluZzogMnB4IDJweCAwIDJweDtcbn1cbi5kb2pvRG5kSG9yaXpvbnRhbCAuZG9qb0RuZEl0ZW1CZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogMCAwIDAgMnB4O1xuICAgIHBhZGRpbmc6IDJweCAycHggMnB4IDA7XG59XG4uZG9qb0RuZEhvcml6b250YWwgLmRvam9EbmRJdGVtQWZ0ZXIge1xuICAgIGJvcmRlci13aWR0aDogMCAycHggMCAwO1xuICAgIHBhZGRpbmc6IDJweCAwIDJweCAycHg7XG59XG5cbi5kb2pvRG5kSXRlbU92ZXIge1xuXHRjdXJzb3I6cG9pbnRlcjtcbn1cbi5kal9nZWNrbyAuZGlqaXRBcnJvd0J1dHRvbklubmVyIElOUFVULFxuLmRqX2dlY2tvIElOUFVULmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdC1tb3otdXNlci1mb2N1czppZ25vcmU7XG59XG4uZGlqaXRGb2N1c2VkIC5kaWppdE1lbnVJdGVtU2hvcnRjdXRLZXkge1xuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbiIsIi8qIERpaml0IGN1c3RvbSBzdHlsaW5nICovXG4uZGlqaXRCb3JkZXJDb250YWluZXIge1xuICAgIGhlaWdodDogMzUwcHg7XG59XG4uZGlqaXRUb29sdGlwQ29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuLmRpaml0Q29udGVudFBhbmUge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIG92ZXJmbG93OiBhdXRvICFpbXBvcnRhbnQ7IC8qIFdpZGdldHMgbGlrZSB0aGUgZGF0YSBncmlkIHBhc3MgdGhlaXIgc2Nyb2xsXG4gICAgb2Zmc2V0IHRvIHRoZSBwYXJlbnQgaWYgdGhlcmUgaXMgbm90IGVub3VnaCByb29tIHRvIGRpc3BsYXkgYSBzY3JvbGwgYmFyXG4gICAgaW4gdGhlIHdpZGdldCBpdHNlbGYsIHNvIGRvIG5vdCBoaWRlIHRoZSBvdmVyZmxvdy4gKi9cbn1cblxuLyogR2xvYmFsIEJvb3RzdHJhcCBjaGFuZ2VzICovXG5cbi8qIENsaWVudCBkZWZhdWx0cyBhbmQgaGVscGVycyAqL1xuLm14LWRhdGF2aWV3LWNvbnRlbnQsIC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcjpub3QoLm14LXNjcm9sbGNvbnRhaW5lci1uZXN0ZWQpLCAubXgtdGFiY29udGFpbmVyLWNvbnRlbnQsIC5teC1ncmlkLWNvbnRlbnQge1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cbmh0bWwsIGJvZHksICNjb250ZW50IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4jY29udGVudCA+IC5teC1wYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuXG4ubXgtbGVmdC1hbGlnbmVkIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LXJpZ2h0LWFsaWduZWQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLm14LWNlbnRlci1hbGlnbmVkIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teC10YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtdGFibGUgdGgsXG4ubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLm14LXRhYmxlIHRoLm5vcGFkZGluZyxcbi5teC10YWJsZSB0ZC5ub3BhZGRpbmcge1xuXHRwYWRkaW5nOiAwO1xufVxuXG4ubXgtb2Zmc2NyZWVuIHtcbiAgICAvKiBXaGVuIHBvc2l0aW9uIHJlbGF0aXZlIGlzIG5vdCBzZXQgSUUgZG9lc24ndCBwcm9wZXJseSByZW5kZXIgd2hlbiB0aGlzIGNsYXNzIGlzIHJlbW92ZWRcbiAgICAgKiB3aXRoIHRoZSBlZmZlY3QgdGhhdCBlbGVtZW50cyBhcmUgbm90IGRpc3BsYXllZCBvciBhcmUgbm90IGNsaWNrYWJsZS5cbiAgICAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm14LWllLWV2ZW50LXNoaWVsZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAtMTtcbn1cblxuLm14LXN3aXBlLW5hdmlnYXRpb24tcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDU0cHg7XG4gICAgd2lkdGg6IDU0cHg7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDI3cHgpO1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMjdweCk7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaE5nQTJBUE1BQVAvLy93QUFBSGg0ZUJ3Y0hBNE9EdGpZMkZSVVZOemMzTVRFeEVoSVNJcUtpZ0FBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQWtLQUFBQUlmNGFRM0psWVhSbFpDQjNhWFJvSUdGcVlYaHNiMkZrTG1sdVptOEFJZjhMVGtWVVUwTkJVRVV5TGpBREFRQUFBQ3dBQUFBQU5nQTJBQUFFeXhESVNhdTlPT3ZOdS85Z0tJNWt5U0VKUVNTSTZVcUtLaFBLV3lMejNOcGltcXNKbnVnM0U0YUlNaVBJOXdzcVBUamlUbGt3cUF3RlRDeFhleFlHczBIMmdnSk9MWUxCUURDeTVnd213WXg5SkpyQXNzSFFYc0tyOUNGdU0zQWxjakowSUFkK0JBTUhMbWxySkFkdUJvNVBsNWlabXB1Y25aNmZjV3FJbUpDamFIT1poaXFtRkl1QWw2NFpzWml6RjZvRXJFSzN1Uk9sbTc2Z3djTER4TVhHeDhYQWo2SWt1NCtvSXJVazBoL1UwV0Vqem5IUUlzcWhrY2pCM3NuY3hkYkM1K0xseWN6aDdrOFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRNRU1oSnE3MDQ2ODI3LzJBb2ptUnBubVZoRUlSUm9HY3hzT3p3d3VSS3N3Wk83anZmQ0VnVGluUzduaEYwbU5FR2h3c2l3VW9nbHBTRHpoQzFLSWlLa1dBd0VKZ1FSTllWSk5pWlNkUjBJdVNzbGRKRlVKMHd1T01KSVcwMGJ5TnhSSE9CWklRamFHbHJXQnhmUUdHUUhsTlZqNVdhbTV5ZG5wOUxZMldib29zV2dpeW1RcWdFcWhON2ZaQ3dHYk95TzdFWHJLNDR1aHFscElxZ3dzUEV4Y2JIeU1lL0tNc2l2U2JQZExjbnRkSlAxTlBPYmlmUmlhUE13Y25DemNyYnlOWEc2TVhkeHVUaTd6NFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRPRU1oSnE3MDQ2ODI3LzJBb2ptUnBubWlxQXNJd0NLc3BFRFFCeCtOUUV3T2U3ejFmYUZhN0NVR3QxMUZZTU5BTUJWTFNTQ3JvYW9Qb2NFY1ZPWGNFZytoS0M1TEF0VEhRaEthSmlMUnU2THNUdjEzeTBJSE1PeXc5QjE4R2ZuK0Zob2VJaVlvWkNBazBDUWlMRmdwb0NobFRSd2h0QkpFV2NEWkNqbTBKRjN4bU1adHVGcVpDcVFRWG4za29vbWlrc0hpWm01MlNBSlJnbHJ3VGpZKzd3Y2JIeU1uS0U1Z296VzljSjdFL1dDZXNhdFVtMTF0RjB0RWp6eks0eTRuaHh0UEkyOGJxd2VqSTV1VHhKaEVBSWZrRUNRb0FBQUFzQUFBQUFEWUFOZ0FBQk1zUXlFbXJ2VGpyemJ2L1lDaU9aR21lYUtvQ3dqQUlxeWtRTkFISDQxQVRBNTd2UFY5b1Zyc0pRYTNYY1lsS0dtV3VKM0luRlJGcDFZNnVGaXh0YVYzUWwzY2FoejlYMnltZDdUaFRiNlo4VHEvYjcvaTh2R0NnR1FvYWNVSUZab0FYYkVkOU93UUdHR1pIaXpXT1FKQ1JCQmlJUW9vN2paaFJTd2RtQjNvVUI0b0dvNlNxcTZ5dE1RZ0pOQWtJckFxUkNpT0NJd2lXQkxSVFJTV3hsZ2toanlTOU5NYVV5TWxEVk1LOXhVT2ZKYnlXdjNxMmk3aEx1aFd3c3RsQ21hdkg1c3lyNWVyVnJ1NDRFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWlaY2dVR05BWUZKSk1pQldhZ1E0TWxuVHNFQmlLTElxczFya0Ftc1RSV3FDU3FPNjFXa1JrSUNUUUpDQmNIWmdkSENyRUt4cW9HeVVJSXRnVEZlc0syQ1h2VXQzcmNCSHZZc2RwNjA3Yldlc3VyelpYQncrZ2lFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWdTQ0FrMENRaVdDanMwQ3BRSW9qV2ZKWk1kbktjRUNhcURJSzQxWGtBaHREUzJYQ0d0cDdBa2p4Nm1ycW5Ca1NLaG9xUVhCUVkwQmdWTG01M0dGUVZtMHBUUG9nYVZ0Tit1bGR3NzNwUUhaZ2VXQjl3RzZwa29FUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2dktVU0Nsa0RnTFFvN05BcC9Fd2lDTlg1Q2NSWjdpQVFKaTFRWGp6VkNacFNWQkpkQUY0NklrVDVzRjRlUGlxSlJHWUdDaElXR2puMnVzck8wdFhZRkJqUUdCYlFGWnJ4UVNpSzVnZ1l5a3lHVkpwakpqOHVkSWNRN3hpV2pJUWRtQjJ1cEl3ZkVCdHEySG95ejFyUE01OURseUxUazR1OHBFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3a1JDVm9Db1dtOWhCTEZqcWFBZGhEVEdyUGtOSDZTV1VLQ3UvTjJ3cldTcmhiOG9HbHFZQWljSFpPSU5ETUhHOTdlWFhvZFVsTlZWbGRnUzRhS2k0eU5qbzhGQmpRR0JZOFhCV3MwQTVWUVhSbVNVd2FkWlJob1VKazhwV0duY2hlZ082SkNlRFlZQjZnREIxYWVHUWVnQnJtV3djTER4TVhHeDF5QUtic2lzNEVnemo5c0o3ZlNtdFN0UTZReTI4M0tLTXpJamVIRTBjYlY1OW5sM2NYazR1OG9FUUE3KTtcbn1cblxuIiwiLyogQmFjYXVzZSB3ZSB1c2UgY2hlY2tib3hlcyB3aXRob3V0IGxhYmVscywgYWxpZ24gdGhlbSB3aXRoIG90aGVyIHdpZGdldHMuICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbjogOXB4IDA7XG59XG5cbi5teC1jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG59XG5cbi5mb3JtLXZlcnRpY2FsIC5mb3JtLWdyb3VwLm14LWNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5mb3JtLXZlcnRpY2FsIC5mb3JtLWdyb3VwLm14LWNoZWNrYm94LmxhYmVsLWFmdGVyIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwLm5vLWNvbHVtbnMge1xuICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuXG4ubXgtcmFkaW9idXR0b25zLmlubGluZSAucmFkaW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG5cbi5teC1yYWRpb2J1dHRvbnMgLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgLyogUmVzZXQgYm9vdHN0cmFwIHJ1bGVzICovXG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLm14LXJhZGlvYnV0dG9ucyAucmFkaW8gbGFiZWwge1xuICAgIC8qIFJlc2V0IGJvb3RzdHJhcCBydWxlcyAqL1xuICAgIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLmFsZXJ0IHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG59XG5cbi5teC1jb21wb3VuZC1jb250cm9sIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubXgtY29tcG91bmQtY29udHJvbCBidXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbltkaXI9XCJydGxcIl0gLm14LWNvbXBvdW5kLWNvbnRyb2wgYnV0dG9uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbiIsIi5teC10b29sdGlwIHtcbiAgICBtYXJnaW46IDEwcHg7XG59XG4ubXgtdG9vbHRpcC1jb250ZW50IHtcbiAgICB3aWR0aDogNDAwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbn1cbi5teC10b29sdGlwLXByZXBhcmUge1xuICAgIGhlaWdodDogMjRweDtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEdBQVlBTVFkQUtYWjhuZkY2NFRMN1F1WDNGZTQ1emFxNGhPYjNmTDYvZnI5L3JyaTlkWHQrWnJVOEN5bTRVbXk1Y0hsOXVQeisySzg2T2oxL056dytyRGQ5TTNxK0pEUTcyckE2aU9pMyszNC9FQ3U0OGpvOXgyZjNnV1YyLy8vL3dBQUFBQUFBQ0gvQzA1RlZGTkRRVkJGTWk0d0F3RUFBQUFoL3d0WVRWQWdSR0YwWVZoTlVEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF3SURjNUxqRTJNRFExTVN3Z01qQXhOeTh3TlM4d05pMHdNVG93T0RveU1TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tFMWhZMmx1ZEc5emFDa2lJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSVUpGTmtVNE5FWkNORVZETVRGRk9EazNNREJCTlVVMVJVTTRRamczUVRVaUlIaHRjRTFOT2tSdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJVSkZOa1U0TlRCQ05FVkRNVEZGT0RrM01EQkJOVVUxUlVNNFFqZzNRVFVpUGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRwRlFrVTJSVGcwUkVJMFJVTXhNVVU0T1Rjd01FRTFSVFZGUXpoQ09EZEJOU0lnYzNSU1pXWTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRHBGUWtVMlJUZzBSVUkwUlVNeE1VVTRPVGN3TUVFMVJUVkZRemhDT0RkQk5TSXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QZ0gvL3YzOCsvcjUrUGYyOWZUejh2SHc3Kzd0N092cTZlam41dVhrNCtMaDROL2UzZHpiMnRuWTE5YlYxTlBTMGREUHpzM015OHJKeU1mR3hjVER3c0hBdjc2OXZMdTZ1YmkzdHJXMHM3S3hzSyt1cmF5cnFxbW9wNmFscEtPaW9hQ2ZucDJjbTVxWm1KZVdsWlNUa3BHUWo0Nk5qSXVLaVlpSGhvV0VnNEtCZ0g5K2ZYeDdlbmw0ZDNaMWRITnljWEJ2Ym0xc2EycHBhR2RtWldSalltRmdYMTVkWEZ0YVdWaFhWbFZVVTFKUlVFOU9UVXhMU2tsSVIwWkZSRU5DUVVBL1BqMDhPem81T0RjMk5UUXpNakV3THk0dExDc3FLU2duSmlVa0l5SWhJQjhlSFJ3Ykdoa1lGeFlWRkJNU0VSQVBEZzBNQ3dvSkNBY0dCUVFEQWdFQUFDSDVCQVVFQUIwQUxBQUFBQUFZQUJnQUFBVWNZQ2VPWkdtZWFLcXViT3UrY0N6UGRHM2ZlSzd2Zk8vL3dPQXJCQUFoK1FRRkJBQWRBQ3dBQUFBQUFRQUJBQUFGQTJBWEFnQWgrUVFGQkFBZEFDd1VBQXdBQVFBQ0FBQUZBeURUaEFBaCtRUUZCQUFkQUN3VEFBc0FBZ0FHQUFBRkMyQVhkRnhuZE1UUU1WMElBQ0g1QkFVRUFCMEFMQkVBQ3dBRUFBZ0FBQVVSWUNjMllpbHlvcldkVm1jTnA4aTBYUWdBSWZrRUJRUUFIUUFzRHdBT0FBWUFCZ0FBQlE5Z0ozYUJNWjRqaDQ0V0I0bkZjSVlBSWZrRUNRUUFIUUFzRFFBUEFBZ0FCZ0FBQlJGZ0o0NGRSSGJCcVlvcEdRd2NPUmhxQ0FBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRkxXQW5qbVJwbm1pcXJtenJ2bkFzejNSdDMzaXVrOEpnRHdRYlIyaWhCVGlOV1c4WTR6aDlHaGxnUnkyRkFBQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZNMkFuam1ScG5taXFybXpydm5Bc3ozUnQzMmh6YzN0U0M3emFZT2VvY1NBMFlNWlZJUWtHd1JhUVE2VjJpaklBYnFzS0FRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZObUFuam1ScG5taXFybXpydm5Bc3ozUnQzMmh6Yy90VVY3eWFJV01MMGppRVZRVUZMS3dDSEVPcFlqQ3lNcHlzbGloYjRMNnJFQUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGT21BbmptUnBubWlxcm16cnZuQXN6M1J0MzJoemN6dFFWN3phcG1BTG1vQXNqZzdGTUI0NWpGV0RzeWxWTnM1VmdjUHRFbU8rQ202c0NnRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCVDlnSjQ1a2FaNW9xcTVzNjc1d0xNOTBiZDhvY1hPQ3plMm14c2ExWVp4K0xRN2cxRUNxT0prVWc3TkljWXlxNXJDMGdicW1uSENZc1lRdGU3aDBLZ1FBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQlVSZ0o0NWthWjVvcXE1czY3NXdMTTkwYmQ4b1lRWXdKNVNjbmluNElwSVlGOWNsV1ZvWVY1ekZLZk5FY1RLcFN4WElURkc3SXkyMnhlQ1l6eGNwVFBxajRONm9FQUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGU21BbmptUnBubWlxcm16cnZuQXN6M1ROYm5iQXdZUzV2NXdBcWZKekZVZEhWckt6WWJnWU9OK2t4YW1jQ2dQV29KRGFaRk9EYUtyQWNaWVlIRzVydzJtN04xWllSUmkzMlZjaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVlBZQ2VPWkdtZWFLcXViT3UrY0N6UDVVYlFJb2QzZ3I3N3JodkpBbXh4TEtVaVM5bmhURjVNQThQRk1KaDZMbzdneEJpd0JsUFV4cHNhYkZZTVRwaVVYcXNFQm81OGJ0akN0aGI3YnI4S0FRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZVMkFuam1ScG5taXFybXpydmpETFhERXBjRFZwWlBtSTk1MGJVUFJ6UVVxUVlvdHpKQ2xaejhsenhabVVEQVZYd1hDYW9yeWRDM2Rsb0tFTTQzTWFkZUZrU3dXT2VSVXdjTzU0UXlBbU9BcUdnQzBoQUNINUJBVUVBQjBBTEFBQUFBQVlBQmdBQUFWWFlDZU9aR21lYUtxdWJMdHVsbnNhaG14dXRVMEduRjRPRFIrcEp4VHhpaUpDemhYNzJRYUVIZEUxSFZWWkhNQXY0OG9NVE1jV0ozRENzUXliMUdBNSs2bzJIRzRwdzBtekFnTU9aNURmazIwQlVYOUloQzBoQUNINUJBa0VBQjBBTEFJQUF3QVVBQk1BQUFVL1lDZUsxdENNYUpweWhPcU93L2JPOUd6VmM0dnY5YzJuc2w5QVpQaDFpajZqY3JRUW5YYlBEc1E0SFFWcFYxUld0VTFGUjE5WDlWZ1VqV20rWkNvRUFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVmJZQ2VPWkdtZWFLcU9GckdpeE1CeHpHc2FuR3VidzdhZkJ0K3ZST0FNVGJsanlhaGtNWnVkaG5BWEtFbUhtOFp5K0JRdHVpL09ZcWw3RlUvZ1ZQSTJUVzBNcVo1cU0xamh5cU1pM0R6amJEWjllRFlRRFZwalVJZy9JUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGWUdBbmptUnBubWlxaWxXWFpjUnFFaHczWE5jZ2t3WUg3U2ZPQlhneURJa2xHdExrVzVZNFRoSkJGeFZsamtCQjZZcThaRXBVWUpnRkpYSmFwT1lPVXBhMlY1eVl5U2k3R0ZKQzFlVmRWSlBZZHpJME5qZ0ROWEpFQkYrSVZZMUFJUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGWldBbmptUnBubWlxaWtKWEZNUnFOaHhuTUlWUngvTEFXYWFBck1OaERGRUQ0M0hHV1o1K3pwS2dHUzBacXFTQ2Npa2NhWjA0RXVHNk5QQkcxR01hRFJ4YTFpS2F1bkZLeWhpRFZGSEZnSnQ4YlNSdmVUSTBOZ3dNT2h4MFRnUXZIUzFZa2xFaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVm1ZQ2VPWkdtZWFLcUtRY01VeldwbUhMZDF4VlpuY2pjTUFWUGdwMXB3Q2lyR0RUVkE5azZad1JQRm1aNENWV3Vwc2RTT1h0cmdWMXRna0xqV1RZeVVmYlpISExFTU81UDJCanhUVTFhd240NHFCVzhtQzBSQ2hpczBOZ1U1TzFZdFptdGVrNU1oQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFWbllDZU9aR21lYUtxS1FYWmQyV29XSEhkMURWTVhjc1VOSjRHQnMrTHdVclFLeWlpam5RcEFXY2R3NGdTa3FBQVJlM0p4VDdkdngwS0NmYjBqTk5aTTJtTGRJeXRXTzR2S0JzY1NjK1ZjNXA5d1ZYWWtBUU9CS0RRMkdTNDdYeTB2SFZkaWs1UWlJUUFoK1FRRkJBQWRBQ3dBQUFBQUdBQVlBQUFGYm1BbmptUnBubWlxaWxheGJjVnFNaHpIZEExdHl3Sm5uQUlEUjZEaVpGUVpUc29vUzU0WVAxbkhjQ3NOcFNJbHlhTEZjZ0trUWhWcjJwQkZpOUttY1c2WVIrSXpJMGJxU3UxWm9qZFJnbUtwSjB3clRpaUNLSVFvUFZFbFFYZ29PZ3dOT1RWalVpMW1kR2VhbXlVaEFDSDVCQVVFQUIwQUxBSUFBZ0FVQUJRQUFBVmJZQ2VPa01HZG5BR05MSWx5dy9DdWJjZWNXWjJkVEhzYk5aYXBKNEtrZ2kwVDdZU3NNWTI1Sm10WDRraWRKdXVWaFJwc1dUTFlkeFRXamsrbXNTZ0ZIVk03ekcvY0NMd3FSei9wMElmVDhZSkdYV1VjTkVoVktDbzFJUUFoK1FRRkJBQWRBQ3dCQUFFQUZnQVdBQUFGWjJBbmptUFZCV1NxbmdaSGNnYTZqc2JyMG5OMTEyVEZjNmFVNnpZYnBtckVXY2ZGTzRrRXloSFUyYWsxbzlYc0VydHlCYm1xWUpKN1E0MnhMaG00MlBsaVRUc3QxeXBTYzZkcUpGa3VHazVWQWtZcE9pSlhiVDlLVnh4Smhpb0JMUytOVVNaMktpRUFJZmtFQ1FRQUhRQXNBUUFCQUJZQUZnQUFCV3BnSjQ2aWxWMVgxazFrUzE2Y3kxMHUyY1MxeURVMU0zSUVFZ0hYOGRsR3dWcXl3L3ZsY2tSYVovbE1TbVBFcDY0VHM0aW8ycVJKcXoyUm42aHpMcVd1cWI1dEtyWTk3MGpCU3BHVTI5Nk9tbE01UzRBaVJseFVReU9HTmxreWhDNHdNbnRrSmlncUxDNGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVYrWUNlT1pHbWVwVlZjVjlaTjZMbHhkRTF2OGRqWWZOM0VEQnVFQkxFeFRqdmE4RlNrL1VxMW5DaEttbkdXdVNadVJKVjJ1aGFsbDh1eGlESzBNZG5WdWFUVlg4NUY1T2JBNC9NTzJnNm5zZU5ZVWsxbVUyOWVYUjFXZ1NoYUpBdUlLSkFkU1ZlTVBpZEJrRTAwUnlpVVBaZFNWajFiYWhZWkxCbUVkM0FoQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFXQllDZU9aR21lcFZWY1Y5Rk42TGx4ZEUxdjhkallmTjNFakpyQlpLZ3hUanRhVE9BejFYS2lKMm5HRVVDakhOeUlOcngyaXB5UlJlbnRNRGtXVVlGY3ByazZGN2FYZGhIRncrVU9YUzIvdXJkVlpXY2tYR1ZnVTMweE55UUxVamsxQ3lWSmdTZG5IRDhtUVlVa0FtQWNSeWlUUFUxUVZEMWFaU29zQldsNXJoMGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVdDWUNlT1pHbWVwVlZjVjlGTjZMbHhkRTF2OGRqWWZOM0VqTnJGZEtreFRqdk9JRGVnL1VxMFphN1Q1SlJtMXFub1JxSU50WjFpdG1PaGdVYzBpNmhnUG5kb3JuRDc3QldKM1cvT2x6MEd3OUY5VXdCcEloTjFZSGNqV0hRY09GMUtXbFVtU1FNQU1WVlBKVUdISXdCaUhFY29TVDAybVRGWVBZNW5LaXd1TUhodUlRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZlbUFuam1ScG5xV1ZNVXlHdmhjbnovTDFqZzJ0ejgxYnpLNVNabFk0NVRpR20wSFdLOG1TdDg2U1U0cFJvNklhU1JiRURxOGRpd3k3NVZoRVgvS0lLMktNMVIwWm8vMVd5OUYxTWpzTDF2ZjNYaklUSTFaMkhEWmxVRXA1SWtlS0oxTk5KVCtBSTE4Y1JTaEhPelNTTUp5SGNHRXJMUjJEb25BaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVjlZQ2VPWkdtZVpkQXdUSU8rRnlmUDh2V09CRDFjMTBBVHI4SU1Zb0xNQ3FjY3h3YVRBVXUxbXlqR0tWR2xvMmlXUThSMmpGVlJRT2JkQmtRTnpxQXM4bzBZUzNZbnhoREJtV1Y2ZHMzMnVUcGpZV1ZrVzExWVlDUlhYbHBiZUUyQ09Jd25WRThsUWpLR0kyQWNTQzg2UEQ0elhsUTBrbGhuTEg5eWNpRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCWDFnSjQ1a2FaNWwwQlJGZzc0TUo4OHk4NDRFZlhYWlJST3ZqR3h3RWd4a21WT09rd3pLZ0NYa1RTVGtsR0xFcWVob0c4bTBwSzhvSUFaM1pBRlJnN016ZDN5akF0UE40eFJFY25yOUxtTFQ0V05sWUdoZUhBSnVnbGhtWEZGelUxVW1TMDBvVlZBbFZWa2xSbEl2T2hrOU5HQXhORE5kWmlvZExYcDZJUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGZ0dBbmptUnBucVhRRkZrbm9HakJ6ZlJjd0NORUR4M1JaUU1hQk5hWWJWQ2JXZU9rNCtCNnM5UE05K3hFU2JKanRaTzhqYTViQUZqQTRXMUZ3WmVJMHpyL25LSU1oK3BteCtGdWdoM2FQc3ZwWlc0ZFFTUmdXNFpaWjEwbFUxVjZlRG1OTUk5REprVWNXaVpKa0ZJekF4aytRRUpWTWpVMFhtY3ZHYUNDclIwaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVjZZQ2VPWkdtZXBkQmxHWUcrR1NmUGN2YU8xcnk1UWJmTmxoZEJWa0FWWks2VDdOWUpMRTJ5SHJQekhNV0swODdSTnFwbXF3TE9KanY2cVVTY0pIbG81WkJKSEc1TVNuWnkyZThPSGoxK203dHViMTVYWkZzbFVWK0JKRG1LS0U0Y1FTWkRIRmdtUjJrM09qd0VQMTR3TkRSY1pDb3NIV2Q1YnlFQUlma0VDUVFBSFFBc0FBQUFBQmdBR0FBQUJYcGdKNDVrYVo1bDFXVk5wNkpueHMzMG5NRmpRQmR1RnhTMEFJd3dHeFpSbkFGT05PQUlTOGRsSnlxU0VhUWk0bTFFbFVZckhCNVdCQ1J4eG1hSXFNRjVqY0d0RGh2TmpVK2ZZOTBJTEI2WHVXZG9WRlpqV2xDQlhvaG1Ta3ROZUNSRUhGY25rWk1uT2pNOEtqOUJVakkxTkZ0b0VBMHRiblJqSVFBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRmdHQW5qbVJwbmlaRWRCYnFObHdzeDQwN0NyR3hkbE5IR0RHQkM4SVp1QUlEam90anNJbUF3bExST1VxV1lBR3FLTUNwalpqYUVaREUyWVU3U3BFbGZhNXdXajcydVN3aXlNTjBFYWR5N3JoSEMzZGFIQXRmVFdkakkxaGhYRjVmUmxwV0ptQk9pU2xGV1NkSUhCQXVPRXc3UFQ4eFdqQXpNbzVoRml0d2ZYMGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVYxWUNlT1pHbWVwa1YwQWVvU1hDekhxeXRXOFVWTzNSWGJIWTdCWnVCWVRqZ2QwSGNTQWtmRkV1dzVXbkJxSW82UzJ1T1FPQzF1ZGhUd2lqc1RzR2g2RG1MTlozaTVIUXpYei9PUjlzd2NzYmxYSlU1VVVTVkpUejRWS0VJTEtBdEZSeWc0ZXlNOFBuQTJNRE15V0Z3QkJDc0FkR0loQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFWellDZU9aR21lWmdCMUFlb1NBeWZQQStHU2NWWldHVGZjQWM3bGR1RzBUaHpkclZQZ25BYkRwZWp5SXhHYzBoSEhOaG9vczUxTVZZUUZrMGRCcy9ZSUtaczVxN082QXhlbDUyNU9SVjF4ZTlWaVZtNVNXeVZRWUZSSUJWSk5LRUZSS0VWSEtEazdQV00zTURNMFhHWXFjWE5xSVFBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRmQyQW5qbVJwbm1iUVdkMkVvdERBY1lZeEQ5QkxEZ05oRWp4ZGdKUFJaVGlxRThlbkUzRk9nMkpUbEJtVVl0TmRidFRMam9Da3AzY2s3Z2pLWTQ1Z1pCaXpSNWEydTJOZ09lZWQ4Z1R0NWJoRVhXTmdPMjQ0SlZGZVZTWUxTMU1FZkdGU0tFZE5QRXdrUUZaVE1UTTFOMXRqYXl4L2VGa2hBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVZvWUNlT1pHbWVwdEFGYU50WkJtY3dUR3hZN21nWXA3QzdBZzdFQmVHMGpMa1ZzbVFZSmpzUUhnbjIxT0YwVlpKVXRNd3VmVm1kU3NRSWswZUJzcG5CRW0yejcyNjFheGhYd1NNcTNOU3NSazl5UnloQlRpaEZkaWMvS1lvNU1ESTBObVlkS20yU1dTRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCV3hnSjQ1a2FaNW0xUVZvdXhvYzB6UU1aN0N1YURBb1k3Z1ZUazRnUkJWekhjN0VaQkFnUllJZktjQjdpcW9qcVZWSE9tNlBGZXlXb1JJMXRxT3pDSWZ1cUsvdERubmt0WG9OaTdaMjFXYXdkVTVQVVNkMUxZVWlRWUVvUkRrN1BYc3RBVEF5TkRaL1ZwZHhUeUVBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQldOZ0o0NWthWjVtMVFsbzJ3V2IwWFJRWTJ5Qk8yN3oyV3c2ZzY0alJCa2NRK0xFQkV5S21xTkF6emw5T2tsUTRuVlVGRldwcXRWMkJCa0p5bU8wZDl5cGRxL3ZyRE1yM1g2MThOUGJaVmlhRm50NkN5NDhLRDlKTURJME5qaGpLaXhzV3lFQUlma0VDUVFBSFFBc0FBQUFBQmdBR0FBQUJWaGdKNDVrYVo3bTBnbG91MjdGMmxuRjVwSTJhdVV0M3dNb24wc29JZzVMQXN1dHBNUXRUYjdZa3lRVk5hZldFUXRMMnNxNDN5ejQycWxpemNhYmtMeGtkOUxCRTd5VUJzeUxhcmYxUG9JcFdUVmdJaXdxZ2xnaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVlpZQ2VPWkdtZXA5QUJhTnN4aE5xcGpPeSt0c25jeGQzMUtLQlBTTnI1UnNaUjdyaE1Ia1ZPd3BQVUlDMmZyT21wSXVKcVI5N1pWenlTZnF2SXNaTThiV3JYSXFKTFRxS2I3TVdyU0FCSHdUb0xZbjArWGdwalV5RUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCVkZnSjQ1a2FaNW5oYTVqWm9sSloyVXNTYVBBdlJKMXg2Ty9YdERXSTVZQVJaS3FsVFNLWHMxb2JTSmFTcSttbUlpSzVjcXVVSkd1T2NhYXlqVzBMemtzdFUvdmtwclpxOUNRSFdURzJ1U2JleUVBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQlVsZ0o0NWthWjVuaGE0anBJcE9CN0Vrd2Rwc1FIYzYydSsvMms0NExNcU1MZVF1cHV4TVJJdW05QlNGVGErZGwyaW01R0pMdUdLWUZNeXR5dEt4U2IzeWlpcnU0clA2WllVQUFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVTVZQ2VPWkdtZUo0Q3VZMUNxS2l1Nk1ydlVkNjJiOU43dnRaOFBTQ3dtUkxHaU1yVkVKWnZMMzdNcGxGV2hwWnpOaW0zeGxxcGpseFVDQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFVM1lDZU9aR21lNklTdTRtSzY3RmpGTkoyc2Q2M0g4MTdEUHFCdlNDeUtWRVdrY1lrUzZweE1VUys2azFCWDAxT1dCWVhxbE5kVENBQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZMR0Fuam1ScG5taXFvdFBxdm5Bc3oySkxxL2F0Ny96cDlNRGdLQmNqQ284OHhVdXBNNmFjVHRnUGFRb0JBQ0g1QkFVRUFCMEFMQUFBQUFBWUFCZ0FBQVVqWUNlT1pHbWVhS3F1Yk91K2NMeFNjbTNmZUk3VGV0L3p2cUJ3eUFLV2pDOGtNUVFBT3c9PSkgbm8tcmVwZWF0IHNjcm9sbCBjZW50ZXIgY2VudGVyO1xufVxuLm14LXRvb2x0aXAtY29udGVudCAudGFibGUgdGgsXG4ubXgtdG9vbHRpcC1jb250ZW50IC50YWJsZSB0ZCB7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbn1cbiIsIi5teC10YWJjb250YWluZXItcGFuZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLm14LXRhYmNvbnRhaW5lci1jb250ZW50LmxvYWRpbmcge1xuICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaE5nQTJBUE1BQVAvLy93QUFBSGg0ZUJ3Y0hBNE9EdGpZMkZSVVZOemMzTVRFeEVoSVNJcUtpZ0FBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQWtLQUFBQUlmNGFRM0psWVhSbFpDQjNhWFJvSUdGcVlYaHNiMkZrTG1sdVptOEFJZjhMVGtWVVUwTkJVRVV5TGpBREFRQUFBQ3dBQUFBQU5nQTJBQUFFeXhESVNhdTlPT3ZOdS85Z0tJNWt5U0VKUVNTSTZVcUtLaFBLV3lMejNOcGltcXNKbnVnM0U0YUlNaVBJOXdzcVBUamlUbGt3cUF3RlRDeFhleFlHczBIMmdnSk9MWUxCUURDeTVnd213WXg5SkpyQXNzSFFYc0tyOUNGdU0zQWxjakowSUFkK0JBTUhMbWxySkFkdUJvNVBsNWlabXB1Y25aNmZjV3FJbUpDamFIT1poaXFtRkl1QWw2NFpzWml6RjZvRXJFSzN1Uk9sbTc2Z3djTER4TVhHeDhYQWo2SWt1NCtvSXJVazBoL1UwV0Vqem5IUUlzcWhrY2pCM3NuY3hkYkM1K0xseWN6aDdrOFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRNRU1oSnE3MDQ2ODI3LzJBb2ptUnBubVZoRUlSUm9HY3hzT3p3d3VSS3N3Wk83anZmQ0VnVGluUzduaEYwbU5FR2h3c2l3VW9nbHBTRHpoQzFLSWlLa1dBd0VKZ1FSTllWSk5pWlNkUjBJdVNzbGRKRlVKMHd1T01KSVcwMGJ5TnhSSE9CWklRamFHbHJXQnhmUUdHUUhsTlZqNVdhbTV5ZG5wOUxZMldib29zV2dpeW1RcWdFcWhON2ZaQ3dHYk95TzdFWHJLNDR1aHFscElxZ3dzUEV4Y2JIeU1lL0tNc2l2U2JQZExjbnRkSlAxTlBPYmlmUmlhUE13Y25DemNyYnlOWEc2TVhkeHVUaTd6NFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRPRU1oSnE3MDQ2ODI3LzJBb2ptUnBubWlxQXNJd0NLc3BFRFFCeCtOUUV3T2U3ejFmYUZhN0NVR3QxMUZZTU5BTUJWTFNTQ3JvYW9Qb2NFY1ZPWGNFZytoS0M1TEF0VEhRaEthSmlMUnU2THNUdjEzeTBJSE1PeXc5QjE4R2ZuK0Zob2VJaVlvWkNBazBDUWlMRmdwb0NobFRSd2h0QkpFV2NEWkNqbTBKRjN4bU1adHVGcVpDcVFRWG4za29vbWlrc0hpWm01MlNBSlJnbHJ3VGpZKzd3Y2JIeU1uS0U1Z296VzljSjdFL1dDZXNhdFVtMTF0RjB0RWp6eks0eTRuaHh0UEkyOGJxd2VqSTV1VHhKaEVBSWZrRUNRb0FBQUFzQUFBQUFEWUFOZ0FBQk1zUXlFbXJ2VGpyemJ2L1lDaU9aR21lYUtvQ3dqQUlxeWtRTkFISDQxQVRBNTd2UFY5b1Zyc0pRYTNYY1lsS0dtV3VKM0luRlJGcDFZNnVGaXh0YVYzUWwzY2FoejlYMnltZDdUaFRiNlo4VHEvYjcvaTh2R0NnR1FvYWNVSUZab0FYYkVkOU93UUdHR1pIaXpXT1FKQ1JCQmlJUW9vN2paaFJTd2RtQjNvVUI0b0dvNlNxcTZ5dE1RZ0pOQWtJckFxUkNpT0NJd2lXQkxSVFJTV3hsZ2toanlTOU5NYVV5TWxEVk1LOXhVT2ZKYnlXdjNxMmk3aEx1aFd3c3RsQ21hdkg1c3lyNWVyVnJ1NDRFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWlaY2dVR05BWUZKSk1pQldhZ1E0TWxuVHNFQmlLTElxczFya0Ftc1RSV3FDU3FPNjFXa1JrSUNUUUpDQmNIWmdkSENyRUt4cW9HeVVJSXRnVEZlc0syQ1h2VXQzcmNCSHZZc2RwNjA3Yldlc3VyelpYQncrZ2lFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWdTQ0FrMENRaVdDanMwQ3BRSW9qV2ZKWk1kbktjRUNhcURJSzQxWGtBaHREUzJYQ0d0cDdBa2p4Nm1ycW5Ca1NLaG9xUVhCUVkwQmdWTG01M0dGUVZtMHBUUG9nYVZ0Tit1bGR3NzNwUUhaZ2VXQjl3RzZwa29FUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2dktVU0Nsa0RnTFFvN05BcC9Fd2lDTlg1Q2NSWjdpQVFKaTFRWGp6VkNacFNWQkpkQUY0NklrVDVzRjRlUGlxSlJHWUdDaElXR2puMnVzck8wdFhZRkJqUUdCYlFGWnJ4UVNpSzVnZ1l5a3lHVkpwakpqOHVkSWNRN3hpV2pJUWRtQjJ1cEl3ZkVCdHEySG95ejFyUE01OURseUxUazR1OHBFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3a1JDVm9Db1dtOWhCTEZqcWFBZGhEVEdyUGtOSDZTV1VLQ3UvTjJ3cldTcmhiOG9HbHFZQWljSFpPSU5ETUhHOTdlWFhvZFVsTlZWbGRnUzRhS2k0eU5qbzhGQmpRR0JZOFhCV3MwQTVWUVhSbVNVd2FkWlJob1VKazhwV0duY2hlZ082SkNlRFlZQjZnREIxYWVHUWVnQnJtV3djTER4TVhHeDF5QUtic2lzNEVnemo5c0o3ZlNtdFN0UTZReTI4M0tLTXpJamVIRTBjYlY1OW5sM2NYazR1OG9FUUE3KSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDMycHggMzJweDtcbn1cbi5teC10YWJjb250YWluZXItdGFicyB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLm14LXRhYmNvbnRhaW5lci10YWJzIGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubXgtdGFiY29udGFpbmVyLWluZGljYXRvciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6ICNmMmRlZGU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGNvbG9yOiAjYjk0YTQ4O1xuICAgIHRvcDogMHB4O1xuICAgIHJpZ2h0OiAtNXB4O1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB6LWluZGV4OiAxOyAvKiBpbmRpY2F0b3Igc2hvdWxkIG5vdCBoaWRlIGJlaGluZCBvdGhlciB0YWIgKi9cbn1cbiIsIi8qIGJhc2Ugc3RydWN0dXJlICovXG4ubXgtZ3JpZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IC8qIHRvIHByZXZlbnQgYW55IG1hcmdpbiBmcm9tIGVzY2FwaW5nIGdyaWQgYW5kIGZvb2JhcmluZyBvdXIgc2l6ZSBjYWxjdWxhdGlvbnMgKi9cbn1cbi5teC1ncmlkLWNvbnRyb2xiYXIsIC5teC1ncmlkLXNlYXJjaGJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uLFxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIC5teC1idXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIC5teC1idXR0b24gKyAubXgtYnV0dG9uLFxuLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uICsgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xufVxuXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXNlYXJjaC1jb250cm9scyAubXgtYnV0dG9uICsgLm14LWJ1dHRvbixcbltkaXI9XCJydGxcIl0gLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uICsgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjNlbTtcbn1cblxuLm14LWdyaWQtcGFnaW5nYmFyLFxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4ubXgtZ3JpZC10b29sYmFyLCAubXgtZ3JpZC1zZWFyY2gtaW5wdXRzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBmbGV4OiAxO1xufVxuXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXRvb2xiYXIsXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXNlYXJjaC1pbnB1dHMge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXBhZ2luZ2JhcixcbltkaXI9XCJydGxcIl0gLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIHtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLm14LWdyaWQtcGFnaW5nLXN0YXR1cyB7XG4gICAgcGFkZGluZzogMCA4cHggNXB4O1xufVxuXG4vKiBzZWFyY2ggZmllbGRzICovXG4ubXgtZ3JpZC1zZWFyY2gtaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLm14LWdyaWQtc2VhcmNoLWxhYmVsIHtcbiAgICB3aWR0aDogMTEwcHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbltkaXI9XCJydGxcIl0gLm14LWdyaWQtc2VhcmNoLWxhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LWdyaWQtc2VhcmNoLWlucHV0IHtcbiAgICB3aWR0aDogMTUwcHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4ubXgtZ3JpZC1zZWFyY2gtbWVzc2FnZSB7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbn1cblxuLyogd2lkZ2V0IGNvbWJpbmF0aW9ucyAqL1xuLm14LWRhdGF2aWV3IC5teC1ncmlkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbiIsIi5teC1jYWxlbmRhciB7XG4gICAgei1pbmRleDogMTAwMDtcbn1cblxuLm14LWNhbGVuZGFyLW1vbnRoLWRyb3Bkb3duLW9wdGlvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLm14LWNhbGVuZGFyLCAubXgtY2FsZW5kYXItbW9udGgtZHJvcGRvd24ge1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ubXgtY2FsZW5kYXItbW9udGgtY3VycmVudCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ubXgtY2FsZW5kYXItbW9udGgtc3BhY2VyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5teC1jYWxlbmRhciwgLm14LWNhbGVuZGFyLW1vbnRoLWRyb3Bkb3duLW9wdGlvbnMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JleTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbiIsIi5teC1kYXRhZ3JpZCB0ciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXgtZGF0YWdyaWQgdHIubXgtZGF0YWdyaWQtcm93LWVtcHR5IHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5teC1kYXRhZ3JpZCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm14LWRhdGFncmlkIHRoLCAubXgtZGF0YWdyaWQgdGQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG5cbi8qIGhlYWQgKi9cbi5teC1kYXRhZ3JpZCB0aCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBSZXF1aXJlZCBmb3IgdGhlIHBvc2l0aW9uaW5nIG9mIHRoZSBjb2x1bW4gcmVzaXplcnMgKi9cbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG59XG4ubXgtZGF0YWdyaWQtaGVhZC1jYXB0aW9uIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubXgtZGF0YWdyaWQtc29ydC1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kYXRhZ3JpZC1zb3J0LWljb24ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmc6IDAgNXB4IDAgMDtcbn1cbi5teC1kYXRhZ3JpZC1jb2x1bW4tcmVzaXplciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAtNnB4O1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kYXRhZ3JpZC1jb2x1bW4tcmVzaXplciB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogLTZweDtcbn1cblxuLyogYm9keSAqL1xuLm14LWRhdGFncmlkIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICBib3JkZXItdG9wOiBub25lO1xufVxuLm14LWRhdGFncmlkIHRib2R5IHRyOm50aC1jaGlsZCgybisxKSB0ZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbn1cbi5teC1kYXRhZ3JpZCB0Ym9keSAuc2VsZWN0ZWQgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG59XG4ubXgtZGF0YWdyaWQtZGF0YS13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubXgtZGF0YWdyaWQgdGJvZHkgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE2cHg7XG4gICAgbWF4LWhlaWdodDogMTZweDtcbn1cbi5teC1kYXRhZ3JpZCBpbnB1dCxcbi5teC1kYXRhZ3JpZCBzZWxlY3QsXG4ubXgtZGF0YWdyaWQgdGV4dGFyZWEge1xuICAgIGN1cnNvcjogYXV0bztcbn1cblxuLyogZm9vdCAqL1xuLm14LWRhdGFncmlkIHRmb290IHRoLFxuLm14LWRhdGFncmlkIHRmb290IHRkIHtcbiAgICBwYWRkaW5nOiAzcHggOHB4O1xufVxuLm14LWRhdGFncmlkIHRmb290IHRoIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbn1cbi5teC1kYXRhZ3JpZC5teC1jb250ZW50LWxvYWRpbmcgLm14LWNvbnRlbnQtbG9hZGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBhbmltYXRpb246IHBsYWNlaG9sZGVyR3JhZGllbnQgMXMgbGluZWFyIGluZmluaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAjRjVGNUY1O1xuICAgIGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGNUY1RjUgMCUsICNGNUY1RjUgNSUsICNGOUY5RjkgNTAlLCAjRjVGNUY1IDk1JSwgI0Y1RjVGNSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMHB4IDEwMHB4O1xuICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG59XG5Aa2V5ZnJhbWVzIHBsYWNlaG9sZGVyR3JhZGllbnQge1xuICAgIDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwcHggMDsgfVxuICAgIDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTAwcHggMDsgfVxufVxuXG4ubXgtZGF0YWdyaWQtdGFibGUtcmVzaXppbmcgdGgsXG4ubXgtZGF0YWdyaWQtdGFibGUtcmVzaXppbmcgdGQge1xuICAgIGN1cnNvcjogY29sLXJlc2l6ZSAhaW1wb3J0YW50O1xufVxuIiwiLm14LXRlbXBsYXRlZ3JpZC1jb250ZW50LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5teC10ZW1wbGF0ZWdyaWQtcm93IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG59XG4ubXgtdGVtcGxhdGVncmlkLWl0ZW0ge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubXgtdGVtcGxhdGVncmlkLWVtcHR5IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuLm14LXRlbXBsYXRlZ3JpZC1pdGVtLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuLm14LXRlbXBsYXRlZ3JpZC1pdGVtIC5teC10YWJsZSB0aCxcbi5teC10ZW1wbGF0ZWdyaWQtaXRlbSAubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG59XG4iLCIubXgtc2Nyb2xsY29udGFpbmVyLWhvcml6b250YWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG4ubXgtc2Nyb2xsY29udGFpbmVyLWhvcml6b250YWwgPiBkaXYge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItd3JhcHBlciB7XG4gICAgcGFkZGluZzogMTBweDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItbmVzdGVkIHtcbiAgICBwYWRkaW5nOiAwO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1maXhlZCA+IC5teC1zY3JvbGxjb250YWluZXItbWlkZGxlID4gLm14LXNjcm9sbGNvbnRhaW5lci13cmFwcGVyLFxuLm14LXNjcm9sbGNvbnRhaW5lci1maXhlZCA+IC5teC1zY3JvbGxjb250YWluZXItbGVmdCA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcixcbi5teC1zY3JvbGxjb250YWluZXItZml4ZWQgPiAubXgtc2Nyb2xsY29udGFpbmVyLWNlbnRlciA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcixcbi5teC1zY3JvbGxjb250YWluZXItZml4ZWQgPiAubXgtc2Nyb2xsY29udGFpbmVyLXJpZ2h0ID4gLm14LXNjcm9sbGNvbnRhaW5lci13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLm14LXNjcm9sbGNvbnRhaW5lci1tb3ZlLWluIHtcbiAgICB0cmFuc2l0aW9uOiBsZWZ0IDI1MG1zIGVhc2Utb3V0O1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1tb3ZlLW91dCB7XG4gICAgdHJhbnNpdGlvbjogbGVmdCAyNTBtcyBlYXNlLWluO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zaHJpbmsgLm14LXNjcm9sbGNvbnRhaW5lci10b2dnbGVhYmxlIHtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB3aWR0aDtcbn1cblxuLm14LXNjcm9sbGNvbnRhaW5lci10b2dnbGVhYmxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zbGlkZSA+IC5teC1zY3JvbGxjb250YWluZXItdG9nZ2xlYWJsZSA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItcHVzaCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zaHJpbmsgPiAubXgtc2Nyb2xsY29udGFpbmVyLXRvZ2dsZWFibGUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubXgtc2Nyb2xsY29udGFpbmVyLXB1c2gubXgtc2Nyb2xsY29udGFpbmVyLW9wZW4gPiBkaXYsXG4ubXgtc2Nyb2xsY29udGFpbmVyLXNsaWRlLm14LXNjcm9sbGNvbnRhaW5lci1vcGVuID4gZGl2IHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5teC1zY3JvbGxjb250YWluZXItcHVzaC5teC1zY3JvbGxjb250YWluZXItb3BlbiA+IC5teC1zY3JvbGxjb250YWluZXItdG9nZ2xlYWJsZSxcbi5teC1zY3JvbGxjb250YWluZXItc2xpZGUubXgtc2Nyb2xsY29udGFpbmVyLW9wZW4gPiAubXgtc2Nyb2xsY29udGFpbmVyLXRvZ2dsZWFibGUge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuIiwiLm14LW5hdmJhci1pdGVtIGltZyxcbi5teC1uYXZiYXItc3ViaXRlbSBpbWcge1xuICAgIGhlaWdodDogMTZweDtcbn1cblxuIiwiLm14LW5hdmlnYXRpb250cmVlIC5uYXZiYXItaW5uZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RmZTZlYTtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSBsaTpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgY29sb3I6ICM3Nzc7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgYS5hY3RpdmUge1xuICAgIGNvbG9yOiAjRkZGO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQ6ICMzNDk4REI7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLm14LW5hdmlnYXRpb250cmVlIC5teC1uYXZpZ2F0aW9udHJlZS1jb2xsYXBzZWQgdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHtcbiAgICBwYWRkaW5nOiA1cHggMDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB7XG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICBwYWRkaW5nOiA1cHggMDtcbn1cbltkaXI9XCJydGxcIl0gLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHVsIGxpIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB1bCBsaSB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIHBhZGRpbmctdG9wOiAzcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB1bCBsaSBpbWcge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4iLCIubXgtbGluayBpbWcsXG4ubXgtYnV0dG9uIGltZyB7XG4gICAgaGVpZ2h0OiAxNnB4O1xufVxuLm14LWxpbmsge1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiIsIi5teC1ncm91cGJveCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5teC1ncm91cGJveC1oZWFkZXIge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gICAgY29sb3I6ICNlZWU7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG59XG4ubXgtZ3JvdXBib3gtY29sbGFwc2libGUgPiAubXgtZ3JvdXBib3gtaGVhZGVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZ3JvdXBib3guY29sbGFwc2VkID4gLm14LWdyb3VwYm94LWhlYWRlciB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLm14LWdyb3VwYm94LWJvZHkge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5teC1ncm91cGJveC5jb2xsYXBzZWQgPiAubXgtZ3JvdXBib3gtYm9keSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5teC1ncm91cGJveC1oZWFkZXIgKyAubXgtZ3JvdXBib3gtYm9keSB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgNHB4IDRweDtcbn1cbi5teC1ncm91cGJveC1jb2xsYXBzZS1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5bZGlyPVwicnRsXCJdIC5teC1ncm91cGJveC1jb2xsYXBzZS1pY29uIHtcbiAgICBmbG9hdDogbGVmdDtcbn1cbiIsIi5teC1kYXRhdmlldyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm14LWRhdGF2aWV3LWNvbnRyb2xzIHtcbiAgICBwYWRkaW5nOiAxOXB4IDIwcHggMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlO1xufVxuXG4ubXgtZGF0YXZpZXctY29udHJvbHMgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4ubXgtZGF0YXZpZXctY29udHJvbHMgLm14LWJ1dHRvbiArIC5teC1idXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjNlbTtcbn1cblxuLm14LWRhdGF2aWV3LW1lc3NhZ2Uge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbn1cbi5teC1kYXRhdmlldy1tZXNzYWdlID4gZGl2IHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4ubXgtZGF0YXZpZXctbWVzc2FnZSA+IGRpdiA+IHAge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qIFRvcC1sZXZlbCBkYXRhIHZpZXcgaW4gd2luZG93IGlzIGEgc3BlY2lhbCBjYXNlLCBoYW5kbGUgaXQgYXMgc3VjaC4gKi9cbi5teC13aW5kb3ctdmlldyAubXgtd2luZG93LWJvZHkge1xuICAgIHBhZGRpbmc6IDA7XG59XG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRlbnQsXG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LXBsYWNlaG9sZGVyID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDE1cHg7XG59XG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRyb2xzLFxuLm14LXdpbmRvdy12aWV3IC5teC13aW5kb3ctYm9keSA+IC5teC1wbGFjZWhvbGRlciA+IC5teC1kYXRhdmlldyA+IC5teC1kYXRhdmlldy1jb250cm9scyB7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4IDBweCA2cHggNnB4O1xufVxuIiwiLm14LWRpYWxvZyB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogNTAwcHg7XG4gICAgLyogSWYgdGhlIG1hcmdpbiBpcyBzZXQgdG8gYXV0bywgSUU5IHJlcG9ydHMgdGhlIGNhbGN1bGF0ZWQgdmFsdWUgb2YgdGhlXG4gICAgICogbWFyZ2luIGFzIHRoZSBhY3R1YWwgdmFsdWUuIE90aGVyIGJyb3dzZXJzIHdpbGwganVzdCByZXBvcnQgMC4gRWxpbWluYXRlXG4gICAgICogdGhpcyBkaWZmZXJlbmNlIGJ5IHNldHRpbmcgbWFyZ2luIHRvIDAgZm9yIGV2ZXJ5IGJyb3dzZXIuICovXG4gICAgbWFyZ2luOiAwO1xufVxuLm14LWRpYWxvZy1oZWFkZXIge1xuICAgIGN1cnNvcjogbW92ZTtcbn1cbi5teC1kaWFsb2ctYm9keSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG4iLCIubXgtd2luZG93IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiA2MDBweDtcbiAgICAvKiBJZiB0aGUgbWFyZ2luIGlzIHNldCB0byBhdXRvLCBJRTkgcmVwb3J0cyB0aGUgY2FsY3VsYXRlZCB2YWx1ZSBvZiB0aGVcbiAgICAgKiBtYXJnaW4gYXMgdGhlIGFjdHVhbCB2YWx1ZS4gT3RoZXIgYnJvd3NlcnMgd2lsbCBqdXN0IHJlcG9ydCAwLiBFbGltaW5hdGVcbiAgICAgKiB0aGlzIGRpZmZlcmVuY2UgYnkgc2V0dGluZyBtYXJnaW4gdG8gMCBmb3IgZXZlcnkgYnJvd3Nlci4gKi9cbiAgICBtYXJnaW46IDA7XG59XG4ubXgtd2luZG93LWNvbnRlbnQge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm14LXdpbmRvdy1hY3RpdmUgLm14LXdpbmRvdy1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4IDZweCAwIDA7XG59XG4ubXgtd2luZG93LWhlYWRlciB7XG4gICAgY3Vyc29yOiBtb3ZlO1xufVxuLm14LXdpbmRvdy1ib2R5IHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cbiIsIi5teC1kcm9wZG93bi1saXN0ICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1kcm9wZG93bi1saXN0IGltZyB7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kcm9wZG93bi1saXN0IGltZyB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4ubXgtZHJvcGRvd24tbGlzdCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LWRyb3Bkb3duLWxpc3QgPiBsaSB7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMTBweDtcbiAgICBib3JkZXI6IDFweCAjZGRkO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm14LWRyb3Bkb3duLWxpc3QgPiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4ubXgtZHJvcGRvd24tbGlzdCA+IGxpOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xufVxuLm14LWRyb3Bkb3duLWxpc3Qtc3RyaXBlZCA+IGxpOm50aC1jaGlsZCgybisxKSB7XG4gICAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbn1cbi5teC1kcm9wZG93bi1saXN0ID4gbGk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG59XG4iLCIubXgtaGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIGJhY2tncm91bmQ6ICMzMzM7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLm14LWhlYWRlci1jZW50ZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogI2VlZTtcbiAgICBsaW5lLWhlaWdodDogMzBweDsgLyogaGVpZ2h0IG9mIGJ1dHRvbnMgKi9cbn1cbmJvZHlbZGlyPVwibHRyXCJdIC5teC1oZWFkZXItbGVmdCxcbmJvZHlbZGlyPVwicnRsXCJdIC5teC1oZWFkZXItcmlnaHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDlweDtcbiAgICBsZWZ0OiA5cHg7XG59XG5ib2R5W2Rpcj1cImx0clwiXSAubXgtaGVhZGVyLXJpZ2h0LFxuYm9keVtkaXI9XCJydGxcIl0gLm14LWhlYWRlci1sZWZ0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA5cHg7XG4gICAgcmlnaHQ6IDlweDtcbn1cbiIsIi5teC10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIG1hcmdpbi10b3A6IDBweDtcbn1cbiIsIi5teC1saXN0dmlldyB7XG4gICAgcGFkZGluZzogOHB4O1xufVxuLm14LWxpc3R2aWV3ID4gdWwge1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LWxpc3R2aWV3ID4gdWwgPiBsaSB7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMTBweDtcbiAgICBib3JkZXI6IDFweCAjZGRkO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG4ubXgtbGlzdHZpZXcgPiB1bCA+IGxpOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbn1cbi5teC1saXN0dmlldyA+IHVsID4gbGk6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4ubXgtbGlzdHZpZXcgbGk6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xufVxuLm14LWxpc3R2aWV3IGxpOm50aC1jaGlsZCgybisxKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbn1cbi5teC1saXN0dmlldyA+IHVsID4gbGkuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICNlZWU7XG59XG4ubXgtbGlzdHZpZXctY2xpY2thYmxlIHVsICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1saXN0dmlldy1lbXB0eSB7XG4gICAgY29sb3I6ICM5OTk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLm14LWxpc3R2aWV3IC5teC1saXN0dmlldy1sb2FkaW5nIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5teC1saXN0dmlldy1zZWFyY2hiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5teC1saXN0dmlldy1zZWFyY2hiYXIgPiBpbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtbGlzdHZpZXctc2VhcmNoYmFyID4gYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xufVxuW2Rpcj1cInJ0bFwiXSAubXgtbGlzdHZpZXctc2VhcmNoYmFyID4gYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5teC1saXN0dmlldy1zZWxlY3Rpb24ge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBwYWRkaW5nOiAwIDE1cHggMCA1cHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1saXN0dmlldy1zZWxlY3Rpb24ge1xuICAgIHBhZGRpbmc6IDAgNXB4IDAgMTVweDtcbn1cbi5teC1saXN0dmlldy1zZWxlY3RhYmxlIC5teC1saXN0dmlldy1jb250ZW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtbGlzdHZpZXcgLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZGVmO1xufVxuLm14LWxpc3R2aWV3IC5teC10YWJsZSB0aCxcbi5teC1saXN0dmlldyAubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDJweDtcbn1cbiIsIi5teC1sb2dpbiAuZm9ybS1jb250cm9sIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuIiwiLm14LW1lbnViYXIge1xuICAgIHBhZGRpbmc6IDhweDtcbn1cbi5teC1tZW51YmFyLWljb24ge1xuICAgIGhlaWdodDogMTZweDtcbn1cbi5teC1tZW51YmFyLW1vcmUtaWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDTUFBQUFqQ0FZQUFBQWUyYk5aQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFLTkpSRUZVZU5waS9QLy9QOE5nQVV3TWd3aU1PbWJVTWFPT0dYWE1xR05HSFRQWUhNT0NUZkRzMmJNZVFLb09pSTFCWENCdU1qWTIza0ZyZFl6b1RRaWdSbThndFFXTEcwT0JCcXlobFRwYzBkU09JeFRyYUt3T3EyUFVjV2hXcDdFNnJJNjVpVVB6VFJxcncrcVlHaHlhbTJpc0R0TXh3RVMxQ1VnRkFmRnhxQkNJRGtKUGJOUldoelUzalJaNm80NFpkY3lvWTBZZE0rcVlVY2NNVXNjQUJCZ0FVWHBFakUvQnMvSUFBQUFBU1VWT1JLNUNZSUk9KSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuIiwiLm14LW5hdmlnYXRpb25saXN0IHtcbiAgICBwYWRkaW5nOiA4cHg7XG59XG4ubXgtbmF2aWdhdGlvbmxpc3QgbGk6aG92ZXIsXG4ubXgtbmF2aWdhdGlvbmxpc3QgbGk6Zm9jdXMsXG4ubXgtbmF2aWdhdGlvbmxpc3QgbGkuYWN0aXZlIHtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OERCO1xufVxuLm14LW5hdmlnYXRpb25saXN0ICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1uYXZpZ2F0aW9ubGlzdCAudGFibGUgdGgsXG4ubXgtbmF2aWdhdGlvbmxpc3QgLnRhYmxlIHRkIHtcbiAgICBwYWRkaW5nOiAycHg7XG59XG4iLCIubXgtcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDMwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICB3aWR0aDogMjUwcHg7XG4gICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBvcGFjaXR5OiAwLjg7XG4gICAgei1pbmRleDogNTAwMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgcGFkZGluZzogMjBweCAxNXB4O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLWluLW91dDtcbn1cbi5teC1wcm9ncmVzcy1oaWRkZW4ge1xuICAgIG9wYWNpdHk6IDA7XG59XG4ubXgtcHJvZ3Jlc3MtbWVzc2FnZSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG4ubXgtcHJvZ3Jlc3MtZW1wdHkgLm14LXByb2dyZXNzLW1lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ubXgtcHJvZ3Jlc3MtaW5kaWNhdG9yIHtcbiAgICB3aWR0aDogNzBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhSZ0FLQU1RQUFEbzZPb0dCZ1ZwYVduQndjSTZPanF5c3JGSlNVbVJrWkQ4L1AweE1UTTdPenFlbnAxaFlXRjFkWFVoSVNISnljb2VIaDB0TFMxZFhWNmlvcU0vUHoyVmxaVDA5UFRjM04wQkFRSVdGaGRiVzFseGNYSzJ0clVGQlFUTXpNd0FBQUNIL0MwNUZWRk5EUVZCRk1pNHdBd0VBQUFBaCtRUUVEQUFBQUN3QUFBQUFSZ0FLQUFBRms2RG5YUmFHV1plb3JxU0pybkI3cHJBcXY3VjQweDdRL1VCQXpnZjhDV3ZFNGhHV0RBNkx4aEVVeU5OTmYxWHBOWHU1ZHJoZWt0Y0NzNHpMNTVYNVNsYVBNVjRNREg2VnIraFR1d29QMVl2NFJTWnhjNE4zaFh1SGYzRnJVMjBxakZDT0lwQkZraDZVUUphWVB5aGhNWjRzb0RhaVZsczlVMHNyVFZGSXFFOVFxU3FySFVzN09Ub2xNN2NqdVRnNXRyZkFJUUFoK1FRRURBQUFBQ3dBQUFBQUNnQUtBQUFGSktEbkhZV2lGSWZvUVZyclFxTXJhK1RzbG5acjV0ckpvN3dVYXdZVFZRb1VDa29VQWdBaCtRUUVEQUFBQUN3QUFBQUFHUUFLQUFBRldhRG5NY1N5RUpLb3JrZWhLTVdoUGx4dFA2c0thWHdQZVJLYmtNUElIWHBJellFd3RCRnloV1N2c0dqV0ZqbUZsS2VvV3JFcjdWYkJ0RDVYMFcyQllTVWF0MG9QYllqTGVYYkpuNGcwbVJDS2RpSVZCUlFVTVNJaEFDSDVCQVFNQUFBQUxBQUFBQUFvQUFvQUFBV0tvT2NsUXhBTWthaXVETEVzaExUT1I2RW94YUUyV2U4M005R0RReXcrZ2g2SVpzbUVlQ0srYUNZeGt4U3ZIQWFOeWRVY0JsTGZZRWJBRmdtelFwZFpDSVI3Z2RuQ1RGek1GT3Vsd3YyT3IrWjBkaXQ0ZVFwZ2IyTXJaWFJvSzJwNUJRbHZVek1NZEZsYmVUbzhVa0JCUTFoSFFVcGRUaUlrSmdOVVNCNHRFeE1FV3F3VkJSUVVPU0loQUNINUJBUU1BQUFBTEFBQUFBQTNBQW9BQUFXOG9PY2hoaUFZaUtpdXlSQUVRN1RPRExFc2hEU3ZSNkVvaFlQS3NTa2FIVHRQSThOc05wSVBqblQ2U0VJMDJDeGtaT3h1VXF0SWM1eEp6Q1RUTkljeE8yVGZtb1BCYXpUTUJ1VG1ZRVpRVHdrekJYQlpCUUowUlFJekFYbE1BVE1MZmxJTE13cURXQXFHaDRrcmk0eU9LNUNSa3l1VmxncHpoM1lyZUl4N0szMlJnQ3VDbGdVSWgxOHpDWXhsTkpGcmJaWnhIa1JlU0R0TFpFODdVV3BWTzFkd1d5SVlKU2RnU1MwdkEyWkpIalVURXdSczNoVUZGQlJCSWlFQUlma0VCQXdBQUFBc0FBQUFBRVlBQ2dBQUJmQ2c1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkROSzhNc1N3RXlVNTFLQ2dVaFlNSzBHazZBVVBIWmtwMURCdVpyTFl4ZkhDKzRNY1FvaW1iSVNPbnVwTmlVZDhiMlNxaXJXY1NNd2w0ejJITURtYUJHZ2NXYTA0V013WndWQVl6QTNaYUF6TUVmR0FFTXdXQ1pnVVloazBZTXdLTFV3SXpBWkJaQVRNTGxWOExNd3FhWlFxZG5xQXJvcU9sSzZlb3FpdXNyYThyc2JJS2haNklLNHFqalN1UHFKSXJsSzJYSzVteUJSZWViRE1JbzNFMHFIY3pESzE5ZjdLREhreHJVRHRTY0ZZN1dIWmNPMTU4WWp0a2dtZ2lKRXlnR0NJQ2d3c1ljb2JVdURFQUQ4RWVFeVlROEVPd1FnRUtGSktJQ0FFQUlma0VCQXdBQUFBc0R3QUFBRGNBQ2dBQUJicWc1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkROSzhNc1N3RWlRclFLUm9CTzQ5ancydzZrbzJNZE5wSVBqalk3R05rN0haU3JLWjRJMXRGcHVoTVlpYkp1amtNaTlkb21SbkdUY05za0o0T1pnUnZXUVFZYzBVWU13SjRUQUl6QVgxU0FUTUxnbGdMaFlhSUs0cUxqU3VQa0pJcmxKVUxjb1oxSzNlTGVpdDhrSDhyZ1pVRUY0WmZNd2lMWkRTUWFqTU1sWEFlUkY1SU8wdGpUenRSYVZVN1YyOWJJaVFtS0VraUdDNHdaVWsxTndOcjJEMFRFd1FNSWlFQUlma0VCQXdBQUFBc0hnQUFBQ2dBQ2dBQUJZZWc1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkRwQUpkN3dNemtXTkRMRHFDbmtabXlXeU1mTkJPaWxXc2JtU3JDSE9iU1ZpaVBzdk1ZQzBhWmdNdWM0QUI5ekF6UVprb21BWFV5MERiRFYvSjUzVXJkM2dCWDI1aUsyUnpaeXRwZUFNWGJsSXpDSE5YTkhoZEhqeFJRRUZEVmtkQlNseE9JaVFtS0VnaUdDNHdXRWcxTndNSklpRUFJZmtFQkF3QUFBQXNMUUFBQUJrQUNnQUFCVldnNTEwV2hsbVhxSzZJSVFnR29nSmRiUU9yNm14ODc0eTJZQ2ZGNmhrM0NJdlFac2taamowRFpsbkQ1QVJRbm1CS3RhNndXWUdTMmx3OXM0WUxkWmhEWkpFZW1oQ1g4K3lPUHhISmhLcXJNQzR3TWg0aEFDSDVCQVFNQUFBQUxEd0FBQUFLQUFvQUFBVWlvT2RkRm9aWmwrZ0JYZXNDb3l0MzVPeVdkbXZtM2NtanZCUnJCaE9SVENoUkNBQTcpO1xufVxuIiwiLm14LXJlbG9hZC1ub3RpZmljYXRpb24ge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAxMDAxO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuXG4gICAgYm9yZGVyOiAxcHggc29saWQgaHNsKDIwMCwgOTYlLCA0MSUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgyMDAsIDk2JSwgNDQlKTtcblxuICAgIGJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgxLCAzNywgNTUsIDAuMTYpO1xuICAgIGNvbG9yOiB3aGl0ZTtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG4iLCIubXgtcmVzaXplci1uLFxuLm14LXJlc2l6ZXItcyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMHB4O1xufVxuLm14LXJlc2l6ZXItbiB7XG4gICAgdG9wOiAtNXB4O1xuICAgIGN1cnNvcjogbi1yZXNpemU7XG59XG4ubXgtcmVzaXplci1zIHtcbiAgICBib3R0b206IC01cHg7XG4gICAgY3Vyc29yOiBzLXJlc2l6ZTtcbn1cblxuLm14LXJlc2l6ZXItZSxcbi5teC1yZXNpemVyLXcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLm14LXJlc2l6ZXItZSB7XG4gICAgcmlnaHQ6IC01cHg7XG4gICAgY3Vyc29yOiBlLXJlc2l6ZTtcbn1cbi5teC1yZXNpemVyLXcge1xuICAgIGxlZnQ6IC01cHg7XG4gICAgY3Vyc29yOiB3LXJlc2l6ZTtcbn1cblxuLm14LXJlc2l6ZXItbncsXG4ubXgtcmVzaXplci1uZSxcbi5teC1yZXNpemVyLXN3LFxuLm14LXJlc2l6ZXItc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5teC1yZXNpemVyLW53LFxuLm14LXJlc2l6ZXItbmUge1xuICAgIHRvcDogLTVweDtcbn1cbi5teC1yZXNpemVyLXN3LFxuLm14LXJlc2l6ZXItc2Uge1xuICAgIGJvdHRvbTogLTVweDtcbn1cbi5teC1yZXNpemVyLW53LFxuLm14LXJlc2l6ZXItc3cge1xuICAgIGxlZnQ6IC01cHg7XG59XG4ubXgtcmVzaXplci1uZSxcbi5teC1yZXNpemVyLXNlIHtcbiAgICByaWdodDogLTVweDtcbn1cblxuLm14LXJlc2l6ZXItbncge1xuICAgIGN1cnNvcjogbnctcmVzaXplO1xufVxuLm14LXJlc2l6ZXItbmUge1xuICAgIGN1cnNvcjogbmUtcmVzaXplO1xufVxuLm14LXJlc2l6ZXItc3cge1xuICAgIGN1cnNvcjogc3ctcmVzaXplO1xufVxuLm14LXJlc2l6ZXItc2Uge1xuICAgIGN1cnNvcjogc2UtcmVzaXplO1xufVxuIiwiLm14LXRleHQge1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbn1cbiIsIi5teC10ZXh0YXJlYSB0ZXh0YXJlYSB7XG4gICAgcmVzaXplOiBub25lO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cbi5teC10ZXh0YXJlYSAubXgtdGV4dGFyZWEtbm9yZXNpemUge1xuICAgIGhlaWdodDogYXV0bztcbiAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG59XG4ubXgtdGV4dGFyZWEgLm14LXRleHRhcmVhLWNvdW50ZXIge1xuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcbn1cbi5teC10ZXh0YXJlYSAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gICAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xufVxuIiwiLm14LXVuZGVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xufVxuIiwiLm14LWltYWdlem9vbSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5O1xufVxuLm14LWltYWdlem9vbS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLm14LWltYWdlem9vbS1pbWFnZSB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xufVxuIiwiLm14LWRyb3Bkb3duIGxpIHtcbiAgICBwYWRkaW5nOiAzcHggMjBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZHJvcGRvd24gbGFiZWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZHJvcGRvd24gaW5wdXQge1xuICAgIG1hcmdpbjogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1kcm9wZG93biAuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG59XG4ubXgtc2VsZWN0Ym94IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LXNlbGVjdGJveC1jYXJldC13cmFwcGVyIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuIiwiLm14LWRlbW91c2Vyc3dpdGNoZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMzYwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IDIwMDAwO1xuICAgIGJveC1zaGFkb3c6IC0xcHggMCA1cHggcmdiYSgyOCw1OSw4NiwuMik7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlci1jb250ZW50IHtcbiAgICBwYWRkaW5nOiA4MHB4IDQwcHggMjBweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgY29sb3I6ICMzODdlYTI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU9nQUFBQmdDQVlBQUFBWFNqN05BQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlScFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TXkxak1ERXhJRFkyTGpFME5UWTJNU3dnTWpBeE1pOHdNaTh3TmkweE5EbzFOam95TnlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5pQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRG8wTXprd09UUkVNRFEyTkVZeE1VVTBRVFE0TVVJNU5UTkdNVVEzUXpFNU55SWdlRzF3VFUwNlJHOWpkVzFsYm5SSlJEMGllRzF3TG1ScFpEbzBNemt3T1RSRU1UUTJORVl4TVVVMFFUUTRNVUk1TlROR01VUTNRekU1TnlJK0lEeDRiWEJOVFRwRVpYSnBkbVZrUm5KdmJTQnpkRkpsWmpwcGJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qYzBSRU15TVVaR05EWTBRekV4UlRSQk5EZ3hRamsxTTBZeFJEZERNVGszSWlCemRGSmxaanBrYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pjMFJFTXlNakF3TkRZMFF6RXhSVFJCTkRneFFqazFNMFl4UkRkRE1UazNJaTgrSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGlBOEwzSmtaanBTUkVZK0lEd3ZlRHA0YlhCdFpYUmhQaUE4UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrZzF0Umx3QUFFRkZKUkVGVWVOcnNuWWwzVmNVZHgyZHU4ckpESUpDd0NnalZhclZvc1ZYYzZqbldubnBJUWxKV2w2T0NyUFlma2gxY2l1d2xMRm81dFQzbFZKUlZFVVVFUlFRSlM0Q1FRRWpDUzk3MCs1Mlo5M0lUREd1Uzk4ajcvVGp6N3IyL2U5OTlaTzU4N205K003K1owY05YYnNxS2FUTmVLVlZvbEttT0tiWDM5RXNWS2wxRVY2MklLSzN3QjV1SGNZZy8zM3lDNHgybS9FMmpSRVNTTE1HSmw4dXZZcnNIaWR1aFNBK21Vd2FZaWhsUk0zSEdPdXp1Wlg0Zy9SbHBpdDY4TkZ1S2gwalNEWWd4emxBTVc3V3BDQmIwNlJqTmlEWUh6azZ2UEpaMm1iRnArYStKTEN4b0hyYm5vVnB0eW1lZGxXSWlrblJBS1VOWFZRMERvT01BcUlKMlg4MzB5cFBwQitteVFsL2xIWTNES0xaYlRmbnNMNldvaUNRZFVNcmdWVlZqQWVoSWFHTXhaWGFlbi83WGMybVpNWnVYVm1MenFGSTJmL1lCMm85TTJleW9GQm1ScEFKS0tWbTk4UkZvUndCUUZzZ2RnTFErVFNFZEIwQkxzWnNCUUd1d3Y4NlV6VGtqeFVZa3FZQlNpbGR2SEFkQWgyRzNDUloxUisyMFNRM3BDZW1TZ2RpVUFkQlJBTFFGKzl1UWRnTlVhZVVWU1I2Z2xBR3IvL0U0Tm9NQWFBTjgweDExMHlZMXBXMUdiVmxDdi9SMy92QVE5amVac3JsWHBBaUpkS2NFTnpqUDdoZFU3VlErMGhOOTFxeVBwR3RHd2Yrc3dvYmRNWmVRSGtENm05Nnk2SDRwUWlKSnM2RGVpa1pnUVIrSEJTMUNsYmZXYVBQWjVhbFRXdFBYa2k0dXNGVmVaUjV3Q3ZhZm1vOU42YnlyVXB4RWVoeFFTdjgxRzNJQUtDQTFoUUQwSFBaM1hVbGpTQjJvaTU3QjVua0FpbHFJdVlEOWpZRDB1QlFwa1I0SGxGSzRaa01lQUIwUFFQTUI2TmxXWlhZM1Q1MGFTM05JaXdIb2l3QjBqSEw5TWJ1UVBoRnJLdExqZ0ZMZ2crWUQwUEdnTWcrQW5zRjJUelROSWJXWnVIVWhxcnpxOS82dzFqWWdsYzcvVVlxWFNJOENTaWxZdTQ0VzlDa0F5bXJ2S2ZpbmUxdW5URE1DNmNJaDJQd0o2VmNBbFBteEY5YjFYMmJDL0NZcFppSTlCaWdsRDVDMnVyamRiQUJhRGRVK2dUUnNUWTJ6cHRxMitQNFRrSDRqT1NQU1k0QlNzdGV1TFFDZ1R3UFFMQnhXd3ovZFo2Wk1GMGd0cEF0S3NIa0JnTWE3WVk0QTJnL05oTGRxSlhkRWVnUlFTb1NRYXNQV3pBZ0FQVVZMQ2toamtxMCtjejljOEFRMlR5TDFVeTVzY2p2U0RvRGFLcmtqMHUyQVVqTFdyV0cvNEZNQWxPTW56K0NPZTh6a2x3VFNOa2laTHhNQTZDTmV4UzZaandEcEVja2RrVzRIMUVPYUQwQ2Z3bTRPN3NqeGs0UlVyRVE3VU4rK2p5OHlwSHU5Nmp1a2p3SHFCY2tka1c0RjFONW8zV3FHQTQ3SEhmT1VEUTgwdTgza2x3WFNhMEY5RnBzL0lQVlZkcnlwK3N4WGU2VzFWNlQ3QUUxQXFnMzlybndmWGJNTGtNb1l5bXNoemNYbUw4cU9ON1hDb1B2L0lPMEZxT0llaUhRUG9QYUc2MWZsT1F0aGFDSHE4QXM3emFSWG1pV3JmeEhVVWI3YUcyL3Q1Y0NFYmVLZmluUWJvQjdTSE44WDJCKy93SEdrbndOU0daclZPYWkveGVZeHBGRmU5Wk5peU9DRXR5UzJWd0R0bnE1THZmNkRMRnZvdE9HQVovaFhCcEMrZWtteS9JYitLV0V0OGFyRFNQOEdxS2NsZHdUUTdvQTBFNy9BUWM2RGZUL2dia0I2WHJMOXVwQnE1VUlHQ1dxaGNrSDRqRVQ2TDBDdGtSd1NRTHYrUnphczVOdytuRDRscG9MWUY2Ynl0V3JKK2h1Q0NqZEJ2YURhZ3ZBOXFCcWd6aGRRQmRDdWh2VHY3S2dmQVVENWd3Y0I2VkhKL3BzQ2xZMXR6M2tmMVQ0eWIxRzNBMVNaczFjQTdWSkl4d0xRa2Q0Z0hIV2d2aTd4dTdjRXFuNHNaRkhwbzM0S1VLVXhTUUR0b2gvYytONFFWMjJ6djN0S2FmV0ZxWGhkQWhwdUd0UUZCUFdQb2FvdnM1S0EvZy9waUNtZEx5ODhBZlNPSVdYd09BTWFzZ0RvUmV6dk1oVnZTRi9wcllIS1lJZW5rZTREb0lPOG1sWGVuVGo3bFNtZEp3RWlBdWlkUVBwdXZ2V3JORnNxRGNQY2RnTFNlbmtrdDVHWFd4YzhZMEZWeXJzUG1uM09YQXhxRjBDVnJpMEI5TFlocFFYbDhncTBBQzJLWTBvclpzak03YmNQS2h2aXhtSnZqRmZSZFRpbzJMMGxFNW9Kb0xmOW42aDZoMzJsdy8xVUlkOEMwaC9rMGR3SnFBdHBTVG5wK0VNaExhdS91NUVPbU5LNUVwZ3ZnTjR5cEhqekcxZEYwK29rOXZlYmlUT2w4ZWpPUUdXZ0EwZk9qTURSQ0srK0NwLzFBTFpmbXJLNUp5U1hCTkJiZ0hURllNVVJIbHBGQUdpZHJacE5uTmtvajZrcllGM0V5Q1NtKzFYaWtXdXVYTWVsRmZlYnNqbmlxd3FnTndWcEhnQmw1RkYvKzdaWFpvK1orS2FFQjNZZHFNVUE5RkZ2VmUveGFnNXhvMXZ4RlhTSFpKbEZBZlQ2LzZsTkt6SUJKZ3ZSRU8rWEhnU2tFbm5VMWZtOFpUR0h1VDNTd1ZkbEZmZ1FmVldrbzZaOHRyZ1pBbWhub0M1SDRURWp2RjlhYmYzUzhsa3Q4dGk2SEZUT216UlcyVVdoOUppMktqQUhrdXR2bFdzSlBvYThGMWdGMEk2UUxodGlDNDlXV1FDMHdmcWw1YlBFWCtvMldKZjBBNkQwVlVjck8zK1NqcDlxeFA1M09FZGdmMENOUmw2VUFtZ0MwbHlVRTFyVFltWDc5c3dCVkwya0JiSzc4MzN6RXVTMy9vMXlBOGtkcks2NHdFZlZkRGtZQzN6WVRKd3BMOHgwQnJTdHdDeWxYM3FQTHlYSFVWNitObVhpSS9WUTNoZmg4MEZrL1JoblhST1dsUS9qRkk2UFlJOE5UVCtiaWhreXIxSTZBdW9MQ254U3d5cFlnREp5R2Z0N1Rka2NDUkhzNlJxTjBteGdZdklOVEFucjJvejlZOHExQ2g4MUZXK2NreHhMSTBCOTFhdkErNlVEVUNyNHR2NEdrQjZUeDVrTVdKZHJWd1cyalV0czBCc1JzcTY4NGhMMFA5a2Fqd08zeGxTK0ppTnVlak9nb1FZTnh2SEcrL0k0Ync4NzNHVnR6bVErazZvVnVUNFdlTFNIZFdBb01JSWZET1Evb1dMQno2d09RMWN0c3o3MlVrQWRwSXM1bFFvYk1qaEZTQ09BWlFpYlZLdFNCdGgzKzNyTE9zcUhHN29KMFdKQi9BcldnR284cktkd0xWKzBaMlErNVY0Q3FJYzBSN2wrdkVIZUVUcUtsL1VoVXpwWEdwQlM3Vmx0ZkkvRERJY0QwT0hLTnZqcFVhR3pjVDgyNXNNUUFhcytBeDBEL1dzQ3BldlNiWm5MWGdGb0NOUnd3RDJiL3I4QXBIV0NSUW8vc3cwcmFVcUxMYlJLRHdXTWpNY2UxdWJISnFCbHErQlZEMm9OZEJmd3hRc1pTbk1GZ3d0WHBrNXBFa0R2Q2tnWGNRVEhRNjRCaVc5aXc3NjY3MDNwUEdtWXVGdWU0Zm9QTXF6dmFxZHIxU1dBa2RYaVlvRFp6NE5xb1NYWkdSN2tER01IcWRkQ1YwOUxpLzJMZ2RGczNlZHhQYTY2Y25aNjVWMFJYUEhraXUyWitMdnp0VkY5ZWgyZ2lZZThkWkdiUmRDOWZpOHFOaUNWenBQdW1MdFlNdGF0eWZLZ011Qy9DREFXQWRBaXhhM1JPUTVlRHpDM1JzY3RiOXdlTjBGM09YQWhqQTJFRnNlMHZFM2FUcTZ1bTNDdVVSdE4vemVLL1didGZPU3IwTVZDOTJvKzlPcUw3ZnA2SDM1L1c0RC9VN1pPL0xvT3NNMENaTmhxNkRsQ1MwZXd6Y1YxT2REeC81dURxN0d2OHFETGc0N1Yvd0p0MjFPMG5iK3gxd0xxSVVYVnlUeWc3QUs2ZHNRR1Y3cUdOWjB2SGVtOVRQcXNXYy9DM1E5UUZhTFFzeFpWQ1BnNHdWcGZIUGZWZGtFdmxVRm9BMTkxMWlHSTQ1K0JyVmJHd1ZZSnRQVzFzRnRkK0Y2MEJTRkE3ZFpDMW5hWDBIVWQ3aGZTYVJzdGh4ZUlVZlg2K2NXZjI3UEdmeG9kUDhKV3U3MlkxYnR6aVd2dE9XTkxmZnc2NC8vRmRIdy9acjhUaTkveG11KzA3Y2V2aVlYMEhmZGpmcjhWKzYzdDlQRy9NUDZ5TVNyeFZ6TmxYL2JXMU9wb1JiOVVMYmwxMTE3YnlYSGlDWVpmWnAzcE81N3JvTHZ6MTg2MUtuTVQxNFIxNWdiWG1jN3VwYS96M2M3T2RhSnZhOFc5d2JYdGZGQjFuU3F1dWdrTG1nTmRRVUNMcFRRdFZXN2dMRyt1dDFxd2FMQnVSc1BhcVlqZFY1cGZoU1hVR2FGNzBaSUhIUUJsOGJ3YUFyUlZXOHRMQkRRdE5NTWpvOVpTRzFwc1o3bHhkYU5tNzROUnNPaWFzZWFYdlRXM3hUa3pMVjZ2elFYN0FTbG5zMmZrQzZ0RXo2ck14dStSQjBkVU5FZGFldE5IbW55NmF5UkltMGNUemF0QitsVFppQmI3a3VNc2VNK3BTRk94bEZzUkFUUjFRTjJQengzS2RZNjdWY0V6bThhcHpPWnNLUTRpS2RlTzBwc2JpVzc0eDMrNGdGVmVocVRSNTRDUFlEalc4YmlaOEpaMHlZZ0lvQ2tDS1dkbzU0aU1JYjQxb2hicGEwQjZVWXFIaUFDYU9xQnlYbDVhMC9pYW5Cd1EvaTFBbGVCN0VRRTBkVUI5bXpHOUkrTWVLOUozaXZQeFNMVlhSQUJOR1VnNTN2UkJaVVBOckxEdjlLQ3NjQzBpZ0tZV3FFT1ZuWXZIOXAxU3pucFFaUTRlRVFFMGhVQmxueWtqa2ZLOGY4b1pBZzREVkJsb0xDS0FwZ2lrakxwNlNDVkNCcmthbS9vZTZVZUFLbE5RaWdpZ0tRSXFBN0RaZnpyRXEyaEZqOUNxQWxRSndoY1JRRk1FMUJMdm41WjRGY2Nqc3NYM3BMVDRpZ2lncVFNcUc1TFlMVFBRcXk1NVVFOExxQ0lDYU9xQVN0K1U4K3dNOEtwNlgvVTlKYUNLQ0tDcEErcG83NThXdFZsVWZkaUJPbDh5VzBRQVRSRlE2WjhPZGFEcWVOV1hyYjdWQUZVYWswUUUwTlFCVlE4SlZYMjVZdmdQeXFqanBuUytEQllYRVVCVEE5UUZJNzFGZFkxSmhxdUhxeCtaQUtwTTBpd2lnS1lJcUlSMEJBQ056K1JBSzNxQ3kvbVowbmtOa2tNaUFtZ3FaUHpXQlFSMGxFb0U1TnNaenhpTXozVTNhd0NyWkpLSUFKb0NvREl5NlY2L2JrbGNMbmxRVHdKVThWTUZVSkhrZzdxUXNiN3NvcUZsalhmUlJIMzE5eWRUT3ZleTVKSUFLcElhc0RMZ1liaUhWZmx1bXZOSXg3ajZseW1iSzkwMEFxaElDb0JhcU5xVzdYTmliSEErcDJNNUFWREZxZ3FnSXNrSGRaRmZ4Vm9OQnFBRFEyZHFQYXpWcG15T2ROVUlvQ0pKZjJCYkZ0RS92Y2Y1cWJyQXE5bVFkTnI3cStkTTJXeDVxQUtvU1BKaFhVdy9sZjJxZzBKYUxtMVFEVXQ3MHBUUGxxbERCVkNSRkFBMTExdFZWSC8xQU8rclVoajRjQkk2d0RwTC9GVUJWQ1Q1c0M3aFVvdkR1SDZtY3NzdXFsQ3cvaWttd0NycnBBcWdJa2wvdUp1WERGUnVPWG5DV2hBNjAyQmhOWW9ydnRXWmlXOUtaZ21nSXNtRmRTbGg5ZU5VN2NLMjhXb3cxNkxrZEtKbkZFTU1KODZVeUNVQlZDUzVzQzRyc3JBYU93U3VNTFNJTGdNZ3p1SDRETTZkTlJVenJraHVDYUFpeVN3QW01YWg2cXZaQ2x5c3dwRkxiWTFNTlRobUVQOTVVL0dHOUxVS29DTEpnM1U1NDRFQnF5N3gxalUzQWF4RDlxSUg5anlPYWszbDYxSWRGa0JGa2xZNHFsYjBkVmJWZHQyRSsxcUphOHdCcXhramZJSEpWTDRtRTNnTG9DTEpnZlVkcnNaTzMzV0FiUlZPaEJ3bS9GY1VwS0FlMk5aNlM0dXR2bXdtdlNLWko0Q0s5SGpCMmZndWdlM25yU3ZCTFFHZ3JwbXA3YXFvQTlWYTJqb2dYR2Ntdjl3b3VTZUFpdlE0c08vQmxBWjlBV2gvSFBiMzhCWjBxQlpUb2haV1oyWHJzVjhQZllPWk1sMkcwQW1nSWoxYXVEYXNqSVJnN1FjUTZkUG1ocXJGWVgvMkNtR0ZEV1pJNHFWQTZVc0VOenAxYWt3QUZSSHBxUUszL29Nc2ZIS2NLMU5mR3pSaFZKODRySUcvTG5EZ21zQUZValJrdUxWdkdqS01qWUpxZ0w2eGJ0cmtxQUFxSXRMZGhYRGRhbktaajcwK2dRdEp4RmIzSWJpQkJ6ZkRYd3RBUGNCVzN4SzRlWWFiQXFPNWJmUkFOMnUzNmx3ejlNMm5YNnE0SzYzdytCWGJBd0ZVSkdVbHNuYXRCbkE1QUM0L3d3S3M4Z0VvdDNtQnF5cEhFaGEzUGJpSlNqVDFnWnZiQ2RCcXprVWNoWTdIVVczWGVOVlJmNzVGRzgxdUl1T09OZThZWmZVYjMydnRjTytXUTYrKzJBNmNoOS9meHAvTTFDWitsZjNNME81ckVmd21WUkZ0VCtsTWZHVGFZNlBwQm1UaW9peXY1M0dXTWpwYjIvTUNxTWhkS29Wck5tUTZVRlV1QU1peFd3ZHVGZ3AzTm81em9NOEtQRnR4Yk9NdzZ3N1ZhdjFMa0p2UTkwSjYzY2tMb1FPZzdWNFV2NlR2N0Q0QWxQc3hBVlNrMTh2UVZWVzBTckJJT3N0YnM0aTNaaEZ2aGVQV2pEWHB3QjNyd0ZvNW83QzErakJFc0pUV0lvWjF4bG5oZG9DMmF0ZngxSUxmdEZ0M2JQVnhxMjJ0dWJmYVVhKy9Da0NiZDg3NFkvVC9BZ3dBMk1pN0hkQWUraWtBQUFBQVNVVk9SSzVDWUlJPSkgdG9wIHJpZ2h0IG5vLXJlcGVhdCAjMWIzMTQ5O1xuICAgIC8qIGJhY2tncm91bmQtYXR0YWNoZW1lbnQgbG9jYWwgaXMgbm90IHN1cHBvcnRlZCBvbiBJRThcbiAgICAgKiB3aGVuIHRoaXMgaXMgcGFydCBvZiBiYWNrZ3JvdW5kIHRoZSBjb21wbGV0ZSBiYWNrZ3JvdW5kIGlzIGlnbm9yZWQgKi9cbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGxvY2FsO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXIgdWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM0OTYwNzY7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgY29sb3I6ICMzODdlYTI7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0OTYwNzY7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBoMiB7XG4gICAgbWFyZ2luOiAyMHB4IDAgNXB4O1xuICAgIGNvbG9yOiAjNWJjNGZlO1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbn1cbi5teC1kZW1vdXNlcnN3aXRjaGVyIGgzIHtcbiAgICBtYXJnaW46IDAgMCAycHg7XG4gICAgY29sb3I6ICM1YmM0ZmU7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXIgLmFjdGl2ZSBoMyB7XG4gICAgY29sb3I6ICMxMWVmZGI7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXItdG9nZ2xlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyNSU7XG4gICAgbGVmdDogLTM1cHg7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgaGVpZ2h0OiAzOHB4O1xuICAgIG1hcmdpbi10b3A6IC00MHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuICAgIGJveC1zaGFkb3c6IC0xcHggMCA1cHggcmdiYSgyOCw1OSw4NiwuMik7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQklBQUFBU0NBWUFBQUJXem81WEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVJwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVNeTFqTURFeElEWTJMakUwTlRZMk1Td2dNakF4TWk4d01pOHdOaTB4TkRvMU5qb3lOeUFnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5UTmlBb1RXRmphVzUwYjNOb0tTSWdlRzF3VFUwNlNXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEbzNORVJETWpGR1JEUTJORU14TVVVMFFUUTRNVUk1TlROR01VUTNRekU1TnlJZ2VHMXdUVTA2Ukc5amRXMWxiblJKUkQwaWVHMXdMbVJwWkRvM05FUkRNakZHUlRRMk5FTXhNVVUwUVRRNE1VSTVOVE5HTVVRM1F6RTVOeUkrSUR4NGJYQk5UVHBFWlhKcGRtVmtSbkp2YlNCemRGSmxaanBwYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pjMFJFTXlNVVpDTkRZMFF6RXhSVFJCTkRneFFqazFNMFl4UkRkRE1UazNJaUJ6ZEZKbFpqcGtiMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPamMwUkVNeU1VWkRORFkwUXpFeFJUUkJORGd4UWprMU0wWXhSRGRETVRrM0lpOCtJRHd2Y21SbU9rUmxjMk55YVhCMGFXOXVQaUE4TDNKa1pqcFNSRVkrSUR3dmVEcDRiWEJ0WlhSaFBpQThQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCsxWm92TkFBQUFXZEpSRUZVZU5xTTFNMHJSRkVZeC9FN1k1cUlRcE9VYklpeW1RV3lzQmd2SlZKSzJWZ3J5WlF0S1NVTFplbFBzQjBMWmFOWmpKVU5LMUZza0pxVXZDUzNOQXNaYzN6UDlOemlPT2ZlZWVwVGM4L2M4K3ZjOHhaVFNubU9ha0VHS2R6Z0RCWFh5NTRPTXNTd2pwTDZXOWNZc3J4ZlpXdmNVdTd5MFZkTFVDYytWWGdkMm9MaXhwZk9JT21GMTdUdEhUT296WXV1cEN4QWFOQjlEVUVmZURVYkU4YnpFWHhaZXJQMDBsOGhoM0xVaUhUSU1yNk45ajJrc1lvaWh2LzFkZXlMU1Z6S0ttMWpFVytXZlpWMkxmOGdza2pJY3djV3BPTSsrcEhDRlBMb3NnV3RvQ3lkN2pDUE9qemhHSEhMeURQWTFhY2hhSmhEeFJqNnJCd0pYVXVvTjBJRzhJSXY3T2lHQmp4YWR2QUlUdVQzcmV4NmMwU2JLQVNmbG5VY0JUM0pUVGhBanlXa0dVVnNCRUVGUjVDZXJ6WHBOSWFjckZJckpuQ0JCM211QnZraEIxVFAyN2hNL0x2eDN6bDZneEhxdTZjNzRraVU4SXhHaktKZExyclQzeGZkandBREFKYU14UDJidkQyQkFBQUFBRWxGVGtTdVFtQ0MpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0ICMxYjMxNDk7XG59XG4iLCIvKiBtYXN0ZXIgZGV0YWlscyBzY3JlZW4gZm9yIG1vYmlsZSAqL1xuLm14LW1hc3Rlci1kZXRhaWwtc2NyZWVuIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLXNjcmVlbiAubXgtbWFzdGVyLWRldGFpbC1kZXRhaWxzIHtcbiAgICBwYWRkaW5nOiAxNXB4O1xufVxuXG4ubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbn1cblxuLm14LW1hc3Rlci1kZXRhaWwtc2NyZWVuLWhlYWRlci1jYXB0aW9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLXNjcmVlbi1oZWFkZXItY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjMDA3YWZmO1xufVxuXG5ib2R5W2Rpcj1cInJ0bFwiXSAubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyLWNsb3NlIHtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvO1xufVxuXG4ubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyLWNsb3NlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFwyMDM5XCI7XG4gICAgZm9udC1zaXplOiA1MnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4vKiBjbGFzc2VzIGZvciBjb250ZW50IHBhZ2UgKi9cbi5teC1tYXN0ZXItZGV0YWlsLWNvbnRlbnQtZml4IHtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLWNvbnRlbnQtaGlkZGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMCUpO1xufVxuXG5ib2R5W2Rpcj1cInJ0bFwiXSAubXgtbWFzdGVyLWRldGFpbC1jb250ZW50LWhpZGRlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMCUpO1xufSIsIi5yZXBvcnRpbmdSZXBvcnQge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIC1tb3otYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbiIsIi5yZXBvcnRpbmdSZXBvcnRQYXJhbWV0ZXIgdGgge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuIiwiLnJlcG9ydGluZ0RhdGVSYW5nZSB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cbi5yZXBvcnRpbmdEYXRlUmFuZ2UgdGgge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuLnJlcG9ydGluZ0RhdGVSYW5nZSB0ZCB7XG4gICAgcGFkZGluZzogNXB4O1xufVxuIiwiLm14LXJlcG9ydG1hdHJpeCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0aCwgLm14LXJlcG9ydG1hdHJpeCB0ZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0Ym9keSB0cjpudGgtY2hpbGQoMm4rMSkgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG59XG5cbi5teC1yZXBvcnRtYXRyaXggdGJvZHkgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE2cHg7XG4gICAgbWF4LWhlaWdodDogMTZweDtcbn1cbiIsIi8qIFdBUk5JTkc6IElFOSBsaW1pdHMgbmVzdGVkIGltcG9ydHMgdG8gdGhyZWUgbGV2ZWxzIGRlZXA6IGh0dHA6Ly9qb3JnZWFsYmFsYWRlam8uY29tLzIwMTEvMDUvMjgvaW50ZXJuZXQtZXhwbG9yZXItbGltaXRzLW5lc3RlZC1pbXBvcnQtY3NzLXN0YXRlbWVudHMgKi9cblxuLyogZGlqaXQgYmFzZSAqL1xuXG4vKiBtZW5kaXggYmFzZSAqL1xuXG4vKiB3aWRnZXRzICovXG5cbi8qIHJlcG9ydGluZyAqL1xuIl0sInNvdXJjZVJvb3QiOiIifQ==*/\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n@mixin animations() {\n @keyframes slideInUp {\n from {\n visibility: visible;\n transform: translate3d(0, 100%, 0);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n }\n\n .animated {\n animation-duration: 0.4s;\n animation-fill-mode: both;\n }\n\n .slideInUp {\n animation-name: slideInUp;\n }\n\n @keyframes slideInDown {\n from {\n visibility: visible;\n transform: translate3d(0, -100%, 0);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n }\n\n .slideInDown {\n animation-name: slideInDown;\n }\n\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n }\n\n .fadeIn {\n animation-name: fadeIn;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Flex\n\n Flex classes\n========================================================================== */\n@mixin flex() {\n $important-flex-value: if($important-flex, \" !important\", \"\");\n\n // Flex layout\n .flexcontainer {\n display: flex;\n overflow: hidden;\n flex: 1;\n flex-direction: row;\n\n .flexitem {\n margin-right: $gutter-size;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n .flexitem-main {\n overflow: hidden;\n flex: 1;\n }\n }\n\n // These classes define the order of the children\n .flex-row {\n flex-direction: row #{$important-flex-value};\n }\n\n .flex-column {\n flex-direction: column #{$important-flex-value};\n }\n\n .flex-row-reverse {\n flex-direction: row-reverse #{$important-flex-value};\n }\n\n .flex-column-reverse {\n flex-direction: column-reverse #{$important-flex-value};\n }\n\n .flex-wrap {\n flex-wrap: wrap #{$important-flex-value};\n }\n\n .flex-nowrap {\n flex-wrap: nowrap #{$important-flex-value};\n }\n\n .flex-wrap-reverse {\n flex-wrap: wrap-reverse #{$important-flex-value};\n }\n\n // Align children in both directions\n .flex-center {\n align-items: center #{$important-flex-value};\n justify-content: center #{$important-flex-value};\n }\n\n // These classes define the alignment of the children\n .justify-content-start {\n justify-content: flex-start #{$important-flex-value};\n }\n\n .justify-content-end {\n justify-content: flex-end #{$important-flex-value};\n }\n\n .justify-content-center {\n justify-content: center #{$important-flex-value};\n }\n\n .justify-content-between {\n justify-content: space-between #{$important-flex-value};\n }\n\n .justify-content-around {\n justify-content: space-around #{$important-flex-value};\n }\n\n .justify-content-evenly {\n // Not Supported in IE11\n justify-content: space-evenly #{$important-flex-value};\n }\n\n .justify-content-stretch {\n justify-content: stretch #{$important-flex-value};\n }\n\n /// These classes define the alignment of the children in the cross-direction\n .align-children-start {\n align-items: flex-start #{$important-flex-value};\n }\n\n .align-children-end {\n align-items: flex-end #{$important-flex-value};\n }\n\n .align-children-center {\n align-items: center #{$important-flex-value};\n }\n\n .align-children-baseline {\n align-items: baseline #{$important-flex-value};\n }\n\n .align-children-stretch {\n align-items: stretch #{$important-flex-value};\n }\n\n /// These classes define the alignment of the rows of children in the cross-direction\n .align-content-start {\n align-content: flex-start #{$important-flex-value};\n }\n\n .align-content-end {\n align-content: flex-end #{$important-flex-value};\n }\n\n .align-content-center {\n align-content: center #{$important-flex-value};\n }\n\n .align-content-between {\n align-content: space-between #{$important-flex-value};\n }\n\n .align-content-around {\n align-content: space-around #{$important-flex-value};\n }\n\n .align-content-stretch {\n align-content: stretch #{$important-flex-value};\n }\n\n /// These classes allow the default alignment to be overridden for individual items\n .align-self-auto {\n align-self: auto #{$important-flex-value};\n }\n\n .align-self-start {\n align-self: flex-start #{$important-flex-value};\n }\n\n .align-self-end {\n align-self: flex-end #{$important-flex-value};\n }\n\n .align-self-center {\n align-self: center #{$important-flex-value};\n }\n\n .align-self-baseline {\n align-self: baseline #{$important-flex-value};\n }\n\n .align-self-stretch {\n align-self: stretch #{$important-flex-value};\n }\n\n @include flex-items($number: 12);\n}\n\n/// These classes define the percentage of available free space within a flex container a flex item will take.\n@mixin flex-items($number) {\n @if not $exclude-flex {\n @for $i from 1 through $number {\n .flexitem-#{$i} {\n flex: #{$i} #{$i} 1%;\n }\n }\n }\n}\n","//\n// ██████╗ █████╗ ███████╗██╗ ██████╗\n// ██╔══██╗██╔══██╗██╔════╝██║██╔════╝\n// ██████╔╝███████║███████╗██║██║\n// ██╔══██╗██╔══██║╚════██║██║██║\n// ██████╔╝██║ ██║███████║██║╚██████╗\n// ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═════╝\n//\n\n//== Gray Shades\n//## Different gray shades to be used for our variables and components\n$gray-darker: #0a1325;\n$gray-dark: #474e5c;\n$gray: #787d87;\n$gray-light: #a9acb3;\n$gray-primary: #e7e7e9;\n$gray-lighter: #f8f8f8;\n\n//== Step 1: Brand Colors\n$brand-default: $gray-primary;\n$brand-primary: #264ae5;\n$brand-success: #3cb33d;\n$brand-warning: #eca51c;\n$brand-danger: #e33f4e;\n\n$brand-logo: false;\n$brand-logo-height: 32px;\n$brand-logo-width: 32px; // Only used for CSS brand logo\n\n//== Step 2: UI Customization\n\n// Default Font Size & Color\n$font-size-default: 14px;\n$font-color-default: #0a1325;\n\n// Global Border Color\n$border-color-default: #ced0d3;\n$border-radius-default: 4px;\n\n// Topbar\n$topbar-bg: #020557;\n$topbar-minimalheight: 48px;\n$topbar-border-color: $border-color-default;\n\n// Sidebar\n$sidebar-bg: #24276c;\n\n// Topbar mobile\n$m-header-height: 45px;\n$m-header-bg: $topbar-bg;\n$m-header-color: #fff;\n$m-header-title-size: 16px;\n\n// Navbar Brand Name / For your company, product, or project name (used in layouts/base/)\n$navbar-brand-name: $font-color-default;\n\n// Background Colors\n// Backgrounds\n$bg-color: #f8f8f8;\n$bg-color-secondary: #fff;\n\n// Default Link Color\n$link-color: $brand-primary;\n$link-hover-color: darken($link-color, 15%);\n\n//\n// █████╗ ██████╗ ██╗ ██╗ █████╗ ███╗ ██╗ ██████╗███████╗██████╗\n// ██╔══██╗██╔══██╗██║ ██║██╔══██╗████╗ ██║██╔════╝██╔════╝██╔══██╗\n// ███████║██║ ██║██║ ██║███████║██╔██╗ ██║██║ █████╗ ██║ ██║\n// ██╔══██║██║ ██║╚██╗ ██╔╝██╔══██║██║╚██╗██║██║ ██╔══╝ ██║ ██║\n// ██║ ██║██████╔╝ ╚████╔╝ ██║ ██║██║ ╚████║╚██████╗███████╗██████╔╝\n// ╚═╝ ╚═╝╚═════╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝\n//\n\n//== Typography\n//## Change your font family, weight, line-height, headings and more (used in components/typography)\n\n// Font Family Import (Used for google font plugin in theme creater)\n$font-family-import: \"https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700\";\n\n// Font Family / False = fallback from Bootstrap (Helvetica Neue)\n$font-family-base: \"Open Sans\", sans-serif;\n\n// Font Sizes\n$font-size-large: 18px;\n$font-size-small: 12px;\n\n// Font Weights\n$font-weight-light: 100;\n$font-weight-normal: normal;\n$font-weight-semibold: 600;\n$font-weight-bold: bold;\n\n// Font Size Headers\n$font-size-h1: 31px;\n$font-size-h2: 26px;\n$font-size-h3: 24px;\n$font-size-h4: 18px;\n$font-size-h5: $font-size-default;\n$font-size-h6: 12px;\n\n// Font Weight Headers\n$font-weight-header: $font-weight-semibold;\n\n// Line Height\n$line-height-base: 1.428571429;\n\n// Spacing\n$font-header-margin: 0 0 8px 0;\n\n// Text Colors\n$font-color-detail: #6c717e;\n$font-color-header: #0a1325;\n\n//== Navigation\n//## Used in components/navigation\n\n// Default Navigation styling\n$navigation-item-height: unset;\n$navigation-item-padding: 8px;\n\n$navigation-font-size: 14px;\n$navigation-sub-font-size: $font-size-small;\n$navigation-glyph-size: 20px; // For glyphicons that you can select in the Mendix Modeler\n\n$navigation-color: #fff;\n$navigation-color-hover: #fff;\n$navigation-color-active: #fff;\n\n$navigation-sub-color: #fff;\n$navigation-sub-color-hover: #fff;\n$navigation-sub-color-active: #fff;\n\n// Navigation Sidebar\n$navsidebar-bg: $sidebar-bg;\n$navsidebar-bg-hover: darken($navsidebar-bg, 10%);\n$navsidebar-bg-active: darken($navsidebar-bg, 10%);\n\n$navsidebar-sub-bg: $navsidebar-bg-hover;\n$navsidebar-sub-bg-hover: $navsidebar-bg;\n$navsidebar-sub-bg-active: $navsidebar-bg;\n\n$navsidebar-border-color: $navsidebar-bg-hover;\n\n$navsidebar-font-size: $font-size-default;\n$navsidebar-sub-font-size: $font-size-small;\n$navsidebar-glyph-size: 20px; // For glyphicons that you can select in the Mendix Modeler\n\n$navsidebar-color: #fff;\n$navsidebar-color-hover: #fff;\n$navsidebar-color-active: #fff;\n\n$navsidebar-sub-color: #fff;\n$navsidebar-sub-color-hover: #fff;\n$navsidebar-sub-color-active: #fff;\n\n$navsidebar-width-closed: 52px;\n$navsidebar-width-open: 232px;\n\n// Navigation topbar\n$navtopbar-font-size: $font-size-default;\n$navtopbar-sub-font-size: $font-size-small;\n$navtopbar-glyph-size: 1.2em; // For glyphicons that you can select in the Mendix Modeler\n\n$navtopbar-bg: $topbar-bg;\n$navtopbar-bg-hover: mix($topbar-bg, white, 85%);\n$navtopbar-bg-active: mix($topbar-bg, white, 85%);\n$navtopbar-color: #fff;\n$navtopbar-color-hover: $navtopbar-color;\n$navtopbar-color-active: $navtopbar-color;\n\n$navtopbar-sub-bg: $topbar-bg;\n$navtopbar-sub-bg-hover: $navtopbar-bg-hover;\n$navtopbar-sub-bg-active: $navtopbar-bg-hover;\n$navtopbar-sub-color: #fff;\n$navtopbar-sub-color-hover: #fff;\n$navtopbar-sub-color-active: #fff;\n\n//## Used in layouts/base\n$navtopbar-border-color: $topbar-border-color;\n\n//== Form\n//## Used in components/inputs\n\n// Values that can be used default | lined\n$form-input-style: default;\n\n// Form Label\n$form-label-color: $font-color-default;\n$form-label-size: $font-size-default;\n$form-label-weight: $font-weight-semibold;\n$form-label-gutter: 8px;\n\n// Form Input dimensions\n$form-input-height: auto;\n$form-input-padding-y: 8px;\n$form-input-padding-x: 8px;\n$form-input-static-padding-y: 8px;\n$form-input-static-padding-x: 0;\n$form-input-font-size: $form-label-size;\n$form-input-line-height: $line-height-base;\n$form-input-border-radius: $border-radius-default;\n\n// Form Input styling\n$form-input-bg: #fff;\n$form-input-bg-focus: #fff;\n$form-input-bg-hover: $gray-primary;\n$form-input-bg-disabled: $bg-color;\n$form-input-color: $font-color-default;\n$form-input-focus-color: $form-input-color;\n$form-input-disabled-color: #9da1a8;\n$form-input-placeholder-color: #6c717c;\n$form-input-border-color: $gray-primary;\n$form-input-border-focus-color: $brand-primary;\n\n// Form Input Static styling\n$form-input-static-border-color: $gray-primary;\n\n// Form Group\n$form-group-margin-bottom: 16px;\n$form-group-gutter: 16px;\n\n//== Buttons\n//## Define background-color, border-color and text. Used in components/buttons\n\n// Default button style\n$btn-font-size: 14px;\n$btn-bordered: false; // Default value false, set to true if you want this effect\n$btn-border-radius: $border-radius-default;\n\n// Button Background Color\n$btn-default-bg: #fff;\n$btn-primary-bg: $brand-primary;\n$btn-success-bg: $brand-success;\n$btn-warning-bg: $brand-warning;\n$btn-danger-bg: $brand-danger;\n\n// Button Border Color\n$btn-default-border-color: $gray-primary;\n$btn-primary-border-color: $brand-primary;\n$btn-success-border-color: $brand-success;\n$btn-warning-border-color: $brand-warning;\n$btn-danger-border-color: $brand-danger;\n\n// Button Text Color\n$btn-default-color: $brand-primary;\n$btn-primary-color: #fff;\n$btn-success-color: #fff;\n$btn-warning-color: #fff;\n$btn-danger-color: #fff;\n\n// Button Icon Color\n$btn-default-icon-color: $gray;\n\n// Button Background Color\n$btn-default-bg-hover: $btn-default-border-color;\n$btn-primary-bg-hover: mix($btn-primary-bg, black, 80%);\n$btn-success-bg-hover: mix($btn-success-bg, black, 80%);\n$btn-warning-bg-hover: mix($btn-warning-bg, black, 80%);\n$btn-danger-bg-hover: mix($btn-danger-bg, black, 80%);\n$btn-link-bg-hover: $gray-lighter;\n\n//== Header blocks\n//## Define look and feel over multible building blocks that serve as header\n\n$header-min-height: 240px;\n$header-bg-color: $brand-primary;\n$header-bgimage-filter: brightness(60%);\n$header-text-color: #fff;\n$header-text-color-detail: rgba(0, 0, 0, 0.2);\n\n//\n// ███████╗██╗ ██╗██████╗ ███████╗██████╗ ████████╗\n// ██╔════╝╚██╗██╔╝██╔══██╗██╔════╝██╔══██╗╚══██╔══╝\n// █████╗ ╚███╔╝ ██████╔╝█████╗ ██████╔╝ ██║\n// ██╔══╝ ██╔██╗ ██╔═══╝ ██╔══╝ ██╔══██╗ ██║\n// ███████╗██╔╝ ██╗██║ ███████╗██║ ██║ ██║\n// ╚══════╝╚═╝ ╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝\n//\n\n//== Color variations\n//## These variations are used to support several other variables and components\n\n// Color variations\n$color-default-darker: mix($brand-default, black, 60%);\n$color-default-dark: mix($brand-default, black, 70%);\n$color-default-light: mix($brand-default, white, 40%);\n$color-default-lighter: mix($brand-default, white, 20%);\n\n$color-primary-darker: mix($brand-primary, black, 60%);\n$color-primary-dark: mix($brand-primary, black, 70%);\n$color-primary-light: mix($brand-primary, white, 40%);\n$color-primary-lighter: mix($brand-primary, white, 20%);\n\n$color-success-darker: mix($brand-success, black, 60%);\n$color-success-dark: mix($brand-success, black, 70%);\n$color-success-light: mix($brand-success, white, 40%);\n$color-success-lighter: mix($brand-success, white, 20%);\n\n$color-warning-darker: mix($brand-warning, black, 60%);\n$color-warning-dark: mix($brand-warning, black, 70%);\n$color-warning-light: mix($brand-warning, white, 40%);\n$color-warning-lighter: mix($brand-warning, white, 20%);\n\n$color-danger-darker: mix($brand-danger, black, 60%);\n$color-danger-dark: mix($brand-danger, black, 70%);\n$color-danger-light: mix($brand-danger, white, 40%);\n$color-danger-lighter: mix($brand-danger, white, 20%);\n\n$brand-gradient: linear-gradient(to right top, #264ae5, #2239c5, #1b29a6, #111988, #03096c);\n\n//== Grids\n//## Used for Datagrid, Templategrid, Listview & Tables (see components folder)\n\n// Default Border Colors\n$grid-border-color: $border-color-default;\n\n// Spacing\n// Default\n$grid-padding-top: 16px;\n$grid-padding-right: 16px;\n$grid-padding-bottom: 16px;\n$grid-padding-left: 16px;\n\n// Listview\n$listview-padding-top: 16px;\n$listview-padding-right: 16px;\n$listview-padding-bottom: 16px;\n$listview-padding-left: 16px;\n\n// Background Colors\n$grid-bg: transparent;\n$grid-bg-header: transparent; // Grid Headers\n$grid-bg-hover: mix($grid-border-color, #fff, 20%);\n$grid-bg-selected: mix($grid-border-color, #fff, 30%);\n$grid-bg-selected-hover: mix($grid-border-color, #fff, 50%);\n\n// Striped Background Color\n$grid-bg-striped: mix($grid-border-color, #fff, 10%);\n\n// Background Footer Color\n$grid-footer-bg: $gray-primary;\n\n// Text Color\n$grid-selected-color: $font-color-default;\n\n// Paging Colors\n$grid-paging-bg: transparent;\n$grid-paging-bg-hover: transparent;\n$grid-paging-border-color: transparent;\n$grid-paging-border-color-hover: transparent;\n$grid-paging-color: $gray-light;\n$grid-paging-color-hover: $brand-primary;\n\n//== Tabs\n//## Default variables for Tab Container Widget (used in components/tabcontainer)\n\n// Text Color\n$tabs-color: $font-color-detail;\n$tabs-color-active: $font-color-default;\n$tabs-lined-color-active: $font-color-default;\n\n$tabs-lined-border-width: 3px;\n\n// Border Color\n$tabs-border-color: $border-color-default;\n$tabs-lined-border-color: $brand-primary;\n\n// Background Color\n$tabs-bg: transparent;\n$tabs-bg-pills: #e7e7e9;\n$tabs-bg-hover: lighten($tabs-border-color, 5);\n$tabs-bg-active: $brand-primary;\n\n//== Modals\n//## Default Mendix Modal, Blocking Modal and Login Modal (used in components/modals)\n\n// Background Color\n$modal-header-bg: transparent;\n\n// Border Color\n$modal-header-border-color: $border-color-default;\n\n// Text Color\n$modal-header-color: $font-color-default;\n\n//== Dataview\n//## Default variables for Dataview Widget (used in components/dataview)\n\n// Controls\n$dataview-controls-bg: transparent;\n$dataview-controls-border-color: $border-color-default;\n\n// Empty Message\n$dataview-emptymessage-bg: $bg-color;\n$dataview-emptymessage-color: $font-color-default;\n\n//== Alerts\n//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts)\n\n// Background Color\n$alert-success-bg: $color-success-lighter;\n$alert-warning-bg: $color-warning-lighter;\n$alert-danger-bg: $color-danger-lighter;\n\n// Text Color\n$alert-success-color: $color-success-darker;\n$alert-warning-color: $color-warning-darker;\n$alert-danger-color: $color-danger-darker;\n\n// Border Color\n$alert-success-border-color: $color-success-dark;\n$alert-warning-border-color: $color-warning-dark;\n$alert-danger-border-color: $color-danger-dark;\n\n//== Wizard\n\n$wizard-step-height: 48px;\n$wizard-step-number-size: 64px;\n$wizard-step-number-font-size: $font-size-h3;\n\n//Wizard step states\n$wizard-default-bg: #fff;\n$wizard-default-color: #fff;\n$wizard-default-step-color: $font-color-default;\n$wizard-default-border-color: $border-color-default;\n\n$wizard-active-bg: $color-primary-lighter;\n$wizard-active-color: $color-primary-dark;\n$wizard-active-step-color: $color-primary-dark;\n$wizard-active-border-color: $color-primary-dark;\n\n$wizard-visited-bg: $color-success-lighter;\n$wizard-visited-color: $color-success-dark;\n$wizard-visited-step-color: $color-success-dark;\n$wizard-visited-border-color: $color-success-dark;\n\n//== Labels\n//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels)\n\n// Background Color\n$label-default-bg: $brand-default;\n$label-primary-bg: $brand-primary;\n$label-success-bg: $brand-success;\n$label-warning-bg: $brand-warning;\n$label-danger-bg: $brand-danger;\n\n// Border Color\n$label-default-border-color: $brand-default;\n$label-primary-border-color: $brand-primary;\n$label-success-border-color: $brand-success;\n$label-warning-border-color: $brand-warning;\n$label-danger-border-color: $brand-danger;\n\n// Text Color\n$label-default-color: $font-color-default;\n$label-primary-color: #fff;\n$label-success-color: #fff;\n$label-warning-color: #fff;\n$label-danger-color: #fff;\n\n//== Groupbox\n//## Default variables for Groupbox Widget (used in components/groupbox)\n\n// Background Color\n$groupbox-default-bg: $gray-primary;\n$groupbox-primary-bg: $brand-primary;\n$groupbox-success-bg: $brand-success;\n$groupbox-warning-bg: $brand-warning;\n$groupbox-danger-bg: $brand-danger;\n$groupbox-white-bg: #fff;\n\n// Text Color\n$groupbox-default-color: $font-color-default;\n$groupbox-primary-color: #fff;\n$groupbox-success-color: #fff;\n$groupbox-warning-color: #fff;\n$groupbox-danger-color: #fff;\n$groupbox-white-color: $font-color-default;\n\n//== Callout (groupbox) Colors\n//## Extended variables for Groupbox Widget (used in components/groupbox)\n\n// Text and Border Color\n$callout-default-color: $font-color-default;\n$callout-success-color: $brand-success;\n$callout-warning-color: $brand-warning;\n$callout-danger-color: $brand-danger;\n\n// Background Color\n$callout-default-bg: $color-default-lighter;\n$callout-success-bg: $color-success-lighter;\n$callout-warning-bg: $color-warning-lighter;\n$callout-danger-bg: $color-danger-lighter;\n\n//== Timeline\n//## Extended variables for Timeline Widget\n// Colors\n$timeline-icon-color: $brand-primary;\n$timeline-border-color: $border-color-default;\n$timeline-event-time-color: $brand-primary;\n\n// Sizes\n$timeline-icon-size: 18px;\n$timeline-image-size: 36px;\n\n//Timeline grouping\n$timeline-grouping-size: 120px;\n$timeline-grouping-border-radius: 30px;\n$timeline-grouping-border-color: $timeline-border-color;\n\n//== Accordions\n//## Extended variables for Accordion Widget\n\n// Default\n$accordion-header-default-bg: $bg-color-secondary;\n$accordion-header-default-bg-hover: $bg-color;\n$accordion-header-default-color: $font-color-header;\n$accordion-default-border-color: $border-color-default;\n\n$accordion-bg-striped: $grid-bg-striped;\n$accordion-bg-striped-hover: $grid-bg-selected;\n\n// Semantic background colors\n$accordion-header-primary-bg: $btn-primary-bg;\n$accordion-header-secondary-bg: $btn-default-bg;\n$accordion-header-success-bg: $btn-success-bg;\n$accordion-header-warning-bg: $btn-warning-bg;\n$accordion-header-danger-bg: $btn-danger-bg;\n\n$accordion-header-primary-bg-hover: $btn-primary-bg-hover;\n$accordion-header-secondary-bg-hover: $btn-default-bg-hover;\n$accordion-header-success-bg-hover: $btn-success-bg-hover;\n$accordion-header-warning-bg-hover: $btn-warning-bg-hover;\n$accordion-header-danger-bg-hover: $btn-danger-bg-hover;\n\n// Semantic text colors\n$accordion-header-primary-color: $btn-primary-color;\n$accordion-header-secondary-color: $btn-default-color;\n$accordion-header-success-color: $btn-success-color;\n$accordion-header-warning-color: $btn-warning-color;\n$accordion-header-danger-color: $btn-danger-color;\n\n// Semantic border colors\n$accordion-primary-border-color: $btn-primary-border-color;\n$accordion-secondary-border-color: $btn-default-border-color;\n$accordion-success-border-color: $btn-success-border-color;\n$accordion-warning-border-color: $btn-warning-border-color;\n$accordion-danger-border-color: $btn-danger-border-color;\n\n//== Spacing\n//## Advanced layout options (used in base/mixins/default-spacing)\n\n// Smallest spacing\n$spacing-smallest: 2px;\n\n// Smaller spacing\n$spacing-smaller: 4px;\n\n// Small spacing\n$spacing-small: 8px;\n\n// Medium spacing\n$spacing-medium: 16px;\n$t-spacing-medium: 16px;\n$m-spacing-medium: 16px;\n\n// Large spacing\n$spacing-large: 24px;\n$t-spacing-large: 24px;\n$m-spacing-large: 16px;\n\n// Larger spacing\n$spacing-larger: 32px;\n\n// Largest spacing\n$spacing-largest: 48px;\n\n// Layout spacing\n$layout-spacing-top: 24px;\n$layout-spacing-right: 24px;\n$layout-spacing-bottom: 24px;\n$layout-spacing-left: 24px;\n\n$t-layout-spacing-top: 24px;\n$t-layout-spacing-right: 24px;\n$t-layout-spacing-bottom: 24px;\n$t-layout-spacing-left: 24px;\n\n$m-layout-spacing-top: 16px;\n$m-layout-spacing-right: 16px;\n$m-layout-spacing-bottom: 16px;\n$m-layout-spacing-left: 16px;\n\n// Combined layout spacing\n$layout-spacing: $layout-spacing-top $layout-spacing-right $layout-spacing-bottom $layout-spacing-left;\n$m-layout-spacing: $m-layout-spacing-top $m-layout-spacing-right $m-layout-spacing-bottom $m-layout-spacing-left;\n$t-layout-spacing: $t-layout-spacing-top $t-layout-spacing-right $t-layout-spacing-bottom $t-layout-spacing-left;\n\n// Gutter size\n$gutter-size: 8px;\n\n//== Tables\n//## Table spacing options (used in components/tables)\n\n$padding-table-cell-top: 8px;\n$padding-table-cell-bottom: 8px;\n$padding-table-cell-left: 8px;\n$padding-table-cell-right: 8px;\n\n//== Media queries breakpoints\n//## Define the breakpoints at which your layout will change, adapting to different screen sizes.\n\n$screen-xs: 480px;\n$screen-sm: 576px;\n$screen-md: 768px;\n$screen-lg: 992px;\n$screen-xl: 1200px;\n\n// So media queries don't overlap when required, provide a maximum (used for max-width)\n$screen-xs-max: ($screen-sm - 1);\n$screen-sm-max: ($screen-md - 1);\n$screen-md-max: ($screen-lg - 1);\n$screen-lg-max: ($screen-xl - 1);\n\n//== Settings\n//## Enable or disable your desired framework features\n// Use of !important\n$important-flex: true; // ./base/flex.scss\n$important-spacing: true; // ./base/spacing.scss\n$important-helpers: true; // ./helpers/helperclasses.scss\n\n//===== Legacy variables =====\n\n//== Step 1: Brand Colors\n$brand-inverse: #24276c;\n$brand-info: #0086d9;\n\n//== Step 2: UI Customization\n\n//== Buttons\n//## Define background-color, border-color and text. Used in components/buttons\n\n// Button Background Color\n$btn-inverse-bg: $brand-inverse;\n$btn-info-bg: $brand-info;\n\n// Button Border Color\n$btn-inverse-border-color: $brand-inverse;\n$btn-info-border-color: $brand-info;\n\n// Button Text Color\n$btn-inverse-color: #fff;\n$btn-info-color: #fff;\n\n// Button Background Color\n$btn-inverse-bg-hover: mix($btn-inverse-bg, white, 80%);\n$btn-info-bg-hover: mix($btn-info-bg, black, 80%);\n\n//== Color variations\n//## These variations are used to support several other variables and components\n\n// Color variations\n$color-inverse-darker: mix($brand-inverse, black, 60%);\n$color-inverse-dark: mix($brand-inverse, black, 70%);\n$color-inverse-light: mix($brand-inverse, white, 60%);\n$color-inverse-lighter: mix($brand-inverse, white, 20%);\n\n$color-info-darker: mix($brand-info, black, 60%);\n$color-info-dark: mix($brand-info, black, 70%);\n$color-info-light: mix($brand-info, white, 60%);\n$color-info-lighter: mix($brand-info, white, 20%);\n\n//== Alerts\n//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts)\n\n// Background Color\n$alert-info-bg: $color-primary-lighter;\n\n// Text Color\n$alert-info-color: $color-primary-darker;\n\n// Border Color\n$alert-info-border-color: $color-primary-dark;\n\n//== Labels\n//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels)\n\n// Background Color\n$label-info-bg: $brand-info;\n$label-inverse-bg: $brand-inverse;\n\n// Border Color\n$label-info-border-color: $brand-info;\n$label-inverse-border-color: $brand-inverse;\n\n// Text Color\n$label-info-color: #fff;\n$label-inverse-color: #fff;\n\n//== Groupbox\n//## Default variables for Groupbox Widget (used in components/groupbox)\n\n// Background Color\n$groupbox-inverse-bg: $brand-inverse;\n$groupbox-info-bg: $brand-info;\n\n// Text Color\n$groupbox-inverse-color: #fff;\n$groupbox-info-color: #fff;\n\n//== Callout (groupbox) Colors\n//## Extended variables for Groupbox Widget (used in components/groupbox)\n\n// Text and Border Color\n$callout-info-color: $brand-info;\n\n// Background Color\n$callout-info-bg: $color-info-lighter;\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Spacing\n\n Spacing classes\n========================================================================== */\n@mixin spacing() {\n $important-spacing-value: if($important-spacing, \" !important\", \"\");\n\n // Spacing none\n .spacing-inner-none {\n padding: 0 #{$important-spacing-value};\n }\n\n .spacing-inner-top-none {\n padding-top: 0 #{$important-spacing-value};\n }\n\n .spacing-inner-right-none {\n padding-right: 0 #{$important-spacing-value};\n }\n\n .spacing-inner-bottom-none {\n padding-bottom: 0 #{$important-spacing-value};\n }\n\n .spacing-inner-left-none {\n padding-left: 0 #{$important-spacing-value};\n }\n\n .spacing-outer-none {\n margin: 0 #{$important-spacing-value};\n }\n\n .spacing-outer-top-none {\n margin-top: 0 #{$important-spacing-value};\n }\n\n .spacing-outer-right-none {\n margin-right: 0 #{$important-spacing-value};\n }\n\n .spacing-outer-bottom-none {\n margin-bottom: 0 #{$important-spacing-value};\n }\n\n .spacing-outer-left-none {\n margin-left: 0 #{$important-spacing-value};\n }\n\n // Spacing small\n .spacing-inner {\n padding: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-inner-top {\n padding-top: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-inner-right {\n padding-right: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-inner-bottom {\n padding-bottom: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-inner-left {\n padding-left: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-inner-vertical {\n padding-top: $spacing-small #{$important-spacing-value};\n padding-bottom: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-inner-horizontal {\n padding-left: $spacing-small #{$important-spacing-value};\n padding-right: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-outer {\n margin: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-outer-top {\n margin-top: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-outer-right {\n margin-right: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-outer-bottom {\n margin-bottom: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-outer-left {\n margin-left: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-outer-vertical {\n margin-top: $spacing-small #{$important-spacing-value};\n margin-bottom: $spacing-small #{$important-spacing-value};\n }\n\n .spacing-outer-horizontal {\n margin-left: $spacing-small #{$important-spacing-value};\n margin-right: $spacing-small #{$important-spacing-value};\n }\n\n // Spacing Medium\n .spacing-inner-medium {\n @include get-responsive-spacing-medium(\n $type: padding,\n $direction: all,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-top-medium {\n @include get-responsive-spacing-medium(\n $type: padding,\n $direction: top,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-right-medium {\n @include get-responsive-spacing-medium(\n $type: padding,\n $direction: right,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-bottom-medium {\n @include get-responsive-spacing-medium(\n $type: padding,\n $direction: bottom,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-left-medium {\n @include get-responsive-spacing-medium(\n $type: padding,\n $direction: left,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-vertical-medium {\n @include get-responsive-spacing-medium(\n $type: padding,\n $direction: top,\n $is_important: #{$important-spacing-value}\n );\n @include get-responsive-spacing-medium(\n $type: padding,\n $direction: bottom,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-horizontal-medium {\n @include get-responsive-spacing-medium(\n $type: padding,\n $direction: left,\n $is_important: #{$important-spacing-value}\n );\n @include get-responsive-spacing-medium(\n $type: padding,\n $direction: right,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-medium {\n @include get-responsive-spacing-medium(\n $type: margin,\n $direction: all,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-top-medium {\n @include get-responsive-spacing-medium(\n $type: margin,\n $direction: top,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-right-medium {\n @include get-responsive-spacing-medium(\n $type: margin,\n $direction: right,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-bottom-medium {\n @include get-responsive-spacing-medium(\n $type: margin,\n $direction: bottom,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-left-medium {\n @include get-responsive-spacing-medium(\n $type: margin,\n $direction: left,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-vertical-medium {\n @include get-responsive-spacing-medium(\n $type: margin,\n $direction: top,\n $is_important: #{$important-spacing-value}\n );\n @include get-responsive-spacing-medium(\n $type: margin,\n $direction: bottom,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-horizontal-medium {\n @include get-responsive-spacing-medium(\n $type: margin,\n $direction: left,\n $is_important: #{$important-spacing-value}\n );\n @include get-responsive-spacing-medium(\n $type: margin,\n $direction: right,\n $is_important: #{$important-spacing-value}\n );\n }\n\n // Spacing Large\n .spacing-inner-large {\n @include get-responsive-spacing-large(\n $type: padding,\n $direction: all,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-top-large {\n @include get-responsive-spacing-large(\n $type: padding,\n $direction: top,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-right-large {\n @include get-responsive-spacing-large(\n $type: padding,\n $direction: right,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-bottom-large {\n @include get-responsive-spacing-large(\n $type: padding,\n $direction: bottom,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-left-large {\n @include get-responsive-spacing-large(\n $type: padding,\n $direction: left,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-vertical-large {\n @include get-responsive-spacing-large(\n $type: padding,\n $direction: top,\n $is_important: #{$important-spacing-value}\n );\n @include get-responsive-spacing-large(\n $type: padding,\n $direction: bottom,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-horizontal-large {\n @include get-responsive-spacing-large(\n $type: padding,\n $direction: left,\n $is_important: #{$important-spacing-value}\n );\n @include get-responsive-spacing-large(\n $type: padding,\n $direction: right,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-large {\n @include get-responsive-spacing-large(\n $type: margin,\n $direction: all,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-top-large {\n @include get-responsive-spacing-large(\n $type: margin,\n $direction: top,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-right-large {\n @include get-responsive-spacing-large(\n $type: margin,\n $direction: right,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-bottom-large {\n @include get-responsive-spacing-large(\n $type: margin,\n $direction: bottom,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-left-large {\n @include get-responsive-spacing-large(\n $type: margin,\n $direction: left,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-vertical-large {\n @include get-responsive-spacing-large(\n $type: margin,\n $direction: top,\n $is_important: #{$important-spacing-value}\n );\n @include get-responsive-spacing-large(\n $type: margin,\n $direction: bottom,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-horizontal-large {\n @include get-responsive-spacing-large(\n $type: margin,\n $direction: left,\n $is_important: #{$important-spacing-value}\n );\n @include get-responsive-spacing-large(\n $type: margin,\n $direction: right,\n $is_important: #{$important-spacing-value}\n );\n }\n\n // Spacing layouts\n .spacing-inner-layout {\n @include layout-spacing(\n $type: padding,\n $direction: all,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-top-layout {\n @include layout-spacing(\n $type: padding,\n $direction: top,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-right-layout {\n @include layout-spacing(\n $type: padding,\n $direction: right,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-bottom-layout {\n @include layout-spacing(\n $type: padding,\n $direction: bottom,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-left-layout {\n @include layout-spacing(\n $type: padding,\n $direction: left,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-inner-vertical-layout {\n @include layout-spacing(\n $type: padding,\n $direction: top,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n @include layout-spacing(\n $type: padding,\n $direction: bottom,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n .spacing-inner-horizontal-layout {\n @include layout-spacing(\n $type: padding,\n $direction: left,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n @include layout-spacing(\n $type: padding,\n $direction: right,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-layout {\n @include layout-spacing(\n $type: margin,\n $direction: all,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-top-layout {\n @include layout-spacing(\n $type: margin,\n $direction: top,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-right-layout {\n @include layout-spacing(\n $type: margin,\n $direction: right,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-bottom-layout {\n @include layout-spacing(\n $type: margin,\n $direction: bottom,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-left-layout {\n @include layout-spacing(\n $type: margin,\n $direction: left,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n\n .spacing-outer-vertical-layout {\n @include layout-spacing(\n $type: margin,\n $direction: top,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n @include layout-spacing(\n $type: margin,\n $direction: bottom,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n .spacing-outer-horizontal-layout {\n @include layout-spacing(\n $type: margin,\n $direction: left,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n @include layout-spacing(\n $type: margin,\n $direction: right,\n $device: responsive,\n $is_important: #{$important-spacing-value}\n );\n }\n\n // Scroll container spacing\n .mx-scrollcontainer .mx-placeholder {\n width: 100%;\n height: 100%;\n\n .mx-layoutgrid,\n .mx-layoutgrid-fluid {\n @include layout-spacing($type: padding, $direction: all, $device: responsive);\n\n .mx-layoutgrid,\n .mx-layoutgrid-fluid {\n padding: 0;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin get-responsive-spacing-large($type: padding, $direction: all, $is_important: false) {\n @if not $exclude-spacing {\n $suffix: \"\";\n $dash: \"-\"; // Otherwise it will be interpreted as a minus symbol. Needed for the Gonzales PE version: 3.4.7 compiler (used by the Webmodeler)\n\n @if $is_important != false {\n $suffix: \" !important\";\n }\n @if $direction==all {\n @media (max-width: $screen-sm-max) {\n #{$type}: #{$m-spacing-large}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}: #{$t-spacing-large}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}: #{$spacing-large}#{$suffix};\n }\n } @else {\n @media (max-width: $screen-sm-max) {\n #{$type}#{$dash}#{$direction}: #{$m-spacing-large}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}#{$dash}#{$direction}: #{$t-spacing-large}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}#{$dash}#{$direction}: #{$spacing-large}#{$suffix};\n }\n }\n }\n}\n\n@mixin get-responsive-spacing-medium($type: padding, $direction: all, $is_important: false) {\n @if not $exclude-spacing {\n $suffix: \"\";\n $dash: \"-\"; // Otherwise it will be interpreted as a minus symbol. Needed for the Gonzales PE version: 3.4.7 compiler (used by the Webmodeler)\n\n @if $is_important != false {\n $suffix: \" !important\";\n }\n @if $direction==all {\n @media (max-width: $screen-sm-max) {\n #{$type}: #{$m-spacing-medium}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}: #{$t-spacing-medium}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}: #{$spacing-medium}#{$suffix};\n }\n } @else {\n @media (max-width: $screen-sm-max) {\n #{$type}#{$dash}#{$direction}: #{$m-spacing-medium}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}#{$dash}#{$direction}: #{$t-spacing-medium}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}#{$dash}#{$direction}: #{$spacing-medium}#{$suffix};\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin layout-spacing($type: padding, $direction: all, $device: responsive, $is_important: false) {\n @if not $exclude-spacing {\n $suffix: \"\";\n @if $is_important != false {\n $suffix: \" !important\";\n }\n @if $device==responsive {\n @if $direction==all {\n @media (max-width: $screen-sm-max) {\n #{$type}: #{$m-layout-spacing}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}: #{$t-layout-spacing}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}: #{$layout-spacing}#{$suffix};\n }\n } @else if $direction==top {\n @media (max-width: $screen-sm-max) {\n #{$type}-top: #{$m-layout-spacing-top}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}-top: #{$t-layout-spacing-top}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}-top: #{$layout-spacing-top}#{$suffix};\n }\n } @else if $direction==right {\n @media (max-width: $screen-sm-max) {\n #{$type}-right: #{$m-layout-spacing-right}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}-right: #{$t-layout-spacing-right}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}-right: #{$layout-spacing-right}#{$suffix};\n }\n } @else if $direction==bottom {\n @media (max-width: $screen-sm-max) {\n #{$type}-bottom: #{$m-layout-spacing-bottom}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}-bottom: #{$t-layout-spacing-bottom}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}-bottom: #{$layout-spacing-bottom}#{$suffix};\n }\n } @else if $direction==left {\n @media (max-width: $screen-sm-max) {\n #{$type}-left: #{$m-layout-spacing-left}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}-left: #{$t-layout-spacing-left}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}-left: #{$layout-spacing-left}#{$suffix};\n }\n }\n } @else if $device==tablet {\n @if $direction==all {\n #{$type}: #{$t-layout-spacing}#{$suffix};\n } @else if $direction==top {\n #{$type}-top: #{$t-layout-spacing-top}#{$suffix};\n } @else if $direction==right {\n #{$type}-right: #{$t-layout-spacing-right}#{$suffix};\n } @else if $direction==bottom {\n #{$type}-bottom: #{$t-layout-spacing-bottom}#{$suffix};\n } @else if $direction==left {\n #{$type}-left: #{$t-layout-spacing-left}#{$suffix};\n }\n } @else if $device==mobile {\n @if $direction==all {\n #{$type}: #{$m-layout-spacing}#{$suffix};\n } @else if $direction==top {\n #{$type}-top: #{$m-layout-spacing-top}#{$suffix};\n } @else if $direction==right {\n #{$type}-right: #{$m-layout-spacing-right}#{$suffix};\n } @else if $direction==bottom {\n #{$type}-bottom: #{$m-layout-spacing-bottom}#{$suffix};\n } @else if $direction==left {\n #{$type}-left: #{$m-layout-spacing-left}#{$suffix};\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Base\n\n Default settings\n========================================================================== */\n@mixin base() {\n html {\n height: 100%;\n }\n\n body {\n min-height: 100%;\n color: $font-color-default;\n background-color: $bg-color;\n font-family: $font-family-base;\n font-size: $font-size-default;\n font-weight: $font-weight-normal;\n line-height: $line-height-base;\n }\n\n a {\n transition: 0.25s;\n color: $link-color;\n -webkit-backface-visibility: hidden;\n }\n\n a:hover {\n text-decoration: underline;\n color: $link-hover-color;\n }\n\n // Address `outline` inconsistency between Chrome and other browsers.\n a:focus {\n outline: thin dotted;\n }\n\n // Improve readability when focused and also mouse hovered in all browsers\n a:active,\n a:hover {\n outline: 0;\n }\n\n // Removes large blue border in chrome on focus and active states\n input:focus,\n button:focus,\n .mx-link:focus {\n outline: 0;\n }\n\n // Removes large blue border for tabindexes from widgets\n div[tabindex] {\n outline: 0;\n }\n\n // Disabled State\n .disabled,\n [disabled] {\n cursor: not-allowed;\n opacity: 0.65;\n box-shadow: none;\n }\n\n .mx-underlay {\n position: fixed;\n top: 0;\n width: 100%;\n height: 100%;\n z-index: 1000;\n opacity: 0.5;\n background-color: #0a1325;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin login() {\n body {\n height: 100%;\n }\n\n .loginpage {\n display: flex;\n height: 100%;\n }\n .loginpage-logo {\n position: absolute;\n top: 30px;\n right: 30px;\n\n & > svg {\n width: 120px;\n }\n }\n\n .loginpage-left {\n display: none;\n }\n\n .loginpage-right {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: space-around;\n }\n .loginpage-formwrapper {\n width: 400px;\n margin: 0 auto;\n }\n\n .loginpage-fullscreenDiv {\n background-color: #e8e8e8;\n width: 100%;\n height: auto;\n bottom: 0;\n top: 0;\n left: 0;\n position: absolute;\n }\n\n .loginpage-center {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n // Form\n .loginpage-form {\n .alert {\n display: none;\n }\n\n .btn {\n border-radius: $border-radius-default;\n }\n\n // Form label + input\n .form-group {\n width: 100%;\n align-items: center;\n @media only screen and (max-width: $screen-sm-max) {\n align-items: flex-start;\n }\n\n .control-label {\n flex: 4;\n margin-bottom: 0;\n font-size: $font-size-default;\n font-weight: 500;\n @media only screen and (max-width: $screen-sm-max) {\n flex: 1;\n margin-bottom: $spacing-small;\n }\n }\n\n .inputwrapper {\n flex: 8;\n position: relative;\n width: 100%;\n @media only screen and (max-width: $screen-sm-max) {\n flex: 1;\n }\n\n .glyphicon {\n &:before {\n transition: color 0.4s;\n }\n\n position: absolute;\n top: 50%;\n left: $form-input-padding-x;\n transform: translateY(-50%);\n\n &-eye-open:hover,\n &-eye-close:hover {\n cursor: pointer;\n color: $brand-primary;\n }\n }\n\n .form-control {\n padding: $form-input-padding-y $form-input-padding-x $form-input-padding-y 45px;\n width: 100%;\n }\n\n .form-control:focus ~ .glyphicon:before {\n color: $brand-primary;\n }\n }\n }\n }\n\n // Divider - only on login-with-mendixsso-button.html\n .loginpage-alternativelabel {\n display: flex;\n align-items: center;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: space-between;\n margin: 25px 0px;\n\n hr {\n flex: 1;\n margin: 20px 0 20px 10px;\n border: 0;\n border-color: #d8d8d8;\n border-top: 1px solid #eeeeee;\n }\n }\n\n .loginpage-signin {\n color: #555555;\n }\n\n .loginpage-form .btn {\n img {\n vertical-align: middle;\n top: -1px;\n position: relative;\n }\n }\n\n // Show only on wide screens\n @media screen and (min-width: $screen-xl) {\n .loginpage-left {\n position: relative;\n display: block;\n flex: 1;\n width: 100%;\n height: 100%;\n }\n // Image and clipping mask\n .loginpage-image {\n height: 100%;\n animation: makePointer 1s ease-out both;\n background: left / cover no-repeat\n linear-gradient(to right, rgba($brand-primary, 0.9) 0%, rgba($brand-primary, 0.6) 100%),\n left / cover no-repeat url(\"./resources/work-do-more.jpeg\");\n -webkit-clip-path: polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%);\n clip-path: polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%);\n }\n\n .loginpage-logo {\n & > svg {\n width: 150px;\n }\n }\n\n .loginpage-formwrapper {\n width: 400px;\n }\n }\n\n // Animate image clipping mask\n @keyframes makePointer {\n 100% {\n -webkit-clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);\n clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);\n }\n }\n @-webkit-keyframes makePointer {\n 100% {\n -webkit-clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);\n clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin input() {\n /* ==========================================================================\n Input\n\n The form-control class style all inputs\n ========================================================================== */\n .form-control {\n display: flex;\n flex: 1;\n min-width: 50px;\n height: $form-input-height;\n padding: $form-input-padding-y $form-input-padding-x;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n color: $form-input-color;\n border: 1px solid $form-input-border-color;\n border-radius: $form-input-border-radius;\n background-color: $form-input-bg;\n background-image: none;\n box-shadow: none;\n font-size: $form-input-font-size;\n line-height: $form-input-line-height;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n @if $form-input-style==lined {\n @extend .form-control-lined;\n }\n\n &::placeholder {\n color: $form-input-placeholder-color;\n }\n }\n\n .form-control:not([readonly]):focus {\n border-color: $form-input-border-focus-color;\n outline: 0;\n background-color: $form-input-bg-focus;\n box-shadow: none;\n }\n\n .form-control[disabled],\n .form-control[readonly],\n fieldset[disabled] .form-control {\n opacity: 1;\n background-color: $form-input-bg-disabled;\n }\n\n .form-control[disabled],\n fieldset[disabled] .form-control {\n cursor: not-allowed;\n }\n\n // Lined\n .form-control-lined {\n border: 0;\n border-bottom: 1px solid $form-input-border-color;\n border-radius: 0;\n background-color: transparent;\n\n &:focus {\n background-color: transparent;\n }\n }\n\n // Read only form control class\n .form-control-static {\n overflow: hidden;\n flex: 1;\n min-height: auto;\n padding: $form-input-static-padding-y $form-input-static-padding-x;\n //border-bottom: 1px solid $form-input-static-border-color;\n font-size: $form-input-font-size;\n line-height: $form-input-line-height;\n\n & + .control-label {\n margin-left: $form-label-gutter;\n }\n }\n\n // Dropdown input widget\n select.form-control {\n $arrow: \"data:image/svg+xml;utf8,\";\n padding-right: 30px;\n background-image: url($arrow);\n background-repeat: no-repeat;\n background-position: calc(100% - #{$form-input-padding-x}) center;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n }\n\n .form-control.mx-selectbox {\n align-items: center;\n flex-direction: row-reverse;\n justify-content: space-between;\n }\n\n // Not editable textarea, textarea will be rendered as a label\n .mx-textarea .control-label {\n height: auto;\n }\n\n .mx-textarea-counter {\n display: block;\n width: 100%;\n text-align: right;\n margin-top: $spacing-small;\n }\n\n textarea.form-control {\n flex-basis: auto;\n }\n\n .mx-compound-control {\n display: flex;\n flex: 1;\n flex-wrap: wrap;\n max-width: 100%;\n\n .btn {\n margin-left: $spacing-small;\n }\n\n .mx-validation-message {\n flex-basis: 100%;\n margin-top: 4px;\n }\n }\n\n .has-error .mx-validation-message {\n margin-top: $spacing-small;\n margin-bottom: 0;\n padding: $spacing-small;\n color: $alert-danger-color;\n border-color: $alert-danger-border-color;\n background-color: $alert-danger-bg;\n }\n\n // Form Group\n .form-group {\n display: flex;\n flex-direction: row;\n margin-bottom: $form-group-margin-bottom;\n\n & > div[class*=\"col-\"] {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n }\n\n & > [class*=\"col-\"] {\n padding-right: $form-group-gutter;\n padding-left: $form-group-gutter;\n }\n\n // Alignment content\n div[class*=\"textBox\"] > .control-label,\n div[class*=\"textArea\"] > .control-label,\n div[class*=\"datePicker\"] > .control-label {\n @extend .form-control-static;\n }\n\n // Label\n .control-label {\n overflow: hidden;\n margin-bottom: 4px;\n text-align: left;\n text-overflow: ellipsis;\n color: $form-label-color;\n font-size: $form-label-size;\n font-weight: $form-label-weight;\n }\n\n .mx-validation-message {\n flex-basis: 100%;\n }\n\n &.no-columns:not(.label-after) {\n flex-direction: column;\n }\n }\n\n .form-group.label-after {\n .form-control-static {\n flex: unset;\n }\n\n .control-label {\n margin-bottom: 0;\n }\n }\n\n .mx-dateinput,\n .mx-referenceselector,\n .mx-referencesetselector {\n flex: 1;\n }\n\n // Targets only webkit iOS devices\n .dj_webkit.dj_ios .form-control {\n transform: translateZ(0);\n }\n\n @media only screen and (min-width: $screen-md) {\n .form-horizontal {\n .control-label {\n margin-bottom: 0;\n padding-top: $form-input-padding-y;\n padding-bottom: $form-input-padding-y;\n line-height: $form-input-line-height;\n }\n }\n }\n\n @media only screen and (max-width: $screen-sm-max) {\n .form-group {\n flex-direction: column;\n }\n }\n\n @media only screen and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 0) {\n // Fixes alignment bug on iPads / iPhones where datefield is not aligned vertically\n input[type=\"date\"],\n input[type=\"time\"],\n input[type=\"datetime-local\"],\n input[type=\"month\"] {\n line-height: 1;\n }\n // Fix shrinking of date inputs because inability of setting a placeholder\n input[type=\"time\"]:not(.has-value):before,\n input[type=\"date\"]:not(.has-value):before,\n input[type=\"month\"]:not(.has-value):before,\n input[type=\"datetime-local\"]:not(.has-value):before {\n margin-right: 0.5em;\n content: attr(placeholder) !important;\n color: #aaaaaa;\n }\n input[type=\"time\"].has-value:before,\n input[type=\"date\"].has-value:before,\n input[type=\"month\"].has-value:before,\n input[type=\"datetime-local\"].has-value:before {\n content: \"\" !important;\n }\n }\n\n @media (-ms-high-contrast: none), (-ms-high-contrast: active) {\n // Target IE10+\n .form-group {\n display: block;\n }\n }\n\n [dir=\"rtl\"] {\n // Dropdown input widget\n select.form-control {\n padding-right: 30px;\n padding-left: 0;\n background-position: #{$form-input-padding-x} center;\n }\n\n .mx-compound-control .btn {\n margin-right: $spacing-small;\n margin-left: 0;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin background-helpers() {\n /* ==========================================================================\n Background\n\n Different background components, all managed by variables\n ========================================================================== */\n\n .background-main {\n background-color: $bg-color !important;\n }\n\n //Brand variations\n\n .background-primary {\n background-color: $brand-primary !important;\n }\n\n .background-primary-darker {\n background-color: $color-primary-darker !important;\n }\n\n .background-primary.background-dark,\n .background-primary-dark {\n background-color: $color-primary-dark !important;\n }\n\n .background-primary.background-light,\n .background-primary-light {\n background-color: $color-primary-light !important;\n }\n\n .background-primary-lighter {\n background-color: $color-primary-lighter !important;\n }\n\n .background-secondary {\n background-color: $bg-color-secondary !important;\n }\n\n .background-secondary.background-light {\n background-color: $bg-color-secondary !important;\n }\n\n .background-secondary.background-dark {\n background-color: $bg-color-secondary !important;\n }\n\n .background-brand-gradient {\n background-image: $brand-gradient !important;\n }\n\n //Semantic variations\n\n .background-success {\n background-color: $brand-success !important;\n }\n\n .background-success-darker {\n background-color: $color-success-darker !important;\n }\n\n .background-success.background-dark,\n .background-success-dark {\n background-color: $color-success-dark !important;\n }\n\n .background-success.background-light,\n .background-success-light {\n background-color: $color-success-light !important;\n }\n\n .background-success-lighter {\n background-color: $color-success-lighter !important;\n }\n\n .background-warning {\n background-color: $brand-warning !important;\n }\n\n .background-warning-darker {\n background-color: $color-warning-darker !important;\n }\n\n .background-warning.background-dark,\n .background-warning-dark {\n background-color: $color-warning-dark !important;\n }\n\n .background-warning.background-light,\n .background-warning-light {\n background-color: $color-warning-light !important;\n }\n\n .background-warning-lighter {\n background-color: $color-warning-lighter !important;\n }\n\n .background-danger {\n background-color: $brand-danger !important;\n }\n\n .background-danger-darker {\n background-color: $color-danger-darker !important;\n }\n\n .background-danger.background-dark,\n .background-danger-dark {\n background-color: $color-danger-dark !important;\n }\n\n .background-danger.background-light,\n .background-danger-light {\n background-color: $color-danger-light !important;\n }\n\n .background-danger-lighter {\n background-color: $color-danger-lighter !important;\n }\n\n //Bootstrap variations\n\n .background-default {\n background-color: $brand-default !important;\n }\n\n .background-default-darker {\n background-color: $color-default-darker !important;\n }\n\n .background-default-dark {\n background-color: $color-default-dark !important;\n }\n\n .background-default-light {\n background-color: $color-default-light !important;\n }\n\n .background-default-lighter {\n background-color: $color-default-lighter !important;\n }\n\n .background-inverse {\n background-color: $brand-inverse !important;\n }\n\n .background-inverse-darker {\n background-color: $color-inverse-darker !important;\n }\n\n .background-inverse-dark {\n background-color: $color-inverse-dark !important;\n }\n\n .background-inverse-light {\n background-color: $color-inverse-light !important;\n }\n\n .background-inverse-lighter {\n background-color: $color-inverse-lighter !important;\n }\n\n .background-info {\n background-color: $brand-info !important;\n }\n\n .background-info-darker {\n background-color: $color-info-darker !important;\n }\n\n .background-info-dark {\n background-color: $color-info-dark !important;\n }\n\n .background-info-light {\n background-color: $color-info-light !important;\n }\n\n .background-info-lighter {\n background-color: $color-info-lighter !important;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin label() {\n /* ==========================================================================\n Label\n\n Default label combined with Bootstrap label\n ========================================================================== */\n\n .label {\n display: inline-block;\n margin: 0;\n padding: $spacing-smaller $spacing-small;\n text-align: center;\n vertical-align: baseline;\n white-space: nowrap;\n color: #ffffff;\n border-radius: 0.25em;\n font-size: 100%;\n line-height: 1;\n\n .form-control-static {\n font-weight: $font-weight-normal;\n all: unset;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin badge() {\n /* ==========================================================================\n Badge\n\n Override of default Bootstrap badge style\n ========================================================================== */\n\n .badge {\n display: inline-block;\n margin: 0;\n padding: $spacing-smaller $spacing-small;\n text-align: center;\n vertical-align: baseline;\n white-space: nowrap;\n color: #ffffff;\n font-size: 100%;\n line-height: 1;\n\n .form-control-static {\n font-weight: $font-weight-normal;\n all: unset;\n }\n }\n\n /* ==========================================================================\n Badge-web\n\n Widget styles\n ========================================================================== */\n\n .widget-badge {\n color: $label-primary-color;\n background-color: $label-primary-bg;\n }\n\n .widget-badge-clickable {\n cursor: pointer;\n }\n\n .widget-badge.badge:empty {\n display: initial;\n /* Fix padding to stay round */\n padding: $spacing-smaller calc(#{$spacing-small} + 2px);\n }\n\n .widget-badge.label:empty {\n display: initial;\n /* Fix padding to stay square */\n padding: $spacing-smaller calc(#{$spacing-small} + 2px);\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin label-helpers() {\n /* ==========================================================================\n Label\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component including\n badge widget\n ========================================================================== */\n // Color variations\n .label-secondary,\n .label-default {\n color: $label-default-color;\n background-color: $label-default-bg;\n }\n\n .label-primary {\n color: $label-primary-color;\n background-color: $label-primary-bg;\n }\n\n .label-success {\n color: $label-success-color;\n background-color: $label-success-bg;\n }\n\n .label-inverse {\n color: $label-inverse-color;\n background-color: $label-inverse-bg;\n }\n\n .label-info {\n color: $label-info-color;\n background-color: $label-info-bg;\n }\n\n .label-warning {\n color: $label-warning-color;\n background-color: $label-warning-bg;\n }\n\n .label-danger {\n color: $label-danger-color;\n background-color: $label-danger-bg;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin badge-button() {\n /* ==========================================================================\n Badge button\n\n Widget styles\n ========================================================================== */\n .widget-badge-button {\n display: inline-block;\n\n .widget-badge-button-text {\n white-space: nowrap;\n padding-right: 5px;\n }\n\n .badge {\n top: unset;\n display: inline-block;\n margin: 0;\n padding: $spacing-smaller $spacing-small;\n text-align: center;\n vertical-align: baseline;\n white-space: nowrap;\n background-color: $btn-primary-color;\n color: $btn-primary-bg;\n font-size: 100%;\n line-height: 1;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin badge-button-helpers() {\n /* ==========================================================================\n Badge button\n\n Different background components, all managed by variables\n ========================================================================== */\n\n //Badge button color variation\n .btn-secondary,\n .btn-default {\n .badge {\n color: $btn-default-bg;\n background-color: $btn-primary-bg;\n }\n }\n\n .btn-success {\n .badge {\n color: $btn-success-bg;\n }\n }\n\n .btn-warning {\n .badge {\n color: $btn-warning-bg;\n }\n }\n\n .btn-danger {\n .badge {\n color: $btn-danger-bg;\n }\n }\n\n //Badge button bordered variation\n\n .btn-bordered.btn-primary {\n .badge {\n background: $btn-primary-bg;\n color: $btn-primary-color;\n }\n\n &:hover,\n &:focus {\n .badge {\n background-color: $btn-primary-color;\n color: $btn-primary-bg;\n }\n }\n }\n\n .btn-bordered.btn-success {\n .badge {\n background: $btn-success-bg;\n color: $btn-success-color;\n }\n\n &:hover,\n &:focus {\n .badge {\n background-color: $btn-success-color;\n color: $btn-success-bg;\n }\n }\n }\n\n .btn-bordered.btn-warning {\n .badge {\n background: $btn-warning-bg;\n color: $btn-warning-color;\n }\n\n &:hover,\n &:focus {\n .badge {\n background-color: $btn-warning-color;\n color: $btn-warning-bg;\n }\n }\n }\n\n .btn-bordered.btn-danger {\n .badge {\n background: $btn-danger-bg;\n color: $btn-danger-color;\n }\n\n &:hover,\n &:focus {\n .badge {\n background-color: $btn-danger-color;\n color: $btn-danger-bg;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin button() {\n /* ==========================================================================\n Button\n\n Default Bootstrap and Mendix button\n ========================================================================== */\n\n .btn,\n .mx-button {\n display: inline-block;\n margin-bottom: 0;\n padding: 0.6em 1em;\n cursor: pointer;\n -webkit-user-select: none;\n user-select: none;\n transition: all 0.2s ease-in-out;\n text-align: center;\n vertical-align: middle;\n white-space: nowrap;\n color: $btn-default-color;\n border: 1px solid $btn-default-border-color;\n border-radius: $btn-border-radius;\n background-color: $btn-default-bg;\n background-image: none;\n box-shadow: none;\n text-shadow: none;\n font-size: $btn-font-size;\n line-height: $line-height-base;\n\n &:hover,\n &:focus,\n &:active,\n &:active:focus {\n outline: none;\n box-shadow: none;\n }\n\n &[aria-disabled] {\n cursor: not-allowed;\n pointer-events: none;\n opacity: 0.65;\n }\n\n @if $btn-bordered != false {\n @extend .btn-bordered;\n }\n }\n\n // Mendix button link\n .mx-link {\n padding: 0;\n color: $link-color;\n\n &[aria-disabled=\"true\"] {\n cursor: not-allowed;\n pointer-events: none;\n opacity: 0.65;\n }\n }\n\n .link-back {\n color: $font-color-detail;\n\n .glyphicon {\n top: 2px;\n }\n }\n\n // Images and icons in buttons\n .btn,\n .mx-button,\n .mx-link {\n img {\n //height: auto; // MXUI override who set the height on 16px default\n height: calc(#{$font-size-default} + 4px);\n margin-right: 4px;\n vertical-align: text-top;\n }\n }\n\n //== Phone specific\n //-------------------------------------------------------------------------------------------------------------------//\n .profile-phone {\n .btn,\n .mx-link {\n &:active {\n transform: translateY(1px);\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin button-helpers() {\n /* ==========================================================================\n Button\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n // Color variations\n .btn,\n .btn-default {\n @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border-color, $btn-default-bg-hover);\n }\n\n .btn-primary {\n @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border-color, $btn-primary-bg-hover);\n }\n\n .btn-inverse {\n @include button-variant($btn-inverse-color, $btn-inverse-bg, $btn-inverse-border-color, $btn-inverse-bg-hover);\n }\n\n .btn-success {\n @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border-color, $btn-success-bg-hover);\n }\n\n .btn-info {\n @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border-color, $btn-info-bg-hover);\n }\n\n .btn-warning {\n @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border-color, $btn-warning-bg-hover);\n }\n\n .btn-danger {\n @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border-color, $btn-danger-bg-hover);\n }\n\n // Button Sizes\n .btn-lg {\n font-size: $font-size-large;\n\n img {\n height: calc(#{$font-size-small} + 4px);\n }\n }\n\n .btn-sm {\n font-size: $font-size-small;\n\n img {\n height: calc(#{$font-size-small} + 4px);\n }\n }\n\n // Button Image\n .btn-image {\n padding: 0;\n vertical-align: middle;\n border-style: none;\n background-color: transparent;\n\n img {\n display: block; // or else the button doesn't get a width\n height: auto; // Image set height\n }\n\n &:hover,\n &:focus {\n background-color: transparent;\n }\n }\n\n // Icon buttons\n .btn-icon {\n & > img,\n & > .glyphicon {\n margin: 0;\n }\n }\n\n .btn-icon-right {\n display: inline-flex;\n flex-direction: row-reverse;\n align-items: center;\n\n & > img,\n & > .glyphicon {\n top: 0;\n margin-left: 4px;\n }\n }\n\n .btn-icon-top {\n padding-right: 0;\n padding-left: 0;\n\n & > img,\n & > .glyphicon {\n display: block;\n margin: 0 0 4px 0;\n }\n }\n\n .btn-icon-only {\n @extend .btn-icon;\n padding: 0;\n color: $btn-default-icon-color;\n border: none;\n }\n\n .btn-block {\n display: block;\n width: 100%;\n }\n\n .btn-block + .btn-block {\n margin-top: 4px;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin button-variant($color, $background, $border, $hover) {\n @if not $exclude-button {\n color: $color;\n border-color: $border;\n background-color: $background;\n\n &:hover,\n &:focus,\n &:active,\n &.active,\n .open > &.dropdown-toggle {\n color: $color;\n border-color: $hover;\n background-color: $hover;\n }\n &:active,\n &.active,\n .open > &.dropdown-toggle {\n background-image: none;\n }\n &.disabled,\n &[disabled],\n &[aria-disabled],\n fieldset[disabled] {\n &,\n &:hover,\n &:focus,\n &:active,\n &.active {\n border-color: $border;\n background-color: $background;\n }\n }\n // Button bordered\n &.btn-bordered {\n background-color: transparent;\n @if $color != $btn-default-color {\n color: $border;\n }\n\n &:hover,\n &:focus,\n &:active,\n &.active,\n .open > &.dropdown-toggle {\n color: $color;\n border-color: $border;\n background-color: $border;\n }\n }\n // Button as link\n &.btn-link {\n text-decoration: none;\n border-color: transparent;\n background-color: transparent;\n @if $color != $btn-default-color {\n color: $background;\n }\n\n &:hover {\n border-color: $btn-link-bg-hover;\n background-color: $btn-link-bg-hover;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin check-box() {\n /* ==========================================================================\n Check box\n\n Default Mendix check box widget\n ========================================================================== */\n\n .mx-checkbox.label-after {\n flex-wrap: wrap;\n\n .control-label {\n display: flex;\n align-items: center;\n padding: 0;\n }\n }\n\n input[type=\"checkbox\"] {\n position: relative !important; //Remove after mxui merge\n width: 16px;\n height: 16px;\n margin: 0 !important; // Remove after mxui merge\n cursor: pointer;\n -webkit-user-select: none;\n user-select: none;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n\n &:before,\n &:after {\n position: absolute;\n display: block;\n transition: all 0.3s ease;\n }\n\n &:before {\n // Checkbox\n width: 100%;\n height: 100%;\n content: \"\";\n border: 1px solid $form-input-border-color;\n border-radius: $form-input-border-radius;\n background-color: transparent;\n }\n\n &:after {\n // Checkmark\n width: 8px;\n height: 4px;\n margin: 5px 4px;\n transform: rotate(-45deg);\n pointer-events: none;\n border: 2px solid #ffffff;\n border-top: 0;\n border-right: 0;\n }\n\n &:not(:disabled):not(:checked):hover:after {\n content: \"\";\n border-color: $form-input-bg-hover; // color of checkmark on hover\n }\n\n &:checked:before {\n border-color: $form-input-border-focus-color;\n background-color: $form-input-border-focus-color;\n }\n\n &:checked:after {\n content: \"\";\n }\n\n &:disabled:before {\n background-color: $form-input-bg-disabled;\n }\n\n &:checked:disabled:before {\n border-color: transparent;\n background-color: rgba($form-input-border-focus-color, 0.4);\n }\n\n &:disabled:after,\n &:checked:disabled:after {\n border-color: $form-input-bg-disabled;\n }\n\n & + .control-label {\n margin-left: $form-label-gutter;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin grid() {\n /* ==========================================================================\n Grid\n\n Default Mendix grid (used for Mendix data grid)\n ========================================================================== */\n\n .mx-grid {\n padding: 0px;\n border: 0;\n border-radius: 0;\n\n .mx-grid-controlbar {\n margin: 10px 0;\n /* Paging */\n .mx-grid-pagingbar {\n /* Buttons */\n .mx-button {\n padding: 8px;\n color: $grid-paging-color;\n border-color: $grid-paging-border-color;\n background-color: $grid-paging-bg;\n\n &:hover {\n color: $grid-paging-color-hover;\n border-color: $grid-paging-border-color-hover;\n background-color: $grid-paging-bg-hover;\n }\n }\n\n /* Text Paging .. to .. to .. */\n .mx-grid-paging-status {\n padding: 0 8px 8px;\n }\n }\n }\n\n .mx-grid-searchbar {\n margin: 10px 0;\n\n .mx-grid-search-item {\n .mx-grid-search-label {\n vertical-align: middle;\n\n label {\n padding-top: 5px;\n }\n }\n\n .mx-grid-search-input {\n display: inline-flex;\n\n .form-control {\n height: 28px;\n font-size: 11px;\n }\n\n select.form-control {\n padding: 3px;\n vertical-align: middle;\n }\n\n .mx-button {\n height: 28px;\n padding-top: 2px;\n padding-bottom: 2px;\n }\n }\n }\n }\n }\n\n // Remove default border from grid inside a Mendix Dataview\n .mx-dataview .mx-grid {\n border: 0;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin data-grid() {\n /* ==========================================================================\n Data grid default\n\n Default Mendix data grid widget. The data grid shows a list of objects in a grid\n ========================================================================== */\n\n .mx-datagrid {\n table {\n border-width: 0;\n background-color: transparent;\n /* Table header */\n th {\n border-style: solid;\n border-color: $grid-border-color;\n border-top-width: 0;\n border-right: 0;\n border-bottom-width: 1px;\n border-left: 0;\n background-color: $grid-bg-header;\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n vertical-align: middle;\n\n .mx-datagrid-head-caption {\n white-space: normal;\n }\n }\n\n /* Table Body */\n tbody tr {\n td {\n @include transition();\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n vertical-align: middle;\n border-width: 0;\n border-color: $grid-border-color;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n background-color: $grid-bg;\n\n &:focus {\n outline: none;\n }\n\n /* Text without spaces */\n .mx-datagrid-data-wrapper {\n text-overflow: ellipsis;\n }\n }\n\n &.selected td,\n &.selected:hover td {\n color: $grid-selected-color;\n background-color: $grid-bg-selected !important;\n }\n }\n\n /* Table Footer */\n tfoot {\n > tr > th {\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n border-width: 0;\n background-color: $grid-footer-bg;\n }\n\n > tr > td {\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n border-width: 0;\n background-color: $grid-bg;\n font-weight: $font-weight-bold;\n }\n }\n\n & *:focus {\n outline: 0;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin transition(\n $style: initial,\n $delay: 0s,\n $duration: 0.3s,\n $property: all,\n $timing-function: cubic-bezier(0.4, 0, 0.2, 1)\n) {\n @if not $exclude-animations {\n transition: $property $duration $delay $timing-function;\n transform-style: $style;\n }\n}\n\n@mixin ripple($color: #000, $transparency: 10%, $scale: 10) {\n @if not $exclude-animations {\n position: relative;\n overflow: hidden;\n transform: translate3d(0, 0, 0);\n\n &:after {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n pointer-events: none;\n background-image: radial-gradient(circle, $color $transparency, transparent $transparency);\n background-repeat: no-repeat;\n background-position: 50%;\n transform: scale($scale, $scale);\n opacity: 0;\n transition: transform 0.5s, opacity 1s;\n }\n\n &:active:after {\n transform: scale(0, 0);\n opacity: 0.1;\n transition: 0s;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin data-grid-helpers() {\n /* ==========================================================================\n Data grid default\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n // Striped style\n .datagrid-striped.mx-datagrid {\n table {\n th {\n border-width: 0;\n }\n\n tbody tr {\n td {\n border-top-width: 0;\n }\n\n &:nth-child(odd) td {\n background-color: $grid-bg-striped;\n }\n }\n }\n }\n\n // Bordered style\n .datagrid-bordered.mx-datagrid {\n table {\n border: 1px solid;\n\n th {\n border: 1px solid $grid-border-color;\n }\n\n tbody tr {\n td {\n border: 1px solid $grid-border-color;\n }\n }\n }\n\n tfoot {\n > tr > th {\n border-width: 0;\n background-color: $grid-footer-bg;\n }\n\n > tr > td {\n border-width: 1px;\n }\n }\n }\n\n // Transparent style so you can see the background\n .datagrid-transparent.mx-datagrid {\n table {\n background-color: transparent;\n\n tbody tr {\n &:nth-of-type(odd) {\n background-color: transparent;\n }\n\n td {\n background-color: transparent;\n }\n }\n }\n }\n\n // Hover style activated\n .datagrid-hover.mx-datagrid {\n table {\n tbody tr {\n &:hover td {\n background-color: $grid-bg-hover !important;\n }\n\n &.selected:hover td {\n background-color: $grid-bg-selected-hover !important;\n }\n }\n }\n }\n\n // Datagrid Row Sizes\n .datagrid-lg.mx-datagrid {\n table {\n th {\n padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2)\n ($grid-padding-left * 2);\n }\n\n tbody tr {\n td {\n padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2)\n ($grid-padding-left * 2);\n }\n }\n }\n }\n\n .datagrid-sm.mx-datagrid {\n table {\n th {\n padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2)\n ($grid-padding-left / 2);\n }\n\n tbody tr {\n td {\n padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2)\n ($grid-padding-left/ 2);\n }\n }\n }\n }\n\n // Datagrid Full Search\n // Default Mendix Datagrid Widget with adjusted search field. Only 1 search field is allowed\n .datagrid-fullsearch.mx-grid {\n .mx-grid-search-button {\n @extend .btn-primary;\n }\n\n .mx-grid-reset-button {\n display: none;\n }\n\n .mx-grid-search-item {\n display: block;\n }\n\n .mx-grid-search-label {\n display: none;\n }\n\n .mx-grid-searchbar {\n .mx-grid-search-controls {\n position: absolute;\n right: 0;\n }\n\n .mx-grid-search-input {\n width: 80%;\n padding-left: 0;\n\n .btn,\n .form-control {\n height: 35px;\n font-size: 12px;\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin data-view() {\n /* ==========================================================================\n Data view\n\n Default Mendix data view widget. The data view is used for showing the contents of exactly one object\n ========================================================================== */\n\n .mx-dataview {\n /* Dataview-content gives problems for nexted layout grid containers */\n > .mx-dataview-content > .mx-container-nested {\n > .row {\n margin-right: 0;\n margin-left: 0;\n }\n }\n\n /* Dataview empty message */\n .mx-dataview-message {\n color: $dataview-emptymessage-color;\n background: $dataview-emptymessage-bg;\n }\n }\n\n .mx-dataview-controls {\n margin-top: $spacing-medium;\n padding: $spacing-medium 0 0;\n border-top: 1px solid $dataview-controls-border-color;\n border-radius: 0;\n background-color: $dataview-controls-bg;\n /* Buttons */\n .mx-button {\n margin-right: $spacing-small;\n margin-bottom: 0;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n background-color: inherit;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin date-picker() {\n /* ==========================================================================\n Date picker\n\n Default Mendix date picker widget\n ========================================================================== */\n\n .mx-calendar {\n /* (must be higher than popup z-index) */\n z-index: 10010 !important;\n padding: 8px;\n font-size: 12px;\n background: $bg-color;\n border-radius: $border-radius-default;\n border: 1px solid $border-color-default;\n box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.06);\n\n .mx-calendar-month-header {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n margin: 0 3px 10px 3px;\n }\n\n .mx-calendar-month-next,\n .mx-calendar-month-previous,\n .mx-calendar-month-dropdown {\n border: 0;\n cursor: pointer;\n background: transparent;\n }\n\n .mx-calendar-month-next,\n .mx-calendar-month-previous {\n &:hover {\n color: $brand-primary;\n }\n }\n\n .mx-calendar-month-dropdown {\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n\n .mx-calendar-month-current:first-child {\n margin-right: 10px;\n }\n }\n\n th {\n color: $brand-primary;\n }\n\n th,\n td {\n width: 35px;\n height: 35px;\n text-align: center;\n }\n\n td {\n color: $font-color-default;\n\n &:hover {\n cursor: pointer;\n border-radius: 50%;\n color: $brand-primary;\n background-color: $brand-default;\n }\n }\n\n .mx-calendar-day-month-next,\n .mx-calendar-day-month-previous {\n color: lighten($font-color-default, 45%);\n }\n\n .mx-calendar-day-selected,\n .mx-calendar-day-selected:hover {\n color: #fff;\n border-radius: 50%;\n background: $brand-primary;\n }\n\n //\n\n .mx-calendar-year-switcher {\n text-align: center;\n margin-top: 10px;\n color: lighten($brand-primary, 30%);\n\n span.mx-calendar-year-selected {\n color: $brand-primary;\n margin-left: 10px;\n margin-right: 10px;\n }\n\n span:hover {\n cursor: pointer;\n text-decoration: underline;\n background-color: transparent;\n }\n }\n }\n\n .mx-calendar-month-dropdown-options {\n /* (must be higher than popup z-index) */\n z-index: 10020 !important;\n position: absolute;\n top: 25px;\n padding: 2px 10px;\n border-radius: $border-radius-default;\n background-color: $bg-color;\n\n div {\n cursor: pointer;\n font-size: 12px;\n padding: 2px 0;\n\n &:hover,\n &:focus {\n color: $brand-primary;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin header() {\n /* ==========================================================================\n Header\n\n Default Mendix mobile header\n ========================================================================== */\n\n .mx-header {\n z-index: 100;\n display: flex;\n width: 100%;\n height: $m-header-height;\n padding: 0;\n text-align: initial;\n color: $m-header-color;\n background-color: $m-header-bg;\n box-shadow: 0px 2px 2px rgba(194, 196, 201, 0.30354);\n\n // Reset mxui\n div.mx-header-left,\n div.mx-header-right {\n position: relative;\n top: initial;\n right: initial;\n left: initial;\n display: flex;\n align-items: center;\n width: 25%;\n height: 100%;\n\n .mx-placeholder {\n display: flex;\n align-items: center;\n height: 100%;\n }\n }\n\n div.mx-header-left .mx-placeholder {\n order: 1;\n\n .mx-placeholder {\n justify-content: flex-start;\n }\n }\n\n div.mx-header-center {\n overflow: hidden;\n flex: 1;\n order: 2;\n text-align: center;\n\n .mx-title {\n overflow: hidden;\n width: 100%;\n margin: 0;\n text-overflow: ellipsis;\n color: $m-header-color;\n font-size: $m-header-title-size;\n line-height: $m-header-height;\n }\n }\n\n div.mx-header-right {\n order: 3;\n\n .mx-placeholder {\n justify-content: flex-end;\n }\n }\n\n // Content magic\n .mx-link {\n display: flex;\n align-items: center;\n height: 100%;\n transition: all 0.2s;\n text-decoration: none;\n\n .glyphicon {\n top: 0;\n font-size: 23px;\n }\n\n &:active {\n transform: translateY(1px);\n color: $link-hover-color;\n }\n }\n\n .mx-link,\n .btn,\n img {\n padding: 0 $spacing-medium;\n }\n\n .mx-sidebartoggle {\n font-size: 24px;\n line-height: $m-header-height;\n\n img {\n height: 20px;\n }\n }\n }\n\n // RTL support\n body[dir=\"rtl\"] {\n .mx-header-left {\n order: 3;\n }\n\n .mx-header-right {\n order: 1;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin glyphicon() {\n /* ==========================================================================\n Glyphicon\n\n Default Mendix glyphicon\n ========================================================================== */\n\n .mx-glyphicon {\n &:before {\n display: inline-block;\n margin-top: -0.2em;\n margin-right: 0.4555555em;\n vertical-align: middle;\n font-family: \"Glyphicons Halflings\";\n font-weight: $font-weight-normal;\n font-style: normal;\n line-height: inherit;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin group-box() {\n /* ==========================================================================\n Group box\n\n Default Mendix group box\n ========================================================================== */\n\n .mx-groupbox {\n margin: 0;\n\n > .mx-groupbox-header {\n margin: 0;\n color: $groupbox-default-color;\n border-width: 1px 1px 0 1px;\n border-style: solid;\n border-color: $groupbox-default-bg;\n background: $groupbox-default-bg;\n font-size: $font-size-h5;\n border-radius: $border-radius-default $border-radius-default 0 0;\n padding: $spacing-small * 1.5 $spacing-medium;\n\n .mx-groupbox-collapse-icon {\n margin-top: 0.1em;\n }\n }\n\n // Header options\n > h1.mx-groupbox-header {\n font-size: $font-size-h1;\n }\n\n > h2.mx-groupbox-header {\n font-size: $font-size-h2;\n }\n\n > h3.mx-groupbox-header {\n font-size: $font-size-h3;\n }\n\n > h4.mx-groupbox-header {\n font-size: $font-size-h4;\n }\n\n > h5.mx-groupbox-header {\n font-size: $font-size-h5;\n }\n\n > h6.mx-groupbox-header {\n font-size: $font-size-h6;\n }\n\n > .mx-groupbox-body {\n padding: $spacing-small * 1.5 $spacing-medium;\n border-width: 1px;\n border-style: solid;\n border-color: $groupbox-default-bg;\n background-color: #ffffff;\n border-radius: $border-radius-default;\n }\n\n .mx-groupbox-header + .mx-groupbox-body {\n border-top: none;\n }\n\n &.collapsed > .mx-groupbox-header {\n }\n }\n\n //With header\n .mx-groupbox-header ~ .mx-groupbox-body {\n border-radius: 0 0 $border-radius-default $border-radius-default;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin group-box-helpers() {\n /* ==========================================================================\n Group box\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n // Color variations\n .groupbox-secondary,\n .groupbox-default {\n @include groupbox-variant($groupbox-default-color, $groupbox-default-bg);\n }\n\n .groupbox-primary {\n @include groupbox-variant($groupbox-primary-color, $groupbox-primary-bg);\n }\n\n // Success appears as green\n .groupbox-success {\n @include groupbox-variant($groupbox-success-color, $groupbox-success-bg);\n }\n\n // Warning appears as orange\n .groupbox-warning {\n @include groupbox-variant($groupbox-warning-color, $groupbox-warning-bg);\n }\n\n // Danger and error appear as red\n .groupbox-danger {\n @include groupbox-variant($groupbox-danger-color, $groupbox-danger-bg);\n }\n\n .groupbox-transparent {\n > .mx-groupbox-header {\n padding: $spacing-small * 1.5 0;\n color: $gray-darker;\n border-style: none;\n background: transparent;\n font-weight: $font-weight-semibold;\n }\n\n .mx-groupbox-body {\n padding: $spacing-small 0;\n border-radius: 0;\n border: 0;\n border-bottom: 1px solid $groupbox-default-bg;\n background-color: transparent;\n }\n\n .mx-groupbox-collapse-icon {\n color: $brand-primary;\n }\n }\n\n // Callout Look and Feel\n .groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n border: 0;\n background-color: $callout-primary-bg;\n }\n\n > .mx-groupbox-header {\n color: $callout-primary-color;\n }\n\n .mx-groupbox-header + .mx-groupbox-body {\n padding-top: 0;\n }\n }\n\n .groupbox-success.groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n background-color: $callout-success-bg;\n }\n\n > .mx-groupbox-header {\n color: $callout-success-color;\n }\n }\n\n .groupbox-warning.groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n background-color: $callout-warning-bg;\n }\n\n > .mx-groupbox-header {\n color: $callout-warning-color;\n }\n }\n\n .groupbox-danger.groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n background-color: $callout-danger-bg;\n }\n\n > .mx-groupbox-header {\n color: $callout-danger-color;\n }\n }\n\n //Bootstrap variations\n\n .groupbox-info {\n @include groupbox-variant($groupbox-info-color, $groupbox-info-bg);\n }\n\n .groupbox-inverse {\n @include groupbox-variant($groupbox-inverse-color, $groupbox-inverse-bg);\n }\n\n .groupbox-white {\n @include groupbox-variant($groupbox-white-color, $groupbox-white-bg);\n }\n\n .groupbox-info.groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n background-color: $callout-info-bg;\n }\n\n > .mx-groupbox-header {\n color: $callout-info-color;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin groupbox-variant($color, $background) {\n @if not $exclude-group-box {\n > .mx-groupbox-header {\n color: $color;\n border-color: $background;\n background: $background;\n }\n > .mx-groupbox-body {\n border-color: $background;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n//\n// ██████╗ █████╗ ███████╗██╗ ██████╗\n// ██╔══██╗██╔══██╗██╔════╝██║██╔════╝\n// ██████╔╝███████║███████╗██║██║\n// ██╔══██╗██╔══██║╚════██║██║██║\n// ██████╔╝██║ ██║███████║██║╚██████╗\n// ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═════╝\n//\n\n//== Gray Shades\n//## Different gray shades to be used for our variables and components\n$gray-darker: #3b4251 !default;\n$gray-dark: #606671 !default;\n$gray: #787d87 !default;\n$gray-light: #6c7180 !default;\n$gray-primary: #ced0d3 !default;\n$gray-lighter: #f8f8f8 !default;\n\n//== Step 1: Brand Colors\n$brand-default: $gray-primary !default;\n$brand-primary: #264ae5 !default;\n$brand-success: #3cb33d !default;\n$brand-warning: #eca51c !default;\n$brand-danger: #e33f4e !default;\n\n$brand-logo: false !default;\n$brand-logo-height: 26px !default;\n$brand-logo-width: 26px !default; // Only used for CSS brand logo\n\n//== Step 2: UI Customization\n\n// Default Font Size & Color\n$font-size-default: 14px !default;\n$font-color-default: #6c717e !default;\n\n// Global Border Color\n$border-color-default: #ced0d3 !default;\n$border-radius-default: 5px !default;\n\n// Topbar\n$topbar-bg: #fff !default;\n$topbar-minimalheight: 60px !default;\n$topbar-border-color: $border-color-default !default;\n\n// Topbar mobile\n$m-header-height: 45px !default;\n$m-header-bg: $brand-primary !default;\n$m-header-color: #fff !default;\n$m-header-title-size: 16px !default;\n\n// Navbar Brand Name / For your company, product, or project name (used in layouts/base/)\n$navbar-brand-name: $font-color-default !default;\n\n// Background Colors\n// Backgrounds\n$bg-color: #f8f8f8 !default;\n$bg-color-secondary: #fff !default;\n\n// Default Link Color\n$link-color: $brand-primary !default;\n$link-hover-color: darken($link-color, 15%) !default;\n\n//\n// █████╗ ██████╗ ██╗ ██╗ █████╗ ███╗ ██╗ ██████╗███████╗██████╗\n// ██╔══██╗██╔══██╗██║ ██║██╔══██╗████╗ ██║██╔════╝██╔════╝██╔══██╗\n// ███████║██║ ██║██║ ██║███████║██╔██╗ ██║██║ █████╗ ██║ ██║\n// ██╔══██║██║ ██║╚██╗ ██╔╝██╔══██║██║╚██╗██║██║ ██╔══╝ ██║ ██║\n// ██║ ██║██████╔╝ ╚████╔╝ ██║ ██║██║ ╚████║╚██████╗███████╗██████╔╝\n// ╚═╝ ╚═╝╚═════╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝\n//\n\n//== Typography\n//## Change your font family, weight, line-height, headings and more (used in components/typography)\n\n// Font Family Import (Used for google font plugin in theme creater)\n$font-family-import: \"https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700\" !default;\n\n// Font Family / False = fallback from Bootstrap (Helvetica Neue)\n$font-family-base: \"Open Sans\", sans-serif !default;\n\n// Font Sizes\n$font-size-large: 18px !default;\n$font-size-small: 12px !default;\n\n// Font Weights\n$font-weight-light: 100 !default;\n$font-weight-normal: normal !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: bold !default;\n\n// Font Size Headers\n$font-size-h1: 31px !default;\n$font-size-h2: 26px !default;\n$font-size-h3: 24px !default;\n$font-size-h4: 18px !default;\n$font-size-h5: $font-size-default !default;\n$font-size-h6: 12px !default;\n\n// Font Weight Headers\n$font-weight-header: $font-weight-semibold !default;\n\n// Line Height\n$line-height-base: 1.428571429 !default;\n\n// Spacing\n$font-header-margin: 0 0 8px 0 !default;\n\n// Text Colors\n$font-color-detail: #6c717e !default;\n$font-color-header: #0a1326 !default;\n\n//== Navigation\n//## Used in components/navigation\n\n// Default Navigation styling\n$navigation-item-height: unset !default;\n$navigation-item-padding: 16px !default;\n\n$navigation-font-size: $font-size-default !default;\n$navigation-sub-font-size: $font-size-small !default;\n$navigation-glyph-size: 20px !default; // For glyphicons that you can select in the Mendix Modeler\n\n$navigation-color: #fff !default;\n$navigation-color-hover: #fff !default;\n$navigation-color-active: #fff !default;\n\n$navigation-sub-color: #aaa !default;\n$navigation-sub-color-hover: $brand-primary !default;\n$navigation-sub-color-active: $brand-primary !default;\n\n// Navigation Sidebar\n$navsidebar-font-size: $font-size-default !default;\n$navsidebar-sub-font-size: $font-size-small !default;\n$navsidebar-glyph-size: 20px !default; // For glyphicons that you can select in the Mendix Modeler\n\n$navsidebar-color: #fff !default;\n$navsidebar-color-hover: #fff !default;\n$navsidebar-color-active: #fff !default;\n\n$navsidebar-sub-color: #aaa !default;\n$navsidebar-sub-color-hover: $brand-primary !default;\n$navsidebar-sub-color-active: $brand-primary !default;\n\n$navsidebar-width-closed: 52px !default;\n$navsidebar-width-open: 232px !default;\n\n// Navigation topbar\n$navtopbar-font-size: $font-size-default !default;\n$navtopbar-sub-font-size: $font-size-small !default;\n$navtopbar-glyph-size: 1.2em !default; // For glyphicons that you can select in the Mendix Modeler\n\n$navtopbar-bg: $topbar-bg !default;\n$navtopbar-bg-hover: darken($navtopbar-bg, 4) !default;\n$navtopbar-bg-active: darken($navtopbar-bg, 8) !default;\n$navtopbar-color: $font-color-default !default;\n$navtopbar-color-hover: $navtopbar-color !default;\n$navtopbar-color-active: $navtopbar-color !default;\n\n$navtopbar-sub-bg: lighten($navtopbar-bg, 4) !default;\n$navtopbar-sub-bg-hover: $navtopbar-sub-bg !default;\n$navtopbar-sub-bg-active: $navtopbar-sub-bg !default;\n$navtopbar-sub-color: #aaa !default;\n$navtopbar-sub-color-hover: $brand-primary !default;\n$navtopbar-sub-color-active: $brand-primary !default;\n\n//== Cards\n// Shadow color\n$shadow-color-border: rgba($gray-primary, 0.5);\n$shadow-color: rgba($gray-primary, 0.66);\n\n//Shadow size\n$shadow-small: 0 2px 4px 0;\n$shadow-medium: 0 5px 7px 0;\n$shadow-large: 0 8px 10px 0;\n\n//## Used in layouts/base\n$navtopbar-border-color: $topbar-border-color !default;\n\n//== Form\n//## Used in components/inputs\n\n// Values that can be used default | lined\n$form-input-style: default !default;\n\n// Form Label\n$form-label-size: $font-size-default !default;\n$form-label-weight: $font-weight-semibold !default;\n$form-label-gutter: 8px !default;\n\n// Form Input dimensions\n$form-input-height: auto !default;\n$form-input-padding-y: 8px !default;\n$form-input-padding-x: 8px !default;\n$form-input-static-padding-y: 8px !default;\n$form-input-static-padding-x: 0 !default;\n$form-input-font-size: $form-label-size !default;\n$form-input-line-height: $line-height-base !default;\n$form-input-border-radius: $border-radius-default !default;\n\n// Form Input styling\n$form-input-bg: #fff !default;\n$form-input-bg-focus: #fff !default;\n$form-input-bg-hover: $gray-primary !default;\n$form-input-bg-disabled: $bg-color !default;\n$form-input-color: $font-color-default !default;\n$form-input-focus-color: $form-input-color !default;\n$form-input-disabled-color: #9da1a8 !default;\n$form-input-placeholder-color: #6c717c !default;\n$form-input-border-color: $gray-primary !default;\n$form-input-border-focus-color: $brand-primary !default;\n\n// Form Input Static styling\n$form-input-static-border-color: $gray-primary !default;\n\n// Form Group\n$form-group-margin-bottom: 16px !default;\n$form-group-gutter: 16px !default;\n\n//== Buttons\n//## Define background-color, border-color and text. Used in components/buttons\n\n// Default button style\n$btn-font-size: 14px !default;\n$btn-bordered: false !default; // Default value false, set to true if you want this effect\n$btn-border-radius: $border-radius-default !default;\n\n// Button Background Color\n$btn-default-bg: #fff !default;\n$btn-primary-bg: $brand-primary !default;\n$btn-success-bg: $brand-success !default;\n$btn-warning-bg: $brand-warning !default;\n$btn-danger-bg: $brand-danger !default;\n\n// Button Border Color\n$btn-default-border-color: $gray-primary !default;\n$btn-primary-border-color: $brand-primary !default;\n$btn-success-border-color: $brand-success !default;\n$btn-warning-border-color: $brand-warning !default;\n$btn-danger-border-color: $brand-danger !default;\n\n// Button Text Color\n$btn-default-color: $brand-primary !default;\n$btn-primary-color: #fff !default;\n$btn-success-color: #fff !default;\n$btn-warning-color: #fff !default;\n$btn-danger-color: #fff !default;\n\n// Button Icon Color\n$btn-default-icon-color: $gray !default;\n\n// Button Background Color\n$btn-default-bg-hover: $btn-default-border-color !default;\n$btn-primary-bg-hover: mix($btn-primary-bg, black, 80%) !default;\n$btn-success-bg-hover: mix($btn-success-bg, black, 80%) !default;\n$btn-warning-bg-hover: mix($btn-warning-bg, black, 80%) !default;\n$btn-danger-bg-hover: mix($btn-danger-bg, black, 80%) !default;\n$btn-link-bg-hover: $gray-lighter !default;\n\n//== Header blocks\n//## Define look and feel over multible building blocks that serve as header\n\n$header-min-height: 240px !default;\n$header-bg-color: $brand-primary !default;\n$header-bgimage-filter: brightness(60%) !default;\n$header-text-color: #fff !default;\n$header-text-color-detail: rgba(0, 0, 0, 0.2) !default;\n\n//\n// ███████╗██╗ ██╗██████╗ ███████╗██████╗ ████████╗\n// ██╔════╝╚██╗██╔╝██╔══██╗██╔════╝██╔══██╗╚══██╔══╝\n// █████╗ ╚███╔╝ ██████╔╝█████╗ ██████╔╝ ██║\n// ██╔══╝ ██╔██╗ ██╔═══╝ ██╔══╝ ██╔══██╗ ██║\n// ███████╗██╔╝ ██╗██║ ███████╗██║ ██║ ██║\n// ╚══════╝╚═╝ ╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝\n//\n\n//== Color variations\n//## These variations are used to support several other variables and components\n\n// Color variations\n$color-default-darker: mix($brand-default, black, 60%) !default;\n$color-default-dark: mix($brand-default, black, 70%) !default;\n$color-default-light: mix($brand-default, white, 20%) !default;\n$color-default-lighter: mix($brand-default, white, 10%) !default;\n\n$color-primary-darker: mix($brand-primary, black, 60%) !default;\n$color-primary-dark: mix($brand-primary, black, 70%) !default;\n$color-primary-light: mix($brand-primary, white, 20%) !default;\n$color-primary-lighter: mix($brand-primary, white, 10%) !default;\n\n$color-success-darker: mix($brand-success, black, 60%) !default;\n$color-success-dark: mix($brand-success, black, 70%) !default;\n$color-success-light: mix($brand-success, white, 20%) !default;\n$color-success-lighter: mix($brand-success, white, 10%) !default;\n\n$color-warning-darker: mix($brand-warning, black, 60%) !default;\n$color-warning-dark: mix($brand-warning, black, 70%) !default;\n$color-warning-light: mix($brand-warning, white, 20%) !default;\n$color-warning-lighter: mix($brand-warning, white, 10%) !default;\n\n$color-danger-darker: mix($brand-danger, black, 60%) !default;\n$color-danger-dark: mix($brand-danger, black, 70%) !default;\n$color-danger-light: mix($brand-danger, white, 20%) !default;\n$color-danger-lighter: mix($brand-danger, white, 10%) !default;\n\n$brand-gradient: linear-gradient(to right top, #264ae5, #2239c5, #1b29a6, #111988, #03096c) !default;\n\n//== Grids\n//## Used for Datagrid, Templategrid, Listview & Tables (see components folder)\n\n// Default Border Colors\n$grid-border-color: $border-color-default !default;\n\n// Spacing\n// Default\n$grid-padding-top: 16px !default;\n$grid-padding-right: 16px !default;\n$grid-padding-bottom: 16px !default;\n$grid-padding-left: 16px !default;\n\n// Listview\n$listview-padding-top: 16px !default;\n$listview-padding-right: 16px !default;\n$listview-padding-bottom: 16px !default;\n$listview-padding-left: 16px !default;\n\n// Background Colors\n$grid-bg: transparent !default;\n$grid-bg-header: transparent !default; // Grid Headers\n$grid-bg-hover: mix($grid-border-color, #fff, 20%) !default;\n$grid-bg-selected: mix($grid-border-color, #fff, 30%) !default;\n$grid-bg-selected-hover: mix($grid-border-color, #fff, 50%) !default;\n\n// Striped Background Color\n$grid-bg-striped: mix($grid-border-color, #fff, 10%) !default;\n\n// Background Footer Color\n$grid-footer-bg: $gray-primary !default;\n\n// Text Color\n$grid-selected-color: $font-color-default !default;\n\n// Paging Colors\n$grid-paging-bg: transparent !default;\n$grid-paging-bg-hover: transparent !default;\n$grid-paging-border-color: transparent !default;\n$grid-paging-border-color-hover: transparent !default;\n$grid-paging-color: $gray-light !default;\n$grid-paging-color-hover: $brand-primary !default;\n\n//== Tabs\n//## Default variables for Tab Container Widget (used in components/tabcontainer)\n\n// Text Color\n$tabs-color: $font-color-detail !default;\n$tabs-color-active: $font-color-default !default;\n$tabs-lined-color-active: $font-color-default !default;\n\n$tabs-lined-border-width: 3px !default;\n\n// Border Color\n$tabs-border-color: $border-color-default !default;\n$tabs-lined-border-color: $brand-primary !default;\n\n// Background Color\n$tabs-bg: transparent !default;\n$tabs-bg-pills: #e7e7e9 !default;\n$tabs-bg-hover: lighten($tabs-border-color, 5) !default;\n$tabs-bg-active: $brand-primary !default;\n\n//== Modals\n//## Default Mendix Modal, Blocking Modal and Login Modal (used in components/modals)\n\n// Background Color\n$modal-header-bg: transparent !default;\n\n// Border Color\n$modal-header-border-color: $border-color-default !default;\n\n// Text Color\n$modal-header-color: $font-color-default !default;\n\n//== Dataview\n//## Default variables for Dataview Widget (used in components/dataview)\n\n// Controls\n$dataview-controls-bg: transparent !default;\n$dataview-controls-border-color: $border-color-default !default;\n\n// Empty Message\n$dataview-emptymessage-bg: $bg-color !default;\n$dataview-emptymessage-color: $font-color-default !default;\n\n//== Alerts\n//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts)\n\n// Background Color\n$alert-primary-bg: $color-primary-lighter !default;\n$alert-secondary-bg: $color-primary-lighter !default;\n$alert-success-bg: $color-success-lighter !default;\n$alert-warning-bg: $color-warning-lighter !default;\n$alert-danger-bg: $color-danger-lighter !default;\n\n// Text Color\n$alert-primary-color: $color-primary-darker !default;\n$alert-secondary-color: $color-primary-darker !default;\n$alert-success-color: $color-success-darker !default;\n$alert-warning-color: $color-warning-darker !default;\n$alert-danger-color: $color-danger-darker !default;\n\n// Border Color\n$alert-primary-border-color: $color-primary-dark !default;\n$alert-secondary-border-color: $color-primary-dark !default;\n$alert-success-border-color: $color-success-dark !default;\n$alert-warning-border-color: $color-warning-dark !default;\n$alert-danger-border-color: $color-danger-dark !default;\n\n//== Wizard\n\n$wizard-step-height: 48px !default;\n$wizard-step-number-size: 64px !default;\n$wizard-step-number-font-size: $font-size-h3 !default;\n\n//Wizard states\n$wizard-default: #fff !default;\n$wizard-active: $brand-primary !default;\n$wizard-visited: $brand-success !default;\n\n//Wizard step states\n$wizard-default-bg: $wizard-default !default;\n$wizard-default-color: $wizard-default !default;\n$wizard-default-step-color: $font-color-default !default;\n$wizard-default-border-color: $border-color-default !default;\n\n$wizard-active-bg: $wizard-active !default;\n$wizard-active-color: $wizard-default !default;\n$wizard-active-step-color: $wizard-active !default;\n$wizard-active-border-color: $wizard-active !default;\n\n$wizard-visited-bg: $wizard-visited !default;\n$wizard-visited-color: $wizard-default !default;\n$wizard-visited-step-color: $wizard-visited !default;\n$wizard-visited-border-color: $wizard-visited !default;\n\n//== Labels\n//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels)\n\n// Background Color\n$label-default-bg: $brand-default !default;\n$label-primary-bg: $brand-primary !default;\n$label-success-bg: $brand-success !default;\n$label-warning-bg: $brand-warning !default;\n$label-danger-bg: $brand-danger !default;\n\n// Border Color\n$label-default-border-color: $brand-default !default;\n$label-primary-border-color: $brand-primary !default;\n$label-success-border-color: $brand-success !default;\n$label-warning-border-color: $brand-warning !default;\n$label-danger-border-color: $brand-danger !default;\n\n// Text Color\n$label-default-color: $font-color-default !default;\n$label-primary-color: #fff !default;\n$label-success-color: #fff !default;\n$label-warning-color: #fff !default;\n$label-danger-color: #fff !default;\n\n//== Groupbox\n//## Default variables for Groupbox Widget (used in components/groupbox)\n\n// Background Color\n$groupbox-default-bg: $gray-primary !default;\n$groupbox-primary-bg: $brand-primary !default;\n$groupbox-success-bg: $brand-success !default;\n$groupbox-warning-bg: $brand-warning !default;\n$groupbox-danger-bg: $brand-danger !default;\n$groupbox-white-bg: #fff !default;\n\n// Text Color\n$groupbox-default-color: $font-color-default !default;\n$groupbox-primary-color: #fff !default;\n$groupbox-success-color: #fff !default;\n$groupbox-warning-color: #fff !default;\n$groupbox-danger-color: #fff !default;\n$groupbox-white-color: $font-color-default !default;\n\n//== Callout (groupbox) Colors\n//## Extended variables for Groupbox Widget (used in components/groupbox)\n\n// Text and Border Color\n$callout-default-color: $font-color-default !default;\n$callout-primary-color: $brand-primary !default;\n$callout-success-color: $brand-success !default;\n$callout-warning-color: $brand-warning !default;\n$callout-danger-color: $brand-danger !default;\n\n// Background Color\n$callout-default-bg: $color-default-lighter !default;\n$callout-primary-bg: $color-primary-lighter !default;\n$callout-success-bg: $color-success-lighter !default;\n$callout-warning-bg: $color-warning-lighter !default;\n$callout-danger-bg: $color-danger-lighter !default;\n\n//== Timeline\n//## Extended variables for Timeline Widget\n// Colors\n$timeline-icon-color: $brand-primary !default;\n$timeline-border-color: $border-color-default !default;\n$timeline-event-time-color: $brand-primary !default;\n\n// Sizes\n$timeline-icon-size: 18px !default;\n$timeline-image-size: 36px !default;\n\n//Timeline grouping\n$timeline-grouping-size: 120px !default;\n$timeline-grouping-border-radius: 30px !default;\n$timeline-grouping-border-color: $timeline-border-color !default;\n\n//== Accordions\n//## Extended variables for Accordion Widget\n\n// Default\n$accordion-header-default-bg: $bg-color-secondary !default;\n$accordion-header-default-bg-hover: $bg-color !default;\n$accordion-header-default-color: $font-color-header !default;\n$accordion-default-border-color: $border-color-default !default;\n\n$accordion-bg-striped: $grid-bg-striped !default;\n$accordion-bg-striped-hover: $grid-bg-selected !default;\n\n// Semantic background colors\n$accordion-header-primary-bg: $btn-primary-bg !default;\n$accordion-header-secondary-bg: $btn-default-bg !default;\n$accordion-header-success-bg: $btn-success-bg !default;\n$accordion-header-warning-bg: $btn-warning-bg !default;\n$accordion-header-danger-bg: $btn-danger-bg !default;\n\n$accordion-header-primary-bg-hover: $btn-primary-bg-hover !default;\n$accordion-header-secondary-bg-hover: $btn-default-bg-hover !default;\n$accordion-header-success-bg-hover: $btn-success-bg-hover !default;\n$accordion-header-warning-bg-hover: $btn-warning-bg-hover !default;\n$accordion-header-danger-bg-hover: $btn-danger-bg-hover !default;\n\n// Semantic text colors\n$accordion-header-primary-color: $btn-primary-color !default;\n$accordion-header-secondary-color: $btn-default-color !default;\n$accordion-header-success-color: $btn-success-color !default;\n$accordion-header-warning-color: $btn-warning-color !default;\n$accordion-header-danger-color: $btn-danger-color !default;\n\n// Semantic border colors\n$accordion-primary-border-color: $btn-primary-border-color !default;\n$accordion-secondary-border-color: $btn-default-border-color !default;\n$accordion-success-border-color: $btn-success-border-color !default;\n$accordion-warning-border-color: $btn-warning-border-color !default;\n$accordion-danger-border-color: $btn-danger-border-color !default;\n\n//== Spacing\n//## Advanced layout options (used in base/mixins/default-spacing)\n\n// Smallest spacing\n$spacing-smallest: 2px !default;\n\n// Smaller spacing\n$spacing-smaller: 4px !default;\n\n// Small spacing\n$spacing-small: 8px !default;\n\n// Medium spacing\n$spacing-medium: 16px !default;\n$t-spacing-medium: 16px !default;\n$m-spacing-medium: 16px !default;\n\n// Large spacing\n$spacing-large: 24px !default;\n$t-spacing-large: 24px !default;\n$m-spacing-large: 16px !default;\n\n// Larger spacing\n$spacing-larger: 32px !default;\n\n// Largest spacing\n$spacing-largest: 48px !default;\n\n// Layout spacing\n$layout-spacing-top: 24px !default;\n$layout-spacing-right: 24px !default;\n$layout-spacing-bottom: 24px !default;\n$layout-spacing-left: 24px !default;\n\n$t-layout-spacing-top: 24px !default;\n$t-layout-spacing-right: 24px !default;\n$t-layout-spacing-bottom: 24px !default;\n$t-layout-spacing-left: 24px !default;\n\n$m-layout-spacing-top: 16px !default;\n$m-layout-spacing-right: 16px !default;\n$m-layout-spacing-bottom: 16px !default;\n$m-layout-spacing-left: 16px !default;\n\n// Combined layout spacing\n$layout-spacing: $layout-spacing-top $layout-spacing-right $layout-spacing-bottom $layout-spacing-left !default;\n$m-layout-spacing: $m-layout-spacing-top $m-layout-spacing-right $m-layout-spacing-bottom $m-layout-spacing-left !default;\n$t-layout-spacing: $t-layout-spacing-top $t-layout-spacing-right $t-layout-spacing-bottom $t-layout-spacing-left !default;\n\n// Gutter size\n$gutter-size: 8px !default;\n\n//== Tables\n//## Table spacing options (used in components/tables)\n\n$padding-table-cell-top: 8px !default;\n$padding-table-cell-bottom: 8px !default;\n$padding-table-cell-left: 8px !default;\n$padding-table-cell-right: 8px !default;\n\n//== Media queries breakpoints\n//## Define the breakpoints at which your layout will change, adapting to different screen sizes.\n\n$screen-xs: 480px !default;\n$screen-sm: 576px !default;\n$screen-md: 768px !default;\n$screen-lg: 992px !default;\n$screen-xl: 1200px !default;\n\n// So media queries don't overlap when required, provide a maximum (used for max-width)\n$screen-xs-max: calc(#{$screen-sm} - 1px) !default;\n$screen-sm-max: calc(#{$screen-md} - 1px) !default;\n$screen-md-max: calc(#{$screen-lg} - 1px) !default;\n$screen-lg-max: calc(#{$screen-xl} - 1px) !default;\n\n//== Settings\n//## Enable or disable your desired framework features\n// Use of !important\n$important-flex: true !default; // ./base/flex.scss\n$important-spacing: true !default; // ./base/spacing.scss\n$important-helpers: true !default; // ./helpers/helperclasses.scss\n\n//===== Legacy variables =====\n\n//== Step 1: Brand Colors\n$brand-inverse: #24276c !default;\n$brand-info: #0086d9 !default;\n\n//== Step 2: UI Customization\n// Sidebar\n$sidebar-bg: $brand-inverse !default;\n\n//== Navigation\n//## Used in components/navigation\n\n// Default Navigation styling\n$navigation-bg: $brand-inverse !default;\n$navigation-bg-hover: lighten($navigation-bg, 4) !default;\n$navigation-bg-active: lighten($navigation-bg, 8) !default;\n\n$navigation-sub-bg: darken($navigation-bg, 4) !default;\n$navigation-sub-bg-hover: $navigation-sub-bg !default;\n$navigation-sub-bg-active: $navigation-sub-bg !default;\n\n$navigation-border-color: $navigation-bg-hover !default;\n\n// Navigation Sidebar\n$navsidebar-bg: $sidebar-bg !default;\n$navsidebar-bg-hover: darken($navsidebar-bg, 4) !default;\n$navsidebar-bg-active: darken($navsidebar-bg, 8) !default;\n\n$navsidebar-sub-bg: darken($navsidebar-bg, 4) !default;\n$navsidebar-sub-bg-hover: $navsidebar-sub-bg !default;\n$navsidebar-sub-bg-active: $navsidebar-sub-bg !default;\n\n$navsidebar-border-color: $navsidebar-bg-hover !default;\n\n//== Form\n//## Used in components/inputs\n\n// Form Label\n$form-label-color: $brand-inverse !default;\n\n//== Buttons\n//## Define background-color, border-color and text. Used in components/buttons\n\n// Button Background Color\n$btn-inverse-bg: $brand-inverse !default;\n$btn-info-bg: $brand-info !default;\n\n// Button Border Color\n$btn-inverse-border-color: $brand-inverse !default;\n$btn-info-border-color: $brand-info !default;\n\n// Button Text Color\n$btn-inverse-color: #fff !default;\n$btn-info-color: #fff !default;\n\n// Button Background Color\n$btn-inverse-bg-hover: mix($btn-inverse-bg, white, 80%) !default;\n$btn-info-bg-hover: mix($btn-info-bg, black, 80%) !default;\n\n//== Color variations\n//## These variations are used to support several other variables and components\n\n// Color variations\n$color-inverse-darker: mix($brand-inverse, black, 60%) !default;\n$color-inverse-dark: mix($brand-inverse, black, 70%) !default;\n$color-inverse-light: mix($brand-inverse, white, 40%) !default;\n$color-inverse-lighter: mix($brand-inverse, white, 20%) !default;\n\n$color-info-darker: mix($brand-info, black, 60%) !default;\n$color-info-dark: mix($brand-info, black, 70%) !default;\n$color-info-light: mix($brand-info, white, 60%) !default;\n$color-info-lighter: mix($brand-info, white, 20%) !default;\n\n//== Alerts\n//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts)\n\n// Background Color\n$alert-info-bg: $color-primary-lighter !default;\n\n// Text Color\n$alert-info-color: $color-primary-darker !default;\n\n// Border Color\n$alert-info-border-color: $color-primary-dark !default;\n//== Labels\n//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels)\n\n// Background Color\n$label-info-bg: $brand-info !default;\n$label-inverse-bg: $brand-inverse !default;\n\n// Border Color\n$label-info-border-color: $brand-info !default;\n$label-inverse-border-color: $brand-inverse !default;\n\n// Text Color\n$label-info-color: #fff !default;\n$label-inverse-color: #fff !default;\n\n//== Groupbox\n//## Default variables for Groupbox Widget (used in components/groupbox)\n\n// Background Color\n$groupbox-inverse-bg: $brand-inverse !default;\n$groupbox-info-bg: $brand-info !default;\n\n// Text Color\n$groupbox-inverse-color: #fff !default;\n$groupbox-info-color: #fff !default;\n//== Callout (groupbox) Colors\n//## Extended variables for Groupbox Widget (used in components/groupbox)\n\n// Text and Border Color\n$callout-info-color: $brand-info !default;\n\n// Background Color\n$callout-info-bg: $color-info-lighter !default;\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin image-helpers() {\n /* ==========================================================================\n Image\n\n Default Mendix image widgets\n ========================================================================== */\n\n img.img-rounded,\n .img-rounded img {\n border-radius: 6px;\n }\n\n img.img-thumbnail,\n .img-thumbnail img {\n display: inline-block;\n max-width: 100%;\n height: auto;\n padding: 4px;\n transition: all 0.2s ease-in-out;\n border: 1px solid $brand-default;\n border-radius: 4px;\n background-color: #ffffff;\n line-height: $line-height-base;\n }\n\n img.img-circle,\n .img-circle img {\n border-radius: 50%;\n }\n\n img.img-auto,\n .img-auto img {\n width: auto !important;\n max-width: 100% !important;\n height: auto !important;\n max-height: 100% !important;\n }\n\n img.img-center,\n .img-center img {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n\n img.img-icon {\n width: 20px;\n height: 20px;\n padding: 2px;\n border-radius: 50%;\n }\n\n img.img-fill,\n .img-fill img {\n object-fit: fill;\n }\n\n img.img-contain,\n .img-contain img {\n object-fit: contain;\n }\n\n img.img-cover,\n .img-cover img {\n object-fit: cover;\n }\n\n img.img-scale-down,\n .img-scale-down img {\n object-fit: scale-down;\n }\n\n .img-contain.mx-image-background {\n background-size: contain;\n }\n\n .img-cover.mx-image-background {\n background-size: cover;\n }\n\n .img-auto.mx-image-background {\n background-size: auto;\n }\n\n .img-opacity-low img,\n .img-opacity-low.mx-image-background {\n opacity: 0.3;\n }\n\n .img-opacity-medium img,\n .img-opacity-medium.mx-image-background {\n opacity: 0.5;\n }\n\n .img-opacity-high img,\n .img-opacity-high.mx-image-background {\n opacity: 0.7;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin list-view() {\n /* ==========================================================================\n List view\n\n Default Mendix list view widget. The list view shows a list of objects arranged vertically. Each object is shown using a template\n ========================================================================== */\n .mx-listview {\n // Remove widget padding\n padding: 0;\n /* Clear search button (overrides load more button stying) */\n & > ul {\n margin: 0 0 $spacing-medium;\n\n .mx-listview-empty {\n border-style: none;\n background-color: transparent;\n }\n\n & > li {\n @include transition();\n background-color: #fff;\n padding: $spacing-medium;\n border-top: 1px solid $grid-border-color;\n\n &:last-child {\n border-bottom: 1px solid $grid-border-color;\n }\n\n &:focus,\n &:active {\n outline: 0;\n }\n }\n }\n\n .selected {\n background: $color-primary-light;\n }\n\n .mx-layoutgrid {\n padding: 0 !important;\n }\n }\n\n // Search bar\n .mx-listview-searchbar {\n margin-bottom: $spacing-medium;\n\n .btn {\n width: auto;\n }\n }\n\n /* Load more button */\n .btn.mx-listview-loadMore {\n width: 100%;\n margin: 0 0 $spacing-medium;\n }\n\n //== Phone specific\n //-------------------------------------------------------------------------------------------------------------------//\n .profile-phone .mx-listview {\n .mx-listview-searchbar {\n margin-bottom: 3px;\n background: #ffffff;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14);\n\n input {\n padding: 14px 15px;\n color: #555555;\n border-style: none;\n border-radius: 0;\n box-shadow: none;\n }\n\n .btn {\n padding: 14px 15px;\n color: inherit;\n border-style: none;\n }\n }\n\n & > ul > li {\n &:first-child {\n border-top: none;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin list-view-helpers() {\n /* ==========================================================================\n List view\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n\n // List items lined\n .listview-lined.mx-listview {\n & > ul > li {\n border-top: 1px solid $grid-border-color;\n\n &:first-child {\n border-top: 1px solid $grid-border-color;\n }\n\n &:last-child {\n border-bottom: 1px solid $grid-border-color;\n }\n }\n }\n\n //List items Bordered\n .listview-bordered.mx-listview {\n & > ul > li {\n border: 1px solid $grid-border-color;\n border-top: 0;\n\n &:first-child {\n border-top: 1px solid $grid-border-color;\n }\n\n &:last-child {\n }\n }\n }\n\n // List items striped\n .listview-striped.mx-listview {\n & > ul > li:nth-child(2n + 1) {\n background-color: $grid-bg-striped;\n }\n }\n\n // Items as seperated blocks\n .listview-seperated.mx-listview {\n & > ul > li {\n margin-bottom: $spacing-medium;\n border: 1px solid $grid-border-color;\n border-radius: $border-radius-default;\n }\n }\n\n // Remove all styling - deprecated\n .listview-stylingless.mx-listview {\n & > ul > li {\n padding: unset;\n cursor: default;\n border: unset;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background-color: transparent;\n }\n\n &.selected {\n background-color: transparent !important;\n\n &:hover,\n &:focus,\n &:active {\n background-color: transparent !important;\n }\n }\n }\n }\n\n // Hover style activated\n .listview-hover.mx-listview {\n & > ul > li {\n cursor: pointer;\n\n &:hover,\n &:focus,\n &:active {\n background-color: $grid-bg-hover;\n }\n\n &.selected {\n &:hover,\n &:focus,\n &:active {\n background-color: $grid-bg-selected-hover;\n }\n }\n }\n }\n\n // Row Sizes\n\n .listview-sm.mx-listview {\n & > ul > li {\n padding: $spacing-small;\n }\n }\n\n .listview-lg.mx-listview {\n & > ul > li {\n padding: $spacing-large;\n }\n }\n\n // Bootstrap columns\n .mx-listview[class*=\"lv-col\"] {\n overflow: hidden; // For if it is not in a layout, to prevent scrollbars\n & > ul {\n display: flex; // normal a table\n flex-wrap: wrap;\n margin-right: -1 * $gutter-size;\n margin-left: -1 * $gutter-size;\n\n &::before,\n &::after {\n // clearfix\n display: table;\n clear: both;\n content: \" \";\n }\n\n & > li {\n // bootstrap col\n position: relative;\n min-height: 1px;\n padding-right: $gutter-size;\n padding-left: $gutter-size;\n border: 0;\n @media (max-width: $screen-md-max) {\n width: 100% !important;\n }\n\n & > .mx-dataview {\n overflow: hidden;\n }\n }\n }\n\n &.lv-col-xs-12 > ul > li {\n width: 100% !important;\n }\n\n &.lv-col-xs-11 > ul > li {\n width: 91.66666667% !important;\n }\n\n &.lv-col-xs-10 > ul > li {\n width: 83.33333333% !important;\n }\n\n &.lv-col-xs-9 > ul > li {\n width: 75% !important;\n }\n\n &.lv-col-xs-8 > ul > li {\n width: 66.66666667% !important;\n }\n\n &.lv-col-xs-7 > ul > li {\n width: 58.33333333% !important;\n }\n\n &.lv-col-xs-6 > ul > li {\n width: 50% !important;\n }\n\n &.lv-col-xs-5 > ul > li {\n width: 41.66666667% !important;\n }\n\n &.lv-col-xs-4 > ul > li {\n width: 33.33333333% !important;\n }\n\n &.lv-col-xs-3 > ul > li {\n width: 25% !important;\n }\n\n &.lv-col-xs-2 > ul > li {\n width: 16.66666667% !important;\n }\n\n &.lv-col-xs-1 > ul > li {\n width: 8.33333333% !important;\n }\n\n @media (min-width: $screen-md) {\n &.lv-col-sm-12 > ul > li {\n width: 100% !important;\n }\n &.lv-col-sm-11 > ul > li {\n width: 91.66666667% !important;\n }\n &.lv-col-sm-10 > ul > li {\n width: 83.33333333% !important;\n }\n &.lv-col-sm-9 > ul > li {\n width: 75% !important;\n }\n &.lv-col-sm-8 > ul > li {\n width: 66.66666667% !important;\n }\n &.lv-col-sm-7 > ul > li {\n width: 58.33333333% !important;\n }\n &.lv-col-sm-6 > ul > li {\n width: 50% !important;\n }\n &.lv-col-sm-5 > ul > li {\n width: 41.66666667% !important;\n }\n &.lv-col-sm-4 > ul > li {\n width: 33.33333333% !important;\n }\n &.lv-col-sm-3 > ul > li {\n width: 25% !important;\n }\n &.lv-col-sm-2 > ul > li {\n width: 16.66666667% !important;\n }\n &.lv-col-sm-1 > ul > li {\n width: 8.33333333% !important;\n }\n }\n @media (min-width: $screen-lg) {\n &.lv-col-md-12 > ul > li {\n width: 100% !important;\n }\n &.lv-col-md-11 > ul > li {\n width: 91.66666667% !important;\n }\n &.lv-col-md-10 > ul > li {\n width: 83.33333333% !important;\n }\n &.lv-col-md-9 > ul > li {\n width: 75% !important;\n }\n &.lv-col-md-8 > ul > li {\n width: 66.66666667% !important;\n }\n &.lv-col-md-7 > ul > li {\n width: 58.33333333% !important;\n }\n &.lv-col-md-6 > ul > li {\n width: 50% !important;\n }\n &.lv-col-md-5 > ul > li {\n width: 41.66666667% !important;\n }\n &.lv-col-md-4 > ul > li {\n width: 33.33333333% !important;\n }\n &.lv-col-md-3 > ul > li {\n width: 25% !important;\n }\n &.lv-col-md-2 > ul > li {\n width: 16.66666667% !important;\n }\n &.lv-col-md-1 > ul > li {\n width: 16.66666667% !important;\n }\n }\n @media (min-width: $screen-xl) {\n &.lv-col-lg-12 > ul > li {\n width: 100% !important;\n }\n &.lv-col-lg-11 > ul > li {\n width: 91.66666667% !important;\n }\n &.lv-col-lg-10 > ul > li {\n width: 83.33333333% !important;\n }\n &.lv-col-lg-9 > ul > li {\n width: 75% !important;\n }\n &.lv-col-lg-8 > ul > li {\n width: 66.66666667% !important;\n }\n &.lv-col-lg-7 > ul > li {\n width: 58.33333333% !important;\n }\n &.lv-col-lg-6 > ul > li {\n width: 50% !important;\n }\n &.lv-col-lg-5 > ul > li {\n width: 41.66666667% !important;\n }\n &.lv-col-lg-4 > ul > li {\n width: 33.33333333% !important;\n }\n &.lv-col-lg-3 > ul > li {\n width: 25% !important;\n }\n &.lv-col-lg-2 > ul > li {\n width: 16.66666667% !important;\n }\n &.lv-col-lg-1 > ul > li {\n width: 8.33333333% !important;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin modal() {\n /* ==========================================================================\n Modal\n\n Default Mendix modals. Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults\n ========================================================================== */\n .modal-dialog {\n .modal-content {\n border: 1px solid $modal-header-border-color;\n border-radius: 4px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n\n .modal-header {\n padding: 15px 20px;\n border-bottom-color: $modal-header-border-color;\n border-radius: 0; // Because of the class .mx-window-active in mxui.css\n background-color: $modal-header-bg;\n\n h4 {\n margin: 0;\n color: $modal-header-color;\n font-size: 16px;\n font-weight: $font-weight-bold;\n }\n\n .close {\n margin-top: -3px;\n opacity: 1;\n /* For IE8 and earlier */\n color: $modal-header-color;\n text-shadow: none;\n }\n }\n\n .modal-body {\n }\n\n .modal-footer {\n display: flex;\n justify-content: flex-end;\n margin-top: 0;\n padding: 20px;\n border-style: none;\n }\n }\n }\n\n // Default Mendix Window Modal\n .mx-window {\n // If popup direct child is a dataview it gets the class mx-window-view\n &.mx-window-view .mx-window-body {\n overflow: hidden; // hide second scrollbar in edit page\n padding: 0;\n // Dataview in popup\n > .mx-dataview > .mx-dataview-content,\n > .mx-placeholder > .mx-dataview > .mx-dataview-content {\n padding: 20px;\n }\n\n > .mx-dataview > .mx-dataview-controls,\n > .mx-placeholder > .mx-dataview > .mx-dataview-controls {\n display: flex;\n justify-content: flex-end;\n margin: 0;\n padding: 20px;\n text-align: left;\n border-top: 1px solid $modal-header-border-color;\n }\n }\n\n .mx-dataview-controls {\n padding-bottom: 0;\n }\n\n .mx-layoutgrid {\n padding-right: 0;\n padding-left: 0;\n }\n }\n\n .mx-dialog .modal-body {\n padding: 24px;\n }\n\n // Login modal\n .mx-login {\n .modal-body {\n padding: 0 15px;\n }\n\n .modal-content {\n input {\n height: 56px;\n padding: 12px 12px;\n border: 1px solid #eeeeee;\n background: #eeeeee;\n box-shadow: none;\n font-size: 16px;\n\n &:focus {\n border-color: #66afe9;\n }\n }\n }\n\n .modal-header,\n .modal-footer {\n border: 0;\n }\n\n button {\n font-size: 16px;\n }\n\n h4 {\n color: #aaaaaa;\n font-size: 20px;\n font-weight: $font-weight-bold;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin navigation-bar() {\n /* ==========================================================================\n Navigation\n\n Default Mendix navigation bar\n ========================================================================== */\n .mx-navbar {\n margin: 0;\n border-style: none;\n border-radius: 0;\n background-color: $navigation-bg;\n\n ul.nav {\n margin: 0; // weird -margin if screen gets small (bootstrap)\n /* Navigation item */\n & > li.mx-navbar-item > a {\n display: flex;\n align-items: center;\n padding: $navigation-item-padding;\n vertical-align: middle;\n color: $navigation-color;\n border-radius: 0;\n font-size: $navigation-font-size;\n font-weight: $font-weight-normal;\n border-radius: $border-radius-default;\n\n /* Dropdown arrow */\n .caret {\n border-top-color: $navigation-color;\n border-bottom-color: $navigation-color;\n }\n\n &:hover,\n &:focus,\n &.active {\n text-decoration: none;\n color: $navigation-color-hover;\n background-color: $navigation-bg-hover;\n\n .caret {\n border-top-color: $navigation-color-active;\n border-bottom-color: $navigation-color-active;\n }\n }\n\n &.active {\n color: $navigation-color-active;\n background-color: $navigation-bg-active;\n opacity: 1;\n }\n\n /* Dropdown */\n .mx-navbar-submenu::before {\n position: absolute;\n top: -9px;\n left: 15px;\n width: 0;\n height: 0;\n content: \"\";\n transform: rotate(360deg);\n border-width: 0 9px 9px 9px;\n border-style: solid;\n border-color: transparent transparent $navigation-border-color transparent;\n }\n\n // Image\n img {\n width: 20px; // Default size (so it looks good)\n height: auto;\n margin-right: 0.5em;\n }\n\n .glyphicon {\n top: 0;\n margin-right: 0.5em;\n vertical-align: middle;\n font-size: $navigation-glyph-size;\n }\n }\n\n & > .mx-navbar-item.active a {\n color: $navigation-color-active;\n }\n\n /* When hovering or the dropdown is open */\n & > .mx-navbar-item > a:hover,\n & > .mx-navbar-item > a:focus,\n & > .mx-navbar-item.open > a,\n & > .mx-navbar-item.open > a:hover,\n & > .mx-navbar-item.open > a:focus {\n text-decoration: none;\n color: $navigation-color-hover;\n background-color: $navigation-bg-hover;\n\n .caret {\n border-top-color: $navigation-color-hover;\n border-bottom-color: $navigation-color-hover;\n }\n }\n\n & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a {\n color: $navigation-sub-color-active;\n background-color: $navigation-sub-bg-active;\n\n .caret {\n border-top-color: $navigation-sub-color-active;\n border-bottom-color: $navigation-sub-color-active;\n }\n }\n }\n @media (max-width: $screen-md) {\n ul.nav > li.mx-navbar-item > a {\n padding: 10px 24px;\n }\n .mx-navbar-item.open .dropdown-menu {\n padding: 0;\n border-radius: 0;\n background-color: $navigation-sub-bg;\n\n & > li.mx-navbar-subitem > a {\n padding: 10px 24px;\n color: $navigation-sub-color;\n border-radius: 0;\n font-size: $navigation-sub-font-size;\n font-weight: $font-weight-normal;\n\n &:hover,\n &:focus {\n color: $navigation-sub-color-hover;\n background-color: $navigation-sub-bg-hover;\n }\n\n &.active {\n color: $navigation-sub-color-active;\n background-color: $navigation-sub-bg-active;\n }\n }\n }\n }\n\n /* remove focus */\n &:focus {\n outline: 0;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin navigation-bar-helpers() {\n /* ==========================================================================\n Navigation\n\n //== Regions\n //## Behavior in the different regions\n ========================================================================== */\n // When used in topbar\n .region-topbar {\n .mx-navbar {\n background-color: $navtopbar-bg;\n min-height: auto;\n ul.nav {\n > .mx-navbar-item {\n margin-left: $spacing-small;\n }\n /* Navigation item */\n & > li.mx-navbar-item > a {\n color: $navtopbar-color;\n font-size: $navtopbar-font-size;\n line-height: 1.2;\n /* Dropdown arrow */\n .caret {\n border-top-color: $navtopbar-color;\n border-bottom-color: $navtopbar-color;\n }\n &:hover,\n &:focus,\n &.active {\n color: $navtopbar-color-hover;\n background-color: $navtopbar-bg-hover;\n .caret {\n border-top-color: $navtopbar-color-active;\n border-bottom-color: $navtopbar-color-active;\n }\n }\n &.active {\n color: $navtopbar-color-active;\n background-color: $navtopbar-bg-active;\n }\n\n /* Dropdown */\n .mx-navbar-submenu::before {\n border-color: transparent transparent $navtopbar-border-color transparent;\n }\n\n // Image\n .glyphicon {\n font-size: $navtopbar-glyph-size;\n }\n }\n\n /* When hovering or the dropdown is open */\n & > .mx-navbar-item > a:hover,\n & > .mx-navbar-item > a:focus,\n & > .mx-navbar-item.active a,\n & > .mx-navbar-item.open > a,\n & > .mx-navbar-item.open > a:hover,\n & > .mx-navbar-item.open > a:focus {\n color: $navtopbar-color-hover;\n background-color: $navtopbar-bg-hover;\n .caret {\n border-top-color: $navtopbar-color-hover;\n border-bottom-color: $navtopbar-color-hover;\n }\n }\n\n & > .mx-navbar-item.open .dropdown-menu {\n border-radius: $border-radius-default;\n background-color: $navtopbar-sub-bg;\n padding: $spacing-small $spacing-small 0;\n margin: 0;\n border: 0;\n box-shadow: 0px 2px 2px rgba(194, 196, 201, 0.30354);\n & > li.mx-navbar-subitem a {\n padding: $spacing-small;\n color: $navtopbar-color;\n border-radius: $border-radius-default;\n margin-bottom: $spacing-small;\n line-height: 1.2;\n &:hover,\n &:focus {\n color: $navtopbar-color;\n background-color: $navtopbar-sub-bg-hover;\n }\n }\n }\n & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a {\n color: $navtopbar-sub-color-active;\n background-color: $navtopbar-sub-bg-active;\n .caret {\n border-top-color: $navtopbar-sub-color-active;\n border-bottom-color: $navtopbar-sub-color-active;\n }\n }\n }\n @media (max-width: $screen-md) {\n ul.nav > li.mx-navbar-item > a {\n }\n .mx-navbar-item.open .dropdown-menu {\n background-color: $navtopbar-sub-bg;\n & > li.mx-navbar-subitem > a {\n color: $navtopbar-sub-color;\n font-size: $navtopbar-sub-font-size;\n &:hover,\n &:focus {\n color: $navtopbar-sub-color-hover;\n background-color: $navtopbar-sub-bg-hover;\n }\n &.active {\n color: $navtopbar-sub-color-active;\n background-color: $navtopbar-sub-bg-active;\n }\n }\n }\n }\n }\n }\n\n // When used in sidebar\n .region-sidebar {\n .mx-navbar {\n background-color: $navsidebar-bg;\n ul.nav {\n /* Navigation item */\n & > li.mx-navbar-item > a {\n color: $navsidebar-color;\n font-size: $navsidebar-font-size;\n\n /* Dropdown arrow */\n .caret {\n border-top-color: $navsidebar-color;\n border-bottom-color: $navsidebar-color;\n }\n &:hover,\n &:focus,\n &.active {\n color: $navsidebar-color-hover;\n background-color: $navsidebar-bg-hover;\n .caret {\n border-top-color: $navsidebar-color-active;\n border-bottom-color: $navsidebar-color-active;\n }\n }\n &.active {\n color: $navsidebar-color-active;\n background-color: $navsidebar-bg-active;\n }\n\n /* Dropdown */\n .mx-navbar-submenu::before {\n border-color: transparent transparent $navsidebar-border-color transparent;\n }\n\n // Image\n .glyphicon {\n font-size: $navsidebar-glyph-size;\n }\n }\n\n /* When hovering or the dropdown is open */\n & > .mx-navbar-item > a:hover,\n & > .mx-navbar-item > a:focus,\n & > .mx-navbar-item.active a,\n & > .mx-navbar-item.open > a,\n & > .mx-navbar-item.open > a:hover,\n & > .mx-navbar-item.open > a:focus {\n color: $navsidebar-color-hover;\n background-color: $navsidebar-bg-hover;\n .caret {\n border-top-color: $navsidebar-color-hover;\n border-bottom-color: $navsidebar-color-hover;\n }\n }\n & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a {\n color: $navsidebar-sub-color-active;\n background-color: $navsidebar-sub-bg-active;\n .caret {\n border-top-color: $navsidebar-sub-color-active;\n border-bottom-color: $navsidebar-sub-color-active;\n }\n }\n }\n @media (max-width: $screen-md) {\n ul.nav > li.mx-navbar-item > a {\n }\n .mx-navbar-item.open .dropdown-menu {\n background-color: $navtopbar-sub-bg;\n & > li.mx-navbar-subitem > a {\n color: $navsidebar-sub-color;\n font-size: $navsidebar-sub-font-size;\n &:hover,\n &:focus {\n color: $navsidebar-sub-color-hover;\n background-color: $navsidebar-sub-bg-hover;\n }\n &.active {\n color: $navsidebar-sub-color-active;\n background-color: $navsidebar-sub-bg-active;\n }\n }\n }\n }\n }\n }\n\n .hide-icons.mx-navbar {\n .glyphicon {\n display: none;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin navigation-list() {\n /* ==========================================================================\n Navigation list\n\n Default Mendix navigation list widget. A navigation list can be used to attach an action to an entire row. Such a row is called a navigation list item\n ========================================================================== */\n .mx-navigationlist {\n margin: 0;\n padding: 0;\n list-style: none;\n\n li.mx-navigationlist-item {\n @include transition();\n padding: $spacing-medium;\n border-width: 1px;\n border-style: none none solid none;\n border-color: $grid-border-color;\n border-radius: 0;\n background-color: $grid-bg;\n\n &:hover,\n &:focus {\n color: inherit;\n background-color: $grid-bg-hover;\n }\n\n &.active {\n color: inherit;\n background-color: $grid-bg-selected;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin navigation-tree() {\n /* ==========================================================================\n Navigation\n\n Default Mendix navigation tree\n ========================================================================== */\n .mx-navigationtree {\n background-color: $navigation-bg;\n\n /* Every navigation item */\n .navbar-inner > ul {\n margin: 0;\n padding-left: 0;\n\n & > li {\n padding: 0;\n border-style: none;\n\n & > a {\n display: flex;\n align-items: center;\n height: $navigation-item-height;\n padding: $navigation-item-padding;\n color: $navigation-color;\n //border-bottom: 1px solid $navigation-border-color;\n //border-radius: 0;\n background-color: $navigation-bg;\n text-shadow: none;\n font-size: $navigation-font-size;\n font-weight: $font-weight-normal;\n\n .caret {\n border-top-color: $navigation-color;\n border-bottom-color: $navigation-color;\n }\n\n img {\n width: 20px; // Default size\n height: auto;\n margin-right: 0.5em;\n }\n\n .glyphicon {\n top: 0;\n margin-right: 0.5em;\n vertical-align: middle;\n font-size: $navigation-glyph-size;\n }\n }\n\n a:hover,\n a:focus,\n a.active {\n text-decoration: none;\n color: $navigation-color-hover;\n background-color: $navigation-bg-hover;\n\n .caret {\n border-top-color: $navigation-color-active;\n border-bottom-color: $navigation-color-active;\n }\n }\n\n a.active {\n color: $navigation-color-active;\n border-left-color: $navigation-color-active;\n background-color: $navigation-bg-active;\n }\n }\n }\n\n /* Sub navigation item specific */\n li.mx-navigationtree-has-items {\n & > ul {\n margin: 0;\n padding-left: 0;\n background-color: $navigation-sub-bg;\n\n li {\n margin: 0;\n padding: 0;\n border: 0;\n\n a {\n padding: $spacing-medium;\n text-decoration: none;\n color: $navigation-sub-color;\n border: 0;\n background-color: $navigation-sub-bg;\n text-shadow: none;\n font-size: $navigation-sub-font-size;\n font-weight: $font-weight-normal;\n .glyphicon {\n margin-right: $spacing-small;\n }\n\n &:hover,\n &:focus,\n &.active {\n color: $navigation-sub-color-hover;\n outline: 0;\n background-color: $navigation-sub-bg-hover;\n }\n\n &.active {\n color: $navigation-sub-color-active;\n border: 0;\n background-color: $navigation-sub-bg-active;\n }\n }\n }\n }\n }\n\n /* remove focus */\n &:focus {\n outline: 0;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin navigation-tree-helpers() {\n /* ==========================================================================\n Navigation\n\n //== Regions\n //## Behavior in the different regions\n ========================================================================== */\n // When used in topbar\n .region-topbar {\n .mx-navigationtree {\n background-color: $navtopbar-bg;\n .navbar-inner > ul {\n & > li {\n & > a {\n color: $navtopbar-color;\n border-color: $navtopbar-border-color;\n background-color: $navtopbar-bg;\n font-size: $navtopbar-font-size;\n .caret {\n border-top-color: $navtopbar-color;\n border-bottom-color: $navtopbar-color;\n }\n\n .glyphicon {\n font-size: $navtopbar-glyph-size;\n }\n }\n a:hover,\n a:focus,\n a.active {\n color: $navtopbar-color-hover;\n background-color: $navtopbar-bg-hover;\n .caret {\n border-top-color: $navtopbar-color-active;\n border-bottom-color: $navtopbar-color-active;\n }\n }\n a.active {\n color: $navtopbar-color-active;\n border-left-color: $navtopbar-color-active;\n background-color: $navtopbar-bg-active;\n }\n }\n }\n\n /* Sub navigation item specific */\n li.mx-navigationtree-has-items {\n & > ul {\n background-color: $navtopbar-sub-bg;\n li {\n a {\n color: $navtopbar-sub-color;\n background-color: $navtopbar-sub-bg;\n font-size: $navtopbar-sub-font-size;\n &:hover,\n &:focus,\n &.active {\n color: $navtopbar-sub-color-hover;\n background-color: $navtopbar-sub-bg-hover;\n }\n &.active {\n color: $navtopbar-sub-color-active;\n background-color: $navtopbar-sub-bg-active;\n }\n }\n }\n }\n }\n }\n }\n\n // When used in sidebar\n .region-sidebar {\n .mx-navigationtree {\n background-color: $navsidebar-bg;\n .navbar-inner > ul {\n & > li {\n & > a {\n color: $navsidebar-color;\n border-color: $navsidebar-border-color;\n background-color: $navsidebar-bg;\n font-size: $navsidebar-font-size;\n .caret {\n border-top-color: $navsidebar-color;\n border-bottom-color: $navsidebar-color;\n }\n\n .glyphicon {\n font-size: $navsidebar-glyph-size;\n }\n }\n a:hover,\n a:focus,\n a.active {\n color: $navsidebar-color-hover;\n background-color: $navsidebar-bg-hover;\n .caret {\n border-top-color: $navsidebar-color-active;\n border-bottom-color: $navsidebar-color-active;\n }\n }\n a.active {\n color: $navsidebar-color-active;\n border-left-color: $navsidebar-color-active;\n background-color: $navsidebar-bg-active;\n }\n }\n }\n\n /* Sub navigation item specific */\n li.mx-navigationtree-has-items {\n & > ul {\n background-color: $navsidebar-sub-bg;\n li {\n a {\n color: $navsidebar-sub-color;\n background-color: $navsidebar-sub-bg;\n font-size: $navsidebar-sub-font-size;\n &:hover,\n &:focus,\n &.active {\n color: $navsidebar-sub-color-hover;\n background-color: $navsidebar-sub-bg-hover;\n }\n &.active {\n color: $navsidebar-sub-color-active;\n background-color: $navsidebar-sub-bg-active;\n }\n }\n }\n }\n }\n }\n }\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n //-------------------------------------------------------------------------------------------------------------------//\n // Content Centerd text and icons\n .nav-content-center-text-icons.mx-navigationtree {\n .navbar-inner ul {\n a {\n flex-direction: column;\n justify-content: center;\n .glyphicon {\n margin: 0 0 5px 0;\n }\n }\n }\n }\n\n // Content Centerd icons only\n .nav-content-center.mx-navigationtree {\n .navbar-inner ul {\n a {\n justify-content: center;\n }\n }\n }\n\n .hide-icons.mx-navigationtree {\n .glyphicon {\n display: none;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin pop-up-menu() {\n /* ==========================================================================\n Pop-up menu\n\n Default Mendix pop-up menu\n ========================================================================== */\n .popupmenu {\n position: relative;\n display: inline-flex;\n }\n\n .popupmenu-trigger {\n cursor: pointer;\n }\n\n .popupmenu-menu {\n position: absolute;\n z-index: 999;\n display: none;\n flex-direction: column;\n width: max-content;\n border-radius: 8px;\n background-color: $bg-color;\n box-shadow: 0 2px 20px 1px rgba(5, 15, 129, 0.05), 0 2px 16px 0 rgba(33, 43, 54, 0.08);\n\n &.popupmenu-position-left {\n top: 0;\n left: 0;\n transform: translateX(-100%);\n }\n\n &.popupmenu-position-right {\n top: 0;\n right: 0;\n transform: translateX(100%);\n }\n\n &.popupmenu-position-top {\n top: 0;\n transform: translateY(-100%);\n }\n\n &.popupmenu-position-bottom {\n bottom: 0;\n transform: translateY(100%);\n }\n\n .popupmenu-basic-item:first-child,\n .popupmenu-custom-item:first-child {\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n }\n\n .popupmenu-basic-item:last-child,\n .popupmenu-custom-item:last-child {\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n }\n }\n\n .popupmenu-basic-divider {\n width: 100%;\n height: 1px;\n background-color: $brand-default;\n }\n\n .popupmenu-basic-item {\n padding: 12px 16px;\n color: $font-color-default;\n font-size: 14px;\n\n &:hover,\n &:focus,\n &:active {\n cursor: pointer;\n border-color: $bg-color-secondary;\n background-color: $bg-color-secondary;\n }\n\n &-inverse {\n color: $brand-inverse;\n }\n\n &-primary {\n color: $brand-primary;\n }\n\n &-info {\n color: $brand-info;\n }\n\n &-success {\n color: $brand-success;\n }\n\n &-warning {\n color: $brand-warning;\n }\n\n &-danger {\n color: $brand-danger;\n }\n }\n\n .popupmenu-custom-item {\n &:hover,\n &:focus,\n &:active {\n cursor: pointer;\n border-color: $bg-color-secondary;\n background-color: $bg-color-secondary;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n@mixin simple-menu-bar() {\n /* ==========================================================================\n Navigation\n\n Default Mendix simple menu bar\n ========================================================================== */\n .mx-menubar {\n padding: 0;\n background-color: $navigation-bg;\n\n ul.mx-menubar-list {\n display: flex;\n width: 100%;\n min-height: 58px;\n\n li.mx-menubar-item {\n margin: 0;\n\n > a {\n display: flex;\n overflow: hidden;\n align-items: center;\n justify-content: center;\n height: 100%;\n padding: $navigation-item-padding;\n white-space: nowrap;\n color: $navigation-color;\n border-radius: 0;\n font-size: $navigation-font-size;\n font-weight: $font-weight-normal;\n\n img {\n margin-right: 0.5em;\n }\n\n .glyphicon {\n top: -1px;\n margin-right: 0.5em;\n vertical-align: middle;\n font-size: $navigation-glyph-size;\n }\n }\n\n a:hover,\n a:focus,\n &:hover a,\n &:focus a,\n &.active a {\n text-decoration: none;\n color: $navigation-color-hover;\n background-color: $navigation-bg-hover;\n }\n\n &.active a {\n color: $navigation-color-active;\n background-color: $navigation-bg-active;\n }\n }\n }\n\n /* remove focus */\n &:focus {\n outline: 0;\n }\n }\n\n // Vertical variation specifics\n .mx-menubar-vertical {\n background-color: $navigation-bg;\n\n ul.mx-menubar-list {\n display: flex;\n flex-direction: column;\n\n li.mx-menubar-item {\n display: block;\n\n a {\n border-bottom: 1px solid $navigation-border-color;\n }\n }\n }\n }\n\n // Horizontal variation specifics\n .mx-menubar-horizontal {\n box-shadow: 2px 0 4px 0 rgba(0, 0, 0, 0.14);\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n width: auto;\n\n a {\n width: 100%;\n }\n }\n }\n\n /* Two menu items */\n &.menubar-col-6 ul.mx-menubar-list li.mx-menubar-item {\n width: 50%;\n }\n\n /* Three menu items */\n &.menubar-col-4 ul.mx-menubar-list li.mx-menubar-item {\n width: 33.33333333%;\n }\n\n /* Four menu items */\n &.menubar-col-3 ul.mx-menubar-list li.mx-menubar-item {\n width: 25%;\n }\n\n /* Five menu items */\n &.menubar-col-2 ul.mx-menubar-list li.mx-menubar-item {\n width: 20%;\n }\n }\n\n //== Regions\n //## Behavior in the different regions\n //-------------------------------------------------------------------------------------------------------------------//\n // When used in topbar\n .region-topbar {\n .mx-menubar {\n background-color: $navtopbar-bg;\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n a {\n color: $navtopbar-color;\n font-size: $navtopbar-font-size;\n\n .glyphicon {\n font-size: $navtopbar-glyph-size;\n }\n }\n\n a:hover,\n a:focus,\n &:hover a,\n &:focus a,\n &.active a {\n color: $navtopbar-color-hover;\n background-color: $navtopbar-bg-hover;\n }\n\n &.active a {\n color: $navtopbar-color-active;\n background-color: $navtopbar-bg-active;\n }\n }\n }\n }\n\n // Vertical variation specifics\n .mx-menubar-vertical {\n background-color: $navtopbar-bg;\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n a {\n height: $navigation-item-height;\n border-color: $navtopbar-border-color;\n }\n }\n }\n }\n }\n\n // When used in sidebar\n .region-sidebar {\n .mx-menubar {\n background-color: $navsidebar-bg;\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n a {\n color: $navsidebar-color;\n font-size: $navsidebar-font-size;\n\n .glyphicon {\n font-size: $navsidebar-glyph-size;\n }\n }\n\n a:hover,\n a:focus,\n &:hover a,\n &:focus a,\n &.active a {\n color: $navsidebar-color-hover;\n background-color: $navsidebar-bg-hover;\n }\n\n &.active a {\n color: $navsidebar-color-active;\n background-color: $navsidebar-bg-active;\n }\n }\n }\n }\n\n // Vertical variation specifics\n .mx-menubar-vertical {\n background-color: $navsidebar-bg;\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n a {\n border-color: $navsidebar-border-color;\n }\n }\n }\n }\n }\n\n @supports (padding-bottom: env(safe-area-inset-bottom)) {\n .mx-menubar {\n padding-bottom: env(safe-area-inset-bottom);\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin simple-menu-bar-helpers() {\n /* ==========================================================================\n Navigation\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n // Center text and icons\n .bottom-nav-text-icons.mx-menubar {\n ul.mx-menubar-list {\n li.mx-menubar-item {\n flex: 1;\n a {\n flex-direction: column;\n padding: $spacing-small $spacing-small $spacing-small/2;\n line-height: normal;\n font-size: $font-size-small;\n .glyphicon {\n display: block;\n margin: 0 0 $spacing-small/2 0;\n font-size: $font-size-large;\n }\n img {\n display: block;\n height: $font-size-large;\n margin: 0 0 $spacing-small/2 0;\n }\n }\n }\n }\n }\n\n .hide-icons.mx-menubar {\n .glyphicon {\n display: none;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin radio-button() {\n /* ==========================================================================\n Radio button\n\n Default Mendix radio button widget\n ========================================================================== */\n .mx-radiobuttons.inline .mx-radiogroup {\n display: flex;\n flex-direction: row;\n\n .radio {\n margin: 0 20px 0 0;\n }\n }\n\n .mx-radiobuttons .radio:last-child {\n margin-bottom: 0;\n }\n\n .radio {\n display: flex !important; // Remove after mxui merge\n align-items: center;\n margin-top: 0;\n }\n\n input[type=\"radio\"] {\n position: relative !important; // Remove after mxui merge\n width: 16px;\n height: 16px;\n margin: 0;\n cursor: pointer;\n -webkit-user-select: none;\n user-select: none;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n\n &:before,\n &:after {\n position: absolute;\n display: block;\n transition: all 0.3s ease-in-out;\n border-radius: 50%;\n }\n\n &:before {\n width: 100%;\n height: 100%;\n content: \"\";\n border: 1px solid $form-input-border-color;\n background-color: transparent;\n }\n\n &:after {\n top: 50%;\n left: 50%;\n width: 50%;\n height: 50%;\n transform: translate(-50%, -50%);\n pointer-events: none;\n background-color: $form-input-border-focus-color;\n }\n\n &:not(:checked):after {\n transform: translate(-50%, -50%) scale(0);\n opacity: 0;\n }\n\n &:not(:disabled):not(:checked):hover:after {\n background-color: $form-input-bg-hover;\n }\n\n &:checked:after,\n &:not(:disabled):not(:checked):hover:after {\n content: \"\";\n transform: translate(-50%, -50%) scale(1);\n opacity: 1;\n }\n\n &:checked:before {\n border-color: $form-input-border-focus-color;\n background-color: $form-input-bg;\n }\n\n &:disabled:before {\n background-color: $form-input-bg-disabled;\n }\n\n &:checked:disabled:before {\n border-color: rgba($form-input-border-focus-color, 0.4);\n }\n\n &:checked:disabled:after {\n background-color: rgba($form-input-border-focus-color, 0.4);\n }\n\n & + label {\n margin-left: $form-label-gutter;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin tab-container() {\n /* ==========================================================================\n Tab Container\n\n Default Mendix Tab Container Widget. Tab containers are used to show information categorized into multiple tab pages.\n This can be very useful if the amount of information that has to be displayed is larger than the amount of space on the screen\n ========================================================================== */\n\n .mx-tabcontainer {\n .mx-tabcontainer-tabs {\n margin-bottom: $spacing-medium;\n border-color: $tabs-border-color;\n display: flex;\n\n > li {\n float: none;\n }\n\n & > li > a {\n margin-right: 0;\n transition: all 0.2s ease-in-out;\n color: $tabs-color;\n font-weight: $font-weight-normal;\n border-radius: $border-radius-default $border-radius-default 0 0;\n\n &:hover,\n &:focus {\n background-color: $tabs-bg-hover;\n }\n }\n\n & > li.active > a,\n & > li.active > a:hover,\n & > li.active > a:focus {\n color: $tabs-color-active;\n border: 1px solid $tabs-border-color;\n border-bottom-color: #fff;\n background-color: $tabs-bg;\n }\n }\n }\n\n // Tab Styling Specific for mobile\n .tab-mobile.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n margin: 0;\n text-align: center;\n border-style: none;\n background-color: $brand-primary;\n\n li {\n display: table-cell;\n float: none; // reset bootstrap\n width: 1%;\n margin: 0;\n text-align: center;\n border-style: none;\n border-radius: 0;\n\n a {\n padding: 16px;\n text-transform: uppercase;\n color: #ffffff;\n border-width: 0 1px 0 0;\n border-style: solid;\n border-color: rgba(255, 255, 255, 0.3);\n border-radius: 0;\n font-size: 12px;\n font-weight: $font-weight-normal;\n\n &:hover,\n &:focus {\n background-color: inherit;\n }\n }\n\n &:last-child a {\n border-right: none;\n }\n\n &.active > a,\n &.active > a:hover,\n &.active > a:focus {\n color: #ffffff;\n border-style: none;\n border-radius: 0;\n background-color: mix($brand-primary, #000000, 80%);\n }\n }\n }\n }\n\n .mx-tabcontainer-badge {\n margin-left: $spacing-small;\n border-radius: $font-size-small;\n background-color: $label-primary-bg;\n color: $label-primary-color;\n font-size: $font-size-small;\n font-weight: $font-weight-bold;\n line-height: 1;\n padding: $spacing-small/2 $spacing-small;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin tab-container-helpers() {\n /* ==========================================================================\n Tab container\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n // Style as pills\n .tab-pills.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n border: 0;\n\n & > li {\n margin-bottom: $spacing-small;\n }\n\n & > li > a {\n margin-right: $spacing-small;\n color: $tabs-color;\n border-radius: $border-radius-default;\n background-color: $tabs-bg-pills;\n\n &:hover,\n &:focus {\n background-color: $tabs-bg-hover;\n }\n }\n\n & > li.active > a,\n & > li.active > a:hover,\n & > li.active > a:focus {\n color: #ffffff;\n border-color: $tabs-bg-active;\n background-color: $tabs-bg-active;\n }\n }\n }\n\n // Style with lines\n .tab-lined.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n border-width: 1px;\n\n li {\n margin-right: $spacing-large;\n\n & > a {\n padding: $spacing-medium 0 ($spacing-medium - $tabs-lined-border-width) 0; // border is 3px\n color: $tabs-color;\n border: 0;\n border-bottom: $tabs-lined-border-width solid transparent;\n border-radius: 0;\n\n &:hover,\n &:focus {\n color: $tabs-color;\n border: 0;\n border-color: transparent;\n background: transparent;\n }\n }\n\n &.active > a,\n &.active > a:hover,\n &.active > a:focus {\n color: $tabs-lined-color-active;\n border: 0;\n border-bottom: $tabs-lined-border-width solid $tabs-lined-border-color;\n background-color: transparent;\n }\n }\n }\n }\n\n // Justified style\n // Lets your tabs take 100% of the width\n .tab-justified.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n width: 100%;\n border-bottom: 0;\n\n & > li {\n flex: 1;\n float: none; // reset bootstrap\n margin: 0;\n @media (max-width: $screen-sm-max) {\n display: block;\n width: 100%;\n }\n\n & > a {\n text-align: center;\n }\n }\n }\n }\n\n // Bordered\n .tab-bordered.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n margin: 0;\n }\n\n & > .mx-tabcontainer-content {\n padding: $spacing-small;\n border-width: 0 1px 1px 1px;\n border-style: solid;\n border-color: $tabs-border-color;\n background-color: transparent;\n }\n }\n\n // Wizard\n .tab-wizard.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n position: relative;\n display: flex;\n justify-content: space-between;\n border-style: none;\n\n &::before {\n position: absolute;\n top: $spacing-medium;\n display: block;\n width: 100%;\n height: 1px;\n content: \"\";\n background-color: $tabs-border-color;\n }\n\n & > li {\n position: relative;\n float: none; // reset bootstrap\n width: 100%;\n text-align: center;\n\n & > a {\n width: calc((#{$spacing-medium} * 2) + 1px);\n height: calc((#{$spacing-medium} * 2) + 1px);\n margin: auto;\n padding: 0;\n text-align: center;\n color: $brand-primary;\n border: 1px solid $tabs-border-color;\n border-radius: 100%;\n background-color: $bg-color;\n font-size: $font-size-large;\n font-weight: bold;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n &.active {\n & > a,\n & > a:hover,\n & > a:focus {\n color: #ffffff;\n border-color: $tabs-bg-active;\n background-color: $tabs-bg-active;\n }\n }\n }\n }\n }\n\n //add tabcontainer flex classes\n\n .tab-center.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n display: flex;\n align-items: center;\n flex-flow: wrap;\n justify-content: center;\n }\n }\n\n .tab-left.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n display: flex;\n align-items: center;\n flex-flow: wrap;\n justify-content: flex-start;\n }\n }\n\n .tab-right.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n display: flex;\n align-items: center;\n flex-flow: wrap;\n justify-content: flex-end;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin table() {\n /* ==========================================================================\n Table\n\n Default Mendix table widget. Tables can be used to lend structure to a page. They contain a number of rows (tr) and columns, the intersection of which is called a cell (td). Each cell can contain widgets\n ========================================================================== */\n\n th {\n font-weight: $font-weight-bold;\n }\n\n html body .mx-page table.mx-table {\n th,\n td {\n &.nopadding {\n padding: 0;\n }\n }\n }\n\n table.mx-table {\n > tbody {\n /* Table row */\n > tr {\n /* Table header */\n > th {\n padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom\n $padding-table-cell-left;\n\n s * {\n color: $form-label-color;\n font-weight: $font-weight-bold;\n font-weight: $form-label-weight;\n }\n\n > label {\n padding-top: 8px;\n padding-bottom: 6px; // Aligns label in the middle if there is no input field next to it.\n }\n }\n\n /* Table cells */\n > td {\n padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom\n $padding-table-cell-left;\n\n > div > label,\n .mx-referenceselector-input-wrapper label {\n padding-top: 8px;\n padding-bottom: 6px; // Aligns label in the middle if there is no input field next to it.\n }\n }\n }\n }\n }\n\n // Default Mendix Table Widget inside TemplateGrid\n .mx-templategrid table.mx-table {\n > tbody {\n > tr {\n > th,\n > td {\n padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom\n $padding-table-cell-left;\n }\n }\n }\n }\n\n // Default Mendix Table Widget inside Listview\n .mx-list table.mx-table {\n > tbody {\n > tr {\n > th,\n > td {\n padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom\n $padding-table-cell-left;\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin table-helpers() {\n /* ==========================================================================\n Table\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n // Lined\n table.table-lined.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > td {\n border-width: 1px 0;\n border-style: solid;\n border-color: $grid-border-color;\n }\n }\n }\n }\n\n // Bordered\n table.table-bordered.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n border-width: 1px;\n border-style: solid;\n border-color: $grid-border-color;\n }\n }\n }\n }\n\n // Makes table compact\n table.table-compact.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n padding-top: 2px;\n padding-bottom: 2px;\n }\n }\n }\n }\n\n // Tables Vertical\n // Will remove unwanted paddings\n table.table-vertical.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n > th {\n padding-bottom: 0;\n\n > label {\n padding: 0;\n }\n\n > div > label {\n padding: 0;\n }\n }\n }\n }\n }\n\n // Align content in middle\n table.table-align-vertical-middle.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n vertical-align: middle;\n }\n }\n }\n }\n\n // Compact labels\n table.table-label-compact.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n > label {\n margin: 0;\n padding: 0;\n }\n\n > div > label,\n .mx-referenceselector-input-wrapper label {\n margin: 0;\n padding: 0;\n }\n }\n }\n }\n }\n\n $height-row-s: 55px;\n $height-row-m: 70px;\n $height-row-l: 120px;\n // Small rows\n table.table-row-s.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n height: $height-row-s;\n }\n }\n }\n }\n\n // Medium rows\n table.table-row-m.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n height: $height-row-m;\n }\n }\n }\n }\n\n // Large rows\n table.table-row-l.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n height: $height-row-l;\n }\n }\n }\n }\n\n // Makes the columns fixed\n table.table-fixed {\n table-layout: fixed;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin template-grid() {\n /* ==========================================================================\n Template grid\n\n Default Mendix template grid Widget. The template grid shows a list of objects in a tile view. For example, a template grid can show a list of products. The template grid has a lot in common with the data grid. The main difference is that the objects are shown in templates (a sort of small data view) instead of rows\n ========================================================================== */\n\n .mx-templategrid {\n .mx-templategrid-content-wrapper {\n table-layout: fixed;\n }\n\n .mx-templategrid-item {\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n cursor: default;\n background-color: $grid-bg;\n\n &:hover {\n background-color: transparent;\n }\n\n &.selected {\n background-color: $grid-bg-selected !important;\n }\n }\n\n .mx-layoutgrid {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin template-grid-helpers() {\n /* ==========================================================================\n Template grid\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n // Make sure your content looks selectable\n .templategrid-selectable.mx-templategrid {\n .mx-templategrid-item {\n cursor: pointer;\n }\n }\n\n // Lined\n .templategrid-lined.mx-templategrid {\n .mx-grid-content {\n border-top-width: 2px;\n border-top-style: solid;\n border-top-color: $grid-border-color;\n }\n\n .mx-templategrid-item {\n border-top: 1px solid $grid-border-color;\n border-right: none;\n border-bottom: 1px solid $grid-border-color;\n border-left: none;\n }\n }\n\n // Striped\n .templategrid-striped.mx-templategrid {\n .mx-templategrid-row:nth-child(odd) .mx-templategrid-item {\n background-color: #f9f9f9;\n }\n }\n\n // Stylingless\n .templategrid-stylingless.mx-templategrid {\n .mx-templategrid-item {\n padding: 0;\n cursor: default;\n border: 0;\n background-color: transparent;\n\n &:hover {\n background-color: transparent;\n }\n\n &.selected {\n background-color: transparent !important;\n\n &:hover {\n background-color: transparent !important;\n }\n }\n }\n }\n\n // Transparent items\n .templategrid-transparent.mx-templategrid {\n .mx-templategrid-item {\n border: 0;\n background-color: transparent;\n }\n }\n\n // Hover\n .templategrid-hover.mx-templategrid {\n .mx-templategrid-item {\n &:hover {\n background-color: $grid-bg-hover !important;\n }\n\n &.selected {\n background-color: $grid-bg-selected !important;\n\n &:hover {\n background-color: $grid-bg-selected-hover !important;\n }\n }\n }\n }\n\n // Templategrid Row Sizes\n .templategrid-lg.mx-templategrid {\n .mx-templategrid-item {\n padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2)\n ($grid-padding-left * 2);\n }\n }\n\n .templategrid-sm.mx-templategrid {\n .mx-templategrid-item {\n padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2)\n ($grid-padding-left / 2);\n }\n }\n\n // Templategrid Layoutgrid styles\n .mx-templategrid[class*=\"tg-col\"] {\n overflow: hidden; // For if it is not in a layout, to prevent scrollbars\n .mx-templategrid-content-wrapper {\n display: block;\n }\n\n .mx-templategrid-row {\n display: block;\n margin-right: -1 * $gutter-size;\n margin-left: -1 * $gutter-size;\n\n &::before,\n &::after {\n // clearfix\n display: table;\n clear: both;\n content: \" \";\n }\n }\n\n .mx-templategrid-item {\n // bootstrap col\n position: relative;\n display: block;\n float: left;\n min-height: 1px;\n padding-right: $gutter-size;\n padding-left: $gutter-size;\n border: 0;\n @media (max-width: 992px) {\n width: 100% !important;\n }\n\n .mx-dataview {\n overflow: hidden;\n }\n }\n\n &.tg-col-xs-12 .mx-templategrid-item {\n width: 100% !important;\n }\n\n &.tg-col-xs-11 .mx-templategrid-item {\n width: 91.66666667% !important;\n }\n\n &.tg-col-xs-10 .mx-templategrid-item {\n width: 83.33333333% !important;\n }\n\n &.tg-col-xs-9 .mx-templategrid-item {\n width: 75% !important;\n }\n\n &.tg-col-xs-8 .mx-templategrid-item {\n width: 66.66666667% !important;\n }\n\n &.tg-col-xs-7 .mx-templategrid-item {\n width: 58.33333333% !important;\n }\n\n &.tg-col-xs-6 .mx-templategrid-item {\n width: 50% !important;\n }\n\n &.tg-col-xs-5 .mx-templategrid-item {\n width: 41.66666667% !important;\n }\n\n &.tg-col-xs-4 .mx-templategrid-item {\n width: 33.33333333% !important;\n }\n\n &.tg-col-xs-3 .mx-templategrid-item {\n width: 25% !important;\n }\n\n &.tg-col-xs-2 .mx-templategrid-item {\n width: 16.66666667% !important;\n }\n\n &.tg-col-xs-1 .mx-templategrid-item {\n width: 8.33333333% !important;\n }\n\n @media (min-width: 768px) {\n &.tg-col-sm-12 .mx-templategrid-item {\n width: 100% !important;\n }\n &.tg-col-sm-11 .mx-templategrid-item {\n width: 91.66666667% !important;\n }\n &.tg-col-sm-10 .mx-templategrid-item {\n width: 83.33333333% !important;\n }\n &.tg-col-sm-9 .mx-templategrid-item {\n width: 75% !important;\n }\n &.tg-col-sm-8 .mx-templategrid-item {\n width: 66.66666667% !important;\n }\n &.tg-col-sm-7 .mx-templategrid-item {\n width: 58.33333333% !important;\n }\n &.tg-col-sm-6 .mx-templategrid-item {\n width: 50% !important;\n }\n &.tg-col-sm-5 .mx-templategrid-item {\n width: 41.66666667% !important;\n }\n &.tg-col-sm-4 .mx-templategrid-item {\n width: 33.33333333% !important;\n }\n &.tg-col-sm-3 .mx-templategrid-item {\n width: 25% !important;\n }\n &.tg-col-sm-2 .mx-templategrid-item {\n width: 16.66666667% !important;\n }\n &.tg-col-sm-1 .mx-templategrid-item {\n width: 8.33333333% !important;\n }\n }\n @media (min-width: 992px) {\n &.tg-col-md-12 .mx-templategrid-item {\n width: 100% !important;\n }\n &.tg-col-md-11 .mx-templategrid-item {\n width: 91.66666667% !important;\n }\n &.tg-col-md-10 .mx-templategrid-item {\n width: 83.33333333% !important;\n }\n &.tg-col-md-9 .mx-templategrid-item {\n width: 75% !important;\n }\n &.tg-col-md-8 .mx-templategrid-item {\n width: 66.66666667% !important;\n }\n &.tg-col-md-7 .mx-templategrid-item {\n width: 58.33333333% !important;\n }\n &.tg-col-md-6 .mx-templategrid-item {\n width: 50% !important;\n }\n &.tg-col-md-5 .mx-templategrid-item {\n width: 41.66666667% !important;\n }\n &.tg-col-md-4 .mx-templategrid-item {\n width: 33.33333333% !important;\n }\n &.tg-col-md-3 .mx-templategrid-item {\n width: 25% !important;\n }\n &.tg-col-md-2 .mx-templategrid-item {\n width: 16.66666667% !important;\n }\n &.tg-col-md-1 .mx-templategrid-item {\n width: 8.33333333% !important;\n }\n }\n @media (min-width: 1200px) {\n &.tg-col-lg-12 .mx-templategrid-item {\n width: 100% !important;\n }\n &.tg-col-lg-11 .mx-templategrid-item {\n width: 91.66666667% !important;\n }\n &.tg-col-lg-10 .mx-templategrid-item {\n width: 83.33333333% !important;\n }\n &.tg-col-lg-9 .mx-templategrid-item {\n width: 75% !important;\n }\n &.tg-col-lg-8 .mx-templategrid-item {\n width: 66.66666667% !important;\n }\n &.tg-col-lg-7 .mx-templategrid-item {\n width: 58.33333333% !important;\n }\n &.tg-col-lg-6 .mx-templategrid-item {\n width: 50% !important;\n }\n &.tg-col-lg-5 .mx-templategrid-item {\n width: 41.66666667% !important;\n }\n &.tg-col-lg-4 .mx-templategrid-item {\n width: 33.33333333% !important;\n }\n &.tg-col-lg-3 .mx-templategrid-item {\n width: 25% !important;\n }\n &.tg-col-lg-2 .mx-templategrid-item {\n width: 16.66666667% !important;\n }\n &.tg-col-lg-1 .mx-templategrid-item {\n width: 8.33333333% !important;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin typography() {\n /* ==========================================================================\n Typography\n ========================================================================== */\n\n p {\n line-height: $line-height-base * 1.25;\n margin: 0 0 $spacing-small;\n }\n\n .mx-title {\n margin: $font-header-margin;\n color: $font-color-header;\n font-size: $font-size-h1;\n font-weight: $font-weight-header;\n }\n\n h1,\n .h1,\n .h1 > * {\n font-size: $font-size-h1;\n }\n\n h2,\n .h2,\n .h2 > * {\n font-size: $font-size-h2;\n }\n\n h3,\n .h3,\n .h3 > * {\n font-size: $font-size-h3;\n }\n\n h4,\n .h4,\n .h4 > * {\n font-size: $font-size-h4;\n }\n\n h5,\n .h5,\n .h5 > * {\n font-size: $font-size-h5;\n }\n\n h6,\n .h6,\n .h6 > * {\n font-size: $font-size-h6;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n .h1,\n .h2,\n .h3,\n .h4,\n .h5,\n .h6 {\n margin: $font-header-margin;\n color: $font-color-header;\n font-weight: $font-weight-header;\n line-height: 1.3;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin typography-helpers() {\n /* ==========================================================================\n Typography\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n // Text size\n .text-small {\n font-size: $font-size-small !important;\n }\n\n .text-large {\n font-size: $font-size-large !important;\n }\n\n // Text Weights\n .text-light,\n .text-light > *,\n .text-light label {\n font-weight: $font-weight-light !important;\n }\n\n .text-normal,\n .text-normal > *,\n .text-normal label {\n font-weight: $font-weight-normal !important;\n }\n\n .text-semibold,\n .text-semibold > *,\n .text-semibold label {\n font-weight: $font-weight-semibold !important;\n }\n\n .text-bold,\n .text-bold > *,\n .text-bold label {\n font-weight: $font-weight-bold !important;\n }\n\n // Color variations\n .text-secondary,\n .text-secondary:hover,\n .text-default,\n .text-default:hover {\n color: $font-color-default !important;\n }\n\n .text-primary,\n .text-primary:hover {\n color: $brand-primary !important;\n }\n\n .text-info,\n .text-info:hover {\n color: $brand-info !important;\n }\n\n .text-success,\n .text-success:hover {\n color: $brand-success !important;\n }\n\n .text-warning,\n .text-warning:hover {\n color: $brand-warning !important;\n }\n\n .text-danger,\n .text-danger:hover {\n color: $brand-danger !important;\n }\n\n .text-header {\n color: $font-color-header !important;\n }\n\n .text-detail {\n color: $font-color-detail !important;\n }\n\n .text-white {\n color: #ffffff;\n }\n\n // Alignment options\n .text-left {\n text-align: left !important;\n }\n .text-center {\n text-align: center !important;\n }\n .text-right {\n text-align: right !important;\n }\n .text-justify {\n text-align: justify !important;\n }\n\n // Transform options\n .text-lowercase {\n text-transform: lowercase !important;\n }\n .text-uppercase {\n text-transform: uppercase !important;\n }\n .text-capitalize {\n text-transform: capitalize !important;\n }\n\n // Wrap options\n .text-break {\n word-break: break-all !important;\n word-break: break-word !important;\n -webkit-hyphens: auto !important;\n hyphens: auto !important;\n }\n\n .text-nowrap {\n white-space: nowrap !important;\n }\n\n .text-nowrap {\n overflow: hidden !important;\n max-width: 100% !important;\n white-space: nowrap !important;\n text-overflow: ellipsis !important;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin layout-grid() {\n /* ==========================================================================\n Layout grid\n\n Default Bootstrap containers\n ========================================================================== */\n .mx-layoutgrid {\n width: 100%;\n margin-right: auto;\n margin-left: auto;\n padding-right: $gutter-size;\n padding-left: $gutter-size;\n }\n\n // Row\n .row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter-size;\n margin-left: -$gutter-size;\n\n &::before,\n &::after {\n content: normal;\n }\n }\n\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n }\n\n .no-gutters > .col,\n .no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n\n // Columns\n .col-1,\n .col-2,\n .col-3,\n .col-4,\n .col-5,\n .col-6,\n .col-7,\n .col-8,\n .col-9,\n .col-10,\n .col-11,\n .col-12,\n .col,\n .col-auto,\n .col-sm-1,\n .col-sm-2,\n .col-sm-3,\n .col-sm-4,\n .col-sm-5,\n .col-sm-6,\n .col-sm-7,\n .col-sm-8,\n .col-sm-9,\n .col-sm-10,\n .col-sm-11,\n .col-sm-12,\n .col-sm,\n .col-sm-auto,\n .col-md-1,\n .col-md-2,\n .col-md-3,\n .col-md-4,\n .col-md-5,\n .col-md-6,\n .col-md-7,\n .col-md-8,\n .col-md-9,\n .col-md-10,\n .col-md-11,\n .col-md-12,\n .col-md,\n .col-md-auto,\n .col-lg-1,\n .col-lg-2,\n .col-lg-3,\n .col-lg-4,\n .col-lg-5,\n .col-lg-6,\n .col-lg-7,\n .col-lg-8,\n .col-lg-9,\n .col-lg-10,\n .col-lg-11,\n .col-lg-12,\n .col-lg,\n .col-lg-auto,\n .col-xl-1,\n .col-xl-2,\n .col-xl-3,\n .col-xl-4,\n .col-xl-5,\n .col-xl-6,\n .col-xl-7,\n .col-xl-8,\n .col-xl-9,\n .col-xl-10,\n .col-xl-11,\n .col-xl-12,\n .col-xl,\n .col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: $gutter-size;\n padding-left: $gutter-size;\n }\n\n .col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n .col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n\n .col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n\n .col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n\n .col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n\n .col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n\n .col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n\n .col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n\n .col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n\n .col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n\n .col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n\n .col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n\n .col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n\n .col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n\n .order-first {\n order: -1;\n }\n\n .order-last {\n order: 13;\n }\n\n .order-0 {\n order: 0;\n }\n\n .order-1 {\n order: 1;\n }\n\n .order-2 {\n order: 2;\n }\n\n .order-3 {\n order: 3;\n }\n\n .order-4 {\n order: 4;\n }\n\n .order-5 {\n order: 5;\n }\n\n .order-6 {\n order: 6;\n }\n\n .order-7 {\n order: 7;\n }\n\n .order-8 {\n order: 8;\n }\n\n .order-9 {\n order: 9;\n }\n\n .order-10 {\n order: 10;\n }\n\n .order-11 {\n order: 11;\n }\n\n .order-12 {\n order: 12;\n }\n\n .offset-1,\n .col-offset-1 {\n margin-left: 8.333333%;\n }\n\n .offset-2,\n .col-offset-2 {\n margin-left: 16.666667%;\n }\n\n .offset-3,\n .col-offset-3 {\n margin-left: 25%;\n }\n\n .offset-4,\n .col-offset-4 {\n margin-left: 33.333333%;\n }\n\n .offset-5,\n .col-offset-5 {\n margin-left: 41.666667%;\n }\n\n .offset-6,\n .col-offset-6 {\n margin-left: 50%;\n }\n\n .offset-7,\n .col-offset-7 {\n margin-left: 58.333333%;\n }\n\n .offset-8,\n .col-offset-8 {\n margin-left: 66.666667%;\n }\n\n .offset-9,\n .col-offset-9 {\n margin-left: 75%;\n }\n\n .offset-10,\n .col-offset-10 {\n margin-left: 83.333333%;\n }\n\n .offset-11,\n .col-offset-11 {\n margin-left: 91.666667%;\n }\n\n // Responsiveness\n @media (min-width: $screen-sm) {\n .mx-layoutgrid-fixed {\n max-width: 540px;\n }\n }\n\n @media (min-width: $screen-md) {\n .mx-layoutgrid-fixed {\n max-width: 720px;\n }\n }\n\n @media (min-width: $screen-lg) {\n .mx-layoutgrid-fixed {\n max-width: 960px;\n }\n }\n\n @media (min-width: $screen-xl) {\n .mx-layoutgrid-fixed {\n max-width: 1140px;\n }\n }\n\n @media (min-width: $screen-sm) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0,\n .col-sm-offset-0 {\n margin-left: 0;\n }\n .offset-sm-1,\n .col-sm-offset-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2,\n .col-sm-offset-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3,\n .col-sm-offset-3 {\n margin-left: 25%;\n }\n .offset-sm-4,\n .col-sm-offset-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5,\n .col-sm-offset-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6,\n .col-sm-offset-6 {\n margin-left: 50%;\n }\n .offset-sm-7,\n .col-sm-offset-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8,\n .col-sm-offset-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9,\n .col-sm-offset-9 {\n margin-left: 75%;\n }\n .offset-sm-10,\n .col-sm-offset-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11,\n .col-sm-offset-11 {\n margin-left: 91.666667%;\n }\n }\n\n @media (min-width: $screen-md) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0,\n .col-md-offset-0 {\n margin-left: 0;\n }\n .offset-md-1,\n .col-md-offset-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2,\n .col-md-offset-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3,\n .col-md-offset-3 {\n margin-left: 25%;\n }\n .offset-md-4,\n .col-md-offset-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5,\n .col-md-offset-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6,\n .col-md-offset-6 {\n margin-left: 50%;\n }\n .offset-md-7,\n .col-md-offset-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8,\n .col-md-offset-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9,\n .col-md-offset-9 {\n margin-left: 75%;\n }\n .offset-md-10,\n .col-md-offset-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11,\n .col-md-offset-11 {\n margin-left: 91.666667%;\n }\n }\n\n @media (min-width: $screen-lg) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0,\n .col-lg-offset-0 {\n margin-left: 0;\n }\n .offset-lg-1,\n .col-lg-offset-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2,\n .col-lg-offset-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3,\n .col-lg-offset-3 {\n margin-left: 25%;\n }\n .offset-lg-4,\n .col-lg-offset-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5,\n .col-lg-offset-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6,\n .col-lg-offset-6 {\n margin-left: 50%;\n }\n .offset-lg-7,\n .col-lg-offset-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8,\n .col-lg-offset-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9,\n .col-lg-offset-9 {\n margin-left: 75%;\n }\n .offset-lg-10,\n .col-lg-offset-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11,\n .col-lg-offset-11 {\n margin-left: 91.666667%;\n }\n }\n\n @media (min-width: $screen-xl) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0,\n .col-xl-offset-0 {\n margin-left: 0;\n }\n .offset-xl-1,\n .col-xl-offset-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2,\n .col-xl-offset-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3,\n .col-xl-offset-3 {\n margin-left: 25%;\n }\n .offset-xl-4,\n .col-xl-offset-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5,\n .col-xl-offset-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6,\n .col-xl-offset-6 {\n margin-left: 50%;\n }\n .offset-xl-7,\n .col-xl-offset-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8,\n .col-xl-offset-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9,\n .col-xl-offset-9 {\n margin-left: 75%;\n }\n .offset-xl-10,\n .col-xl-offset-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11,\n .col-xl-offset-11 {\n margin-left: 91.666667%;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin pagination() {\n /* ==========================================================================\n Pagination\n\n Default Mendix pagination widget.\n ========================================================================== */\n\n .widget-pagination {\n overflow: unset;\n\n .pagination {\n overflow: unset;\n\n .btn {\n &:hover {\n color: $btn-default-color;\n background-color: $btn-default-bg-hover;\n }\n\n &:focus {\n outline: unset;\n outline-offset: unset;\n box-shadow: 0 0 0 0.3rem $color-primary-light;\n }\n }\n\n ul {\n margin-top: unset;\n margin-bottom: unset;\n\n li {\n display: inline-flex;\n align-items: center;\n width: unset;\n min-width: 24px;\n min-height: 24px;\n margin-right: 16px;\n padding: 4px 8px;\n transition: all 0.2s ease-in-out;\n color: $font-color-default;\n border-radius: $border-radius-default;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:not(.break-view) {\n &:hover {\n color: $btn-default-color;\n background-color: $btn-default-bg-hover;\n }\n\n &:focus {\n outline: unset;\n outline-offset: unset;\n box-shadow: 0 0 0 0.3rem $color-primary-light;\n }\n\n &.active {\n color: $btn-primary-color;\n background-color: $btn-primary-bg;\n }\n\n &.active:hover {\n color: $btn-primary-color;\n background-color: $btn-primary-bg-hover;\n }\n }\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin progress() {\n /* ==========================================================================\n Progress\n\n Default Mendix progress widget.\n ========================================================================== */\n\n .mx-progress {\n color: $font-color-default;\n background: $bg-color-secondary;\n\n .mx-progress-message {\n color: $font-color-default;\n }\n\n .mx-progress-indicator {\n position: relative;\n overflow: hidden;\n width: 100%;\n max-width: 100%;\n height: 2px;\n margin: auto;\n padding: 0;\n border-radius: 0;\n background: $gray-lighter;\n\n &:before,\n &:after {\n position: absolute;\n top: 0;\n left: 0;\n display: block;\n width: 50%;\n height: 2px;\n content: \"\";\n transform: translate3d(-100%, 0, 0);\n background: $brand-primary;\n }\n\n &::before {\n animation: loader 2s infinite;\n }\n\n &::after {\n animation: loader 2s -2s infinite;\n }\n }\n }\n\n @keyframes loader {\n 0% {\n transform: translate3d(-100%, 0, 0);\n }\n 100% {\n transform: translate3d(200%, 0, 0);\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin progress-bar() {\n /* ==========================================================================\n Progress bar\n\n Default Mendix progress bar widget.\n ========================================================================== */\n\n .progress {\n overflow: hidden;\n display: flex;\n flex-direction: row;\n }\n\n .progress-bar {\n align-self: flex-start;\n width: 0;\n height: 100%;\n transition: width 0.6s ease;\n text-align: center;\n color: #ffffff;\n border-radius: $border-radius-default;\n font-weight: $font-weight-semibold;\n }\n\n .progress-striped .progress-bar,\n .progress-bar-striped {\n background-image: linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-size: 40px 40px;\n }\n\n .widget-progress-bar.active .progress-bar,\n .progress.active .progress-bar,\n .progress-bar.active {\n animation: progress-bar-stripes 2s linear infinite;\n }\n\n @keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin progress-bar-helpers() {\n /* ==========================================================================\n Progress Bar\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n\n .widget-progress-bar {\n width: 100%;\n\n .progress {\n border-radius: $border-radius-default;\n background-color: $bg-color;\n }\n }\n\n .progress-bar-medium .progress,\n .progress-bar-medium .progress-bar {\n height: 16px;\n line-height: 16px;\n font-size: $font-size-small;\n }\n\n .progress-bar-small .progress,\n .progress-bar-small .progress-bar {\n height: 8px;\n line-height: 8px;\n font-size: 0px;\n }\n\n .progress-bar-small .progress-bar > * {\n // Specifically to hide custom labels.\n display: none;\n }\n\n .progress-bar-large .progress,\n .progress-bar-large .progress-bar {\n height: 24px;\n line-height: 24px;\n font-size: $font-size-default;\n }\n\n .widget-progress-bar-clickable:hover {\n cursor: pointer;\n }\n\n .widget-progress-bar.progress-bar-primary .progress-bar {\n background-color: $brand-primary;\n }\n\n .widget-progress-bar.progress-bar-success .progress-bar {\n background-color: $brand-success;\n }\n\n .widget-progress-bar.progress-bar-warning .progress-bar {\n background-color: $brand-warning;\n }\n\n .widget-progress-bar.progress-bar-danger .progress-bar {\n background-color: $brand-danger;\n }\n\n .widget-progress-bar-alert.widget-progress-bar-text-contrast .progress-bar {\n color: $color-danger-darker;\n }\n\n .widget-progress-bar-text-contrast .progress-bar {\n color: $font-color-default;\n }\n\n .widget-progress-bar-negative {\n float: right;\n display: block;\n }\n\n .widget-progress-bar > .alert {\n margin-top: 24px;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin progress-circle() {\n /* ==========================================================================\n Progress Circle\n\n Default Mendix progress circle widget.\n ========================================================================== */\n\n .widget-progress-circle {\n display: inline-block;\n }\n\n .widget-progress-circle-trail-path {\n stroke: $bg-color;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin progress-circle-helpers() {\n /* ==========================================================================\n Progress Circle\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n\n //== Progress circle and label colors\n .widget-progress-circle-primary {\n .widget-progress-circle-path {\n stroke: $brand-primary;\n }\n\n .progressbar-text {\n color: $brand-primary !important;\n }\n }\n\n .widget-progress-circle-success {\n .widget-progress-circle-path {\n stroke: $brand-success;\n }\n\n .progressbar-text {\n color: $brand-success !important;\n }\n }\n\n .widget-progress-circle-warning {\n .widget-progress-circle-path {\n stroke: $brand-warning;\n }\n\n .progressbar-text {\n color: $brand-warning !important;\n }\n }\n\n .widget-progress-circle-danger {\n .widget-progress-circle-path {\n stroke: $brand-danger;\n }\n\n .progressbar-text {\n color: $brand-danger !important;\n }\n }\n\n //== Sizes\n .widget-progress-circle-thickness-medium {\n .widget-progress-circle-trail-path,\n .widget-progress-circle-path {\n stroke-width: 8px;\n }\n }\n\n .widget-progress-circle-thickness-small {\n .widget-progress-circle-trail-path,\n .widget-progress-circle-path {\n stroke-width: 4px;\n }\n }\n\n .widget-progress-circle-thickness-large {\n .widget-progress-circle-trail-path,\n .widget-progress-circle-path {\n stroke-width: 16px;\n }\n }\n\n //== Progress label container\n .progress-circle-label-container {\n position: relative;\n margin: 0;\n\n .progressbar-text {\n position: absolute;\n left: 50%;\n top: 50%;\n padding: 0px;\n margin: 0px;\n transform: translate(-50%, -50%);\n // Original default from the `progressbar.js` library\n color: rgb(85, 85, 85);\n }\n }\n\n .widget-progress-circle-clickable {\n cursor: pointer;\n }\n\n @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n .widget-progress-circle > div {\n height: 0;\n padding: 0;\n width: 100%;\n padding-bottom: 100%;\n\n & > svg {\n top: 0;\n left: 0;\n height: 100%;\n position: absolute;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin rating() {\n /* ==========================================================================\n Rating\n\n Default Mendix rating widget.\n ========================================================================== */\n\n .widget-star-rating-empty {\n color: #cccccc;\n }\n\n .widget-star-rating-full-widget {\n color: #ffa611;\n }\n\n .widget-star-rating-full-default {\n color: #ced0d3;\n }\n\n .widget-star-rating-font-medium {\n font-size: 30px;\n }\n\n .widget-rating {\n .rating-icon {\n font-size: 24px;\n }\n\n .rating-icon-empty {\n color: #ccc;\n }\n\n .rating-icon-full {\n color: #ffa611;\n }\n\n .rating-item {\n &:focus:not(:focus-visible) {\n .rating-image,\n .rating-icon {\n outline: none;\n }\n }\n\n &:focus-visible {\n .rating-image,\n .rating-icon {\n outline: 1px solid $brand-primary;\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin rating-helpers() {\n /* ==========================================================================\n Rating\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n\n .widget-star-rating-full-primary {\n color: $brand-primary;\n }\n\n .widget-star-rating-full-success {\n color: $brand-success;\n }\n\n .widget-star-rating-full-info {\n color: $brand-info;\n }\n\n .widget-star-rating-full-warning {\n color: $brand-warning;\n }\n\n .widget-star-rating-full-danger {\n color: $brand-danger;\n }\n\n .widget-star-rating-full-inverse {\n color: $brand-inverse;\n }\n\n .widget-rating {\n &.widget-rating-small {\n .rating-icon {\n font-size: 16px;\n }\n .rating-image {\n height: 16px;\n }\n }\n &.widget-rating-large {\n .rating-icon {\n font-size: 32px;\n }\n .rating-image {\n height: 32px;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n@import \"../helpers/slider-color-variant\";\n\n@mixin range-slider() {\n /* ==========================================================================\n Range slider\n\n Default Mendix range slider widget.\n ========================================================================== */\n\n .widget-range-slider {\n margin-bottom: 16px;\n padding: 5px 10px;\n\n .rc-slider-handle {\n border-color: $brand-default;\n }\n\n .rc-slider.rc-slider-with-marks {\n padding-bottom: 25px;\n }\n\n @include slider-color-variant($brand-primary);\n }\n}\n","@mixin slider-color-variant($color) {\n .rc-slider:not(.rc-slider-disabled) {\n .rc-slider-track {\n background-color: $color;\n }\n\n .rc-slider-handle:focus {\n border-color: $color;\n box-shadow: 0 0 0 5px lighten($color, 25%);\n outline: none;\n }\n\n .rc-slider-handle-click-focused:focus {\n border-color: lighten($color, 25%);\n box-shadow: unset;\n }\n\n .rc-slider-dot-active,\n .rc-slider-handle:hover {\n border-color: $color;\n }\n\n .rc-slider-handle:active {\n border-color: $color;\n box-shadow: 0 0 5px $color;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@import \"slider-color-variant\";\n\n@mixin range-slider-helpers() {\n /* ==========================================================================\n Range Slider\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n\n .widget-range-slider-primary {\n @include slider-color-variant($brand-primary);\n }\n\n .widget-range-slider-success {\n @include slider-color-variant($brand-success);\n }\n\n .widget-range-slider-warning {\n @include slider-color-variant($brand-warning);\n }\n\n .widget-range-slider-danger {\n @include slider-color-variant($brand-danger);\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@import \"../helpers/slider-color-variant\";\n\n@mixin slider() {\n /* ==========================================================================\n Slider\n\n Default Mendix slider widget.\n ========================================================================== */\n\n .widget-slider {\n margin-bottom: 16px;\n padding: 5px 10px;\n\n .rc-slider-handle {\n border-color: $brand-default;\n }\n\n .rc-slider.rc-slider-with-marks {\n padding-bottom: 25px;\n }\n\n @include slider-color-variant($brand-primary);\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n@import \"slider-color-variant\";\n\n@mixin slider-helpers() {\n /* ==========================================================================\n Slider\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n\n .widget-slider-primary {\n @include slider-color-variant($brand-primary);\n }\n\n .widget-slider-success {\n @include slider-color-variant($brand-success);\n }\n\n .widget-slider-warning {\n @include slider-color-variant($brand-warning);\n }\n\n .widget-slider-danger {\n @include slider-color-variant($brand-danger);\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin timeline() {\n /* ==========================================================================\n Timeline\n\n Widget styles\n ========================================================================== */\n\n //Timeline grouping\n .widget-timeline-date-header {\n display: flex;\n justify-content: center;\n width: $timeline-grouping-size;\n overflow-wrap: break-word;\n padding: $spacing-small;\n border: 1px solid $timeline-grouping-border-color;\n border-radius: $timeline-grouping-border-radius;\n }\n\n //Timeline entries\n .widget-timeline-events-wrapper {\n display: flex;\n flex: 1;\n margin-left: $timeline-grouping-size/2;\n padding: $spacing-large 0 0 0;\n border-left: 1px solid $timeline-border-color;\n\n ul {\n flex: 1;\n padding: 0;\n list-style: none;\n margin-bottom: 0;\n }\n }\n\n //Timeline entry\n .widget-timeline-event {\n flex: 1;\n position: relative;\n margin-left: -1px;\n padding: 0 $spacing-large $spacing-large $spacing-large;\n margin-bottom: $spacing-medium;\n\n &.clickable {\n cursor: pointer;\n transition: background 0.8s;\n\n &:hover {\n .widget-timeline-title {\n }\n }\n }\n }\n\n //Timeline entry content wrapper\n .widget-timeline-icon-wrapper {\n position: absolute;\n top: 0;\n left: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n transform: translateX(-50%);\n\n .glyphicon {\n font-size: $timeline-icon-size;\n }\n\n img {\n max-width: 100%;\n max-height: 100%;\n }\n }\n\n .widget-timeline-content-wrapper {\n display: flex;\n\n .widget-timeline-date-time-wrapper {\n order: 2;\n margin-right: 0;\n }\n\n .widget-timeline-info-wrapper {\n flex: 1;\n order: 1;\n margin-right: $spacing-medium;\n }\n }\n\n .timeline-with-image .widget-timeline-content-wrapper {\n display: flex;\n\n .widget-timeline-date-time-wrapper {\n order: 1;\n margin-right: $spacing-medium;\n }\n\n .widget-timeline-info-wrapper {\n flex: 1;\n order: 2;\n }\n }\n\n //Timeline entry components\n .widget-timeline-icon-circle {\n width: $timeline-icon-size;\n height: $timeline-icon-size;\n border-radius: 50%;\n background-color: $timeline-icon-color;\n }\n\n .widget-timeline-title {\n @extend h5;\n }\n\n .widget-timeline-description {\n }\n\n .widget-timeline-no-divider {\n }\n\n .widget-eventTime {\n @extend h5;\n color: $timeline-event-time-color;\n }\n\n .timeline-entry-image {\n display: flex;\n justify-content: center;\n align-content: center;\n border-radius: $border-radius-default;\n height: $timeline-image-size;\n width: $timeline-image-size;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin helper-classes() {\n /* ==========================================================================\n Helper\n\n Default Mendix helpers\n ========================================================================== */\n $important-helpers-value: if($important-helpers, \" !important\", \"\");\n\n // Display properties\n .d-none {\n display: none #{$important-helpers-value};\n }\n\n .d-flex {\n display: flex #{$important-helpers-value};\n }\n\n .d-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n\n .d-inline {\n display: inline #{$important-helpers-value};\n }\n\n .d-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n\n .show,\n .d-block {\n display: block #{$important-helpers-value};\n }\n\n .table,\n .d-table {\n display: table #{$important-helpers-value};\n }\n\n .table-row,\n .d-table-row {\n display: table-row #{$important-helpers-value};\n }\n\n .table-cell,\n .d-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n\n .hide,\n .hidden {\n display: none #{$important-helpers-value};\n visibility: hidden #{$important-helpers-value};\n }\n\n .invisible {\n visibility: hidden #{$important-helpers-value};\n }\n\n .display-ie8-only:not([attr*=\"\"]) {\n display: none #{$important-helpers-value};\n padding: 0 #{$important-helpers-value};\n }\n\n .list-nostyle {\n ul {\n margin: 0 #{$important-helpers-value};\n padding: 0 #{$important-helpers-value};\n\n li {\n list-style-type: none #{$important-helpers-value};\n }\n }\n }\n\n .nowrap,\n .nowrap * {\n overflow: hidden #{$important-helpers-value};\n // Star for inside an element, IE8 span > a\n white-space: nowrap #{$important-helpers-value};\n text-overflow: ellipsis #{$important-helpers-value};\n }\n\n // Render DIV as Table Cells\n .table {\n display: table #{$important-helpers-value};\n }\n\n .table-row {\n display: table-row #{$important-helpers-value};\n }\n\n .table-cell {\n display: table-cell #{$important-helpers-value};\n }\n\n // Quick floats\n .pull-left {\n float: left #{$important-helpers-value};\n }\n\n .pull-right {\n float: right #{$important-helpers-value};\n }\n\n // Align options\n .align-top {\n vertical-align: top #{$important-helpers-value};\n }\n\n .align-middle {\n vertical-align: middle #{$important-helpers-value};\n }\n\n .align-bottom {\n vertical-align: bottom #{$important-helpers-value};\n }\n\n // Flex alignments\n .row-left {\n display: flex #{$important-helpers-value};\n align-items: center #{$important-helpers-value};\n flex-flow: row #{$important-helpers-value};\n justify-content: flex-start #{$important-helpers-value};\n }\n\n .row-center {\n display: flex #{$important-helpers-value};\n align-items: center #{$important-helpers-value};\n flex-flow: row #{$important-helpers-value};\n justify-content: center #{$important-helpers-value};\n }\n\n .row-right {\n display: flex #{$important-helpers-value};\n align-items: center #{$important-helpers-value};\n flex-flow: row #{$important-helpers-value};\n justify-content: flex-end #{$important-helpers-value};\n }\n\n .col-left {\n display: flex #{$important-helpers-value};\n align-items: flex-start #{$important-helpers-value};\n flex-direction: column #{$important-helpers-value};\n justify-content: center #{$important-helpers-value};\n }\n\n .col-center {\n display: flex #{$important-helpers-value};\n align-items: center #{$important-helpers-value};\n flex-direction: column #{$important-helpers-value};\n justify-content: center #{$important-helpers-value};\n }\n\n .col-right {\n display: flex #{$important-helpers-value};\n align-items: flex-end #{$important-helpers-value};\n flex-direction: column #{$important-helpers-value};\n justify-content: center #{$important-helpers-value};\n }\n\n .shadow-small {\n box-shadow: $shadow-small $shadow-color;\n margin-bottom: 5px;\n border-width: 1px #{$important-helpers-value};\n border-style: solid;\n border-color: $shadow-color-border;\n }\n .shadow-medium {\n box-shadow: $shadow-medium $shadow-color;\n margin-bottom: 15px;\n border-width: 1px #{$important-helpers-value};\n border-style: solid;\n border-color: $shadow-color-border;\n }\n\n .shadow-large {\n box-shadow: $shadow-large $shadow-color;\n margin-bottom: 25px;\n border-width: 1px #{$important-helpers-value};\n border-style: solid;\n border-color: $shadow-color-border;\n }\n\n // Media\n @media (max-width: $screen-sm-max) {\n .hide-phone {\n display: none #{$important-helpers-value};\n }\n }\n\n @media (min-width: $screen-md) and (max-width: $screen-md-max) {\n .hide-tablet {\n display: none #{$important-helpers-value};\n }\n }\n\n @media (min-width: $screen-lg) {\n .hide-desktop {\n display: none #{$important-helpers-value};\n }\n }\n\n @media (max-width: $screen-xs-max) {\n .hide-xs,\n .hidden-xs,\n .d-xs-none {\n display: none #{$important-helpers-value};\n }\n .d-xs-flex {\n display: flex #{$important-helpers-value};\n }\n .d-xs-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-xs-inline {\n display: inline #{$important-helpers-value};\n }\n .d-xs-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-xs-block {\n display: block #{$important-helpers-value};\n }\n .d-xs-table {\n display: table #{$important-helpers-value};\n }\n .d-xs-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-xs-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n }\n\n @media (min-width: $screen-sm) and (max-width: $screen-sm-max) {\n .hide-sm,\n .hidden-sm,\n .d-sm-none {\n display: none #{$important-helpers-value};\n }\n .d-sm-flex {\n display: flex #{$important-helpers-value};\n }\n .d-sm-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-sm-inline {\n display: inline #{$important-helpers-value};\n }\n .d-sm-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-sm-block {\n display: block #{$important-helpers-value};\n }\n .d-sm-table {\n display: table #{$important-helpers-value};\n }\n .d-sm-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-sm-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n }\n\n @media (min-width: $screen-md) and (max-width: $screen-md-max) {\n .hide-md,\n .hidden-md,\n .d-md-none {\n display: none #{$important-helpers-value};\n }\n .d-md-flex {\n display: flex #{$important-helpers-value};\n }\n .d-md-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-md-inline {\n display: inline #{$important-helpers-value};\n }\n .d-md-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-md-block {\n display: block #{$important-helpers-value};\n }\n .d-md-table {\n display: table #{$important-helpers-value};\n }\n .d-md-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-md-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n }\n\n @media (min-width: $screen-lg) and (max-width: $screen-xl) {\n .hide-lg,\n .hidden-lg,\n .d-lg-none {\n display: none #{$important-helpers-value};\n }\n .d-lg-flex {\n display: flex #{$important-helpers-value};\n }\n .d-lg-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-lg-inline {\n display: inline #{$important-helpers-value};\n }\n .d-lg-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-lg-block {\n display: block #{$important-helpers-value};\n }\n .d-lg-table {\n display: table #{$important-helpers-value};\n }\n .d-lg-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-lg-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n }\n\n @media (min-width: $screen-xl) {\n .hide-xl,\n .hidden-xl,\n .d-xl-none {\n display: none #{$important-helpers-value};\n }\n .d-xl-flex {\n display: flex #{$important-helpers-value};\n }\n .d-xl-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-xl-inline {\n display: inline #{$important-helpers-value};\n }\n .d-xl-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-xl-block {\n display: block #{$important-helpers-value};\n }\n .d-xl-table {\n display: table #{$important-helpers-value};\n }\n .d-xl-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-xl-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n }\n\n //Box-shadow\n\n .shadow {\n box-shadow: 0 2px 20px 1px rgba(5, 15, 129, 0.05) #{$important-helpers-value};\n }\n\n //Height helpers\n\n .h-25 {\n height: 25% #{$important-helpers-value};\n }\n\n .h-50 {\n height: 50% #{$important-helpers-value};\n }\n\n .h-75 {\n height: 75% #{$important-helpers-value};\n }\n\n .h-100 {\n height: 100% #{$important-helpers-value};\n }\n\n //Width helpers\n\n .w-25 {\n width: 25% #{$important-helpers-value};\n }\n\n .w-50 {\n width: 50% #{$important-helpers-value};\n }\n\n .w-75 {\n width: 75% #{$important-helpers-value};\n }\n\n .w-100 {\n width: 100% #{$important-helpers-value};\n }\n\n //Border helpers\n .border {\n border: 1px solid $border-color-default #{$important-helpers-value};\n }\n\n .border-top {\n border-top: 1px solid $border-color-default #{$important-helpers-value};\n }\n\n .border-bottom {\n border-bottom: 1px solid $border-color-default #{$important-helpers-value};\n }\n\n .border-left {\n border-left: 1px solid $border-color-default #{$important-helpers-value};\n }\n\n .border-right {\n border-right: 1px solid $border-color-default #{$important-helpers-value};\n }\n\n .border-rounded {\n border-radius: $border-radius-default #{$important-helpers-value};\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin barcode-scanner() {\n /* ==========================================================================\n Barcode-scanner\n\n Override of default Bootstrap barcode-scanner style\n ========================================================================== */\n\n .mx-barcode-scanner {\n background: #000000;\n z-index: 110;\n\n .close-button {\n color: white;\n .glyphicon {\n font-size: 16px;\n }\n }\n\n .video-canvas {\n .canvas-background {\n background-color: rgba(0, 0, 0, 0.7);\n }\n\n .canvas-middle {\n .canvas-middle-middle {\n $corner-offset: 13px;\n .corner {\n $corner-border: 5px solid #ffffff;\n border-left: $corner-border;\n border-top: $corner-border;\n\n &.corner-top-left {\n top: -$corner-offset;\n left: -$corner-offset;\n }\n &.corner-top-right {\n top: -$corner-offset;\n right: -$corner-offset;\n transform: rotate(90deg);\n }\n &.corner-bottom-right {\n bottom: -$corner-offset;\n right: -$corner-offset;\n transform: rotate(180deg);\n }\n &.corner-bottom-left {\n bottom: -$corner-offset;\n left: -$corner-offset;\n transform: rotate(270deg);\n }\n }\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin accordion() {\n /* ==========================================================================\n Accordion\n\n Default Mendix accordion widget styles.\n ========================================================================== */\n\n .widget-accordion {\n .widget-accordion-group {\n @include get-accordion-group-styles(\n $accordion-header-default-bg,\n $accordion-header-default-bg-hover,\n $accordion-header-default-color,\n $brand-primary,\n $accordion-default-border-color\n );\n }\n\n &.widget-accordion-preview {\n .widget-accordion-group {\n @include get-accordion-preview-group-styles($accordion-header-default-color);\n }\n }\n }\n}\n\n@mixin get-accordion-group-styles($background-color, $background-color-hover, $color, $color-hover, $border-color) {\n border-color: $border-color;\n background-color: $bg-color-secondary;\n\n &:first-child {\n border-top-left-radius: $border-radius-default;\n border-top-right-radius: $border-radius-default;\n\n > .widget-accordion-group-header > .widget-accordion-group-header-button {\n border-top-left-radius: calc(#{$border-radius-default} - 1px);\n border-top-right-radius: calc(#{$border-radius-default} - 1px);\n }\n }\n\n &:last-child {\n border-bottom-left-radius: $border-radius-default;\n border-bottom-right-radius: $border-radius-default;\n }\n\n &.widget-accordion-group-collapsed:last-child,\n &.widget-accordion-group-collapsing:last-child {\n > .widget-accordion-group-header > .widget-accordion-group-header-button {\n border-bottom-left-radius: calc(#{$border-radius-default} - 1px);\n border-bottom-right-radius: calc(#{$border-radius-default} - 1px);\n }\n }\n\n &.widget-accordion-group-collapsing:last-child {\n > .widget-accordion-group-header > .widget-accordion-group-header-button {\n transition: border-radius 5ms ease 200ms;\n }\n }\n\n &.widget-accordion-group-expanding:last-child {\n > .widget-accordion-group-header > .widget-accordion-group-header-button {\n transition: border-radius 5ms ease 80ms;\n }\n }\n\n > .widget-accordion-group-header > .widget-accordion-group-header-button {\n cursor: auto;\n background-color: $background-color;\n padding: $spacing-medium;\n\n > :is(h1, h2, h3, h4, h5, h6) {\n font-size: $font-size-h5;\n font-weight: $font-weight-header;\n }\n\n > :is(h1, h2, h3, h4, h5, h6, p, span) {\n color: $color;\n }\n\n .widget-accordion-group-header-button-icon {\n fill: $color;\n }\n\n &.widget-accordion-group-header-button-clickable {\n &:hover,\n &:focus,\n &:active {\n background-color: $background-color-hover;\n\n > :is(h1, h2, h3, h4, h5, h6, p, span) {\n color: $color-hover;\n }\n\n .widget-accordion-group-header-button-icon {\n fill: $color-hover;\n }\n }\n }\n }\n\n > .widget-accordion-group-content-wrapper > .widget-accordion-group-content {\n border-color: $border-color;\n padding: $spacing-small $spacing-medium $spacing-large $spacing-medium;\n }\n}\n\n@mixin get-accordion-preview-group-styles($color) {\n .widget-accordion-group-header-button {\n > div > :is(h1, h2, h3, h4, h5, h6) {\n font-size: $font-size-h5;\n font-weight: $font-weight-header;\n }\n\n > div > :is(h1, h2, h3, h4, h5, h6, p, span) {\n color: $color;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin accordion-helpers() {\n /* ==========================================================================\n Accordion\n\n //== Design Properties\n //## Helper classes to change the look and feel of the component\n ========================================================================== */\n\n .widget-accordion {\n .widget-accordion-group {\n &.widget-accordion-brand-primary {\n @include get-accordion-group-styles(\n $accordion-header-primary-bg,\n $accordion-header-primary-bg-hover,\n $accordion-header-primary-color,\n $accordion-header-primary-color,\n $accordion-primary-border-color\n );\n }\n\n &.widget-accordion-brand-secondary {\n @include get-accordion-group-styles(\n $accordion-header-secondary-bg,\n $accordion-header-secondary-bg-hover,\n $accordion-header-secondary-color,\n $accordion-header-secondary-color,\n $accordion-secondary-border-color\n );\n }\n\n &.widget-accordion-brand-success {\n @include get-accordion-group-styles(\n $accordion-header-success-bg,\n $accordion-header-success-bg-hover,\n $accordion-header-success-color,\n $accordion-header-success-color,\n $accordion-success-border-color\n );\n }\n\n &.widget-accordion-brand-warning {\n @include get-accordion-group-styles(\n $accordion-header-warning-bg,\n $accordion-header-warning-bg-hover,\n $accordion-header-warning-color,\n $accordion-header-warning-color,\n $accordion-warning-border-color\n );\n }\n\n &.widget-accordion-brand-danger {\n @include get-accordion-group-styles(\n $accordion-header-danger-bg,\n $accordion-header-danger-bg-hover,\n $accordion-header-danger-color,\n $accordion-header-danger-color,\n $accordion-danger-border-color\n );\n }\n }\n\n &.widget-accordion-preview {\n .widget-accordion-group {\n &.widget-accordion-brand-primary {\n @include get-accordion-preview-group-styles($accordion-header-primary-color);\n }\n\n &.widget-accordion-brand-secondary {\n @include get-accordion-preview-group-styles($accordion-header-secondary-color);\n }\n\n &.widget-accordion-brand-success {\n @include get-accordion-preview-group-styles($accordion-header-success-color);\n }\n\n &.widget-accordion-brand-warning {\n @include get-accordion-preview-group-styles($accordion-header-warning-color);\n }\n\n &.widget-accordion-brand-danger {\n @include get-accordion-preview-group-styles($accordion-header-danger-color);\n }\n }\n }\n\n &.widget-accordion-bordered-all {\n > .widget-accordion-group {\n &:first-child {\n border-top-style: solid;\n }\n\n border-right-style: solid;\n border-left-style: solid;\n }\n }\n\n &.widget-accordion-bordered-horizontal {\n > .widget-accordion-group {\n &:first-child {\n border-top-style: solid;\n }\n }\n }\n\n &.widget-accordion-bordered-none {\n > .widget-accordion-group {\n border-bottom: none;\n }\n }\n\n &.widget-accordion-striped {\n > .widget-accordion-group:not(:is(.widget-accordion-brand-primary, .widget-accordion-brand-secondary, .widget-accordion-brand-success, .widget-accordion-brand-warning, .widget-accordion-brand-danger)):nth-child(2n\n + 1) {\n > .widget-accordion-group-header > .widget-accordion-group-header-button {\n background-color: $accordion-bg-striped;\n\n &.widget-accordion-group-header-button-clickable {\n &:hover,\n &:focus,\n &:active {\n background-color: $accordion-bg-striped-hover;\n }\n }\n }\n\n > .widget-accordion-group-content {\n background-color: $accordion-bg-striped;\n }\n }\n }\n\n &.widget-accordion-compact {\n > .widget-accordion-group {\n > .widget-accordion-group-header > .widget-accordion-group-header-button {\n padding: $spacing-smaller $spacing-small;\n }\n\n > .widget-accordion-group-content {\n padding: $spacing-smaller $spacing-small $spacing-medium $spacing-small;\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin dijit-widget() {\n /*\n * Mendix Documentation\n * Special styles for presenting components\n */\n\n /*\n * Dijit Widgets\n *\n * Default Dojo Dijit Widgets\n */\n\n /*\n * Dijit Tooltip Widget\n *\n * Default tooltip used for Mendix widgets\n */\n\n .mx-tooltip {\n .dijitTooltipContainer {\n border-width: 1px;\n border-color: $gray-light;\n border-radius: 4px;\n background: #ffffff;\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n\n .mx-tooltip-content {\n padding: 12px;\n }\n\n .form-group {\n margin-bottom: 4px;\n }\n }\n\n .dijitTooltipConnector {\n width: 0;\n height: 0;\n margin-left: -8px;\n border-width: 10px 10px 10px 0;\n border-style: solid;\n border-color: transparent;\n border-right-color: $gray-light;\n }\n }\n\n /*\n * Dijit Border Container\n *\n * Used in Mendix as split pane containers\n */\n\n .dijitBorderContainer {\n padding: 8px;\n background-color: #fcfcfc;\n\n .dijitSplitterV,\n .dijitGutterV {\n width: 5px;\n border: 0;\n background: #fcfcfc;\n }\n\n .dijitSplitterH,\n .dijitGutterH {\n height: 5px;\n border: 0;\n background: #fcfcfc;\n }\n\n .dijitSplitterH {\n .dijitSplitterThumb {\n top: 2px;\n width: 19px;\n height: 1px;\n background: #b0b0b0;\n }\n }\n\n .dijitSplitterV {\n .dijitSplitterThumb {\n left: 2px;\n width: 1px;\n height: 19px;\n background: #b0b0b0;\n }\n }\n\n .dijitSplitContainer-child,\n .dijitBorderContainer-child {\n border: 1px solid #cccccc;\n }\n\n .dijitBorderContainer-dijitTabContainerTop,\n .dijitBorderContainer-dijitTabContainerBottom,\n .dijitBorderContainer-dijitTabContainerLeft,\n .dijitBorderContainer-dijitTabContainerRight {\n border: none;\n }\n\n .dijitBorderContainer-dijitBorderContainer {\n padding: 0;\n border: none;\n }\n\n .dijitSplitterActive {\n /* For IE8 and earlier */\n margin: 0;\n opacity: 0.6;\n background-color: #aaaaaa;\n background-image: none;\n font-size: 1px;\n }\n\n .dijitSplitContainer-dijitContentPane,\n .dijitBorderContainer-dijitContentPane {\n padding: 8px;\n background-color: #ffffff;\n }\n }\n\n /*\n * Dijit Menu Popup\n *\n * Used in datepickers and calendar widgets\n */\n\n .dijitMenuPopup {\n margin-top: 8px;\n\n .dijitMenu {\n display: block;\n width: 200px !important;\n margin-top: 0; // No top margin because there is no parent with margin bottom\n padding: 12px 8px;\n border-radius: 3px;\n background: $brand-inverse;\n\n &:after {\n position: absolute;\n bottom: 100%;\n left: 20px;\n width: 0;\n height: 0;\n margin-left: -8px;\n content: \" \";\n pointer-events: none;\n border: medium solid transparent;\n border-width: 8px;\n border-bottom-color: $brand-inverse;\n }\n\n // Menu item\n .dijitMenuItem {\n background: transparent;\n\n .dijitMenuItemLabel {\n display: block;\n overflow: hidden;\n width: 180px !important;\n padding: 8px;\n text-overflow: ellipsis;\n color: #ffffff;\n border-radius: 3px;\n }\n\n // Hover\n &.dijitMenuItemHover {\n background: none;\n\n .dijitMenuItemLabel {\n background: $brand-primary;\n }\n }\n }\n\n // New label\n .tg_newlabelmenuitem {\n .dijitMenuItemLabel {\n font-weight: $font-weight-bold;\n }\n }\n\n // Seperator\n .dijitMenuSeparator {\n td {\n padding: 0;\n border-bottom-width: 3px;\n }\n\n .dijitMenuSeparatorIconCell {\n > div {\n margin: 0; //override dijit styling\n }\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n$default-android-color: #6fbeb5;\n$default-ios-color: rgb(100, 189, 99);\n\n@mixin bootstrap-style-ios($brand-style) {\n border-color: $brand-style;\n background-color: $brand-style;\n box-shadow: $brand-style 0 0 0 16px inset;\n}\n\n@mixin bootstrap-style-android($brand-style) {\n background-color: lighten($brand-style, 10%);\n}\n\n@mixin style($brand-key, $brand-variable) {\n div.widget-switch-brand-#{$brand-key} {\n .widget-switch {\n .widget-switch-btn-wrapper {\n &.checked {\n @include bootstrap-style-ios($brand-variable);\n }\n }\n }\n &.android {\n .widget-switch {\n .widget-switch-btn-wrapper {\n &.checked {\n @include bootstrap-style-android($brand-variable);\n\n .widget-switch-btn {\n background: $brand-variable;\n }\n }\n }\n }\n }\n }\n}\n\n// maintained for backwards compatibility prior to Switch 3.0.0.\n@mixin ios {\n .widget-switch-btn-wrapper {\n &.checked {\n &.widget-switch-btn-wrapper-default {\n @include bootstrap-style-ios($default-ios-color);\n }\n\n &.widget-switch-btn-wrapper-success {\n @include bootstrap-style-ios($brand-success);\n }\n\n &.widget-switch-btn-wrapper-info {\n @include bootstrap-style-ios($brand-info);\n }\n\n &.widget-switch-btn-wrapper-primary {\n @include bootstrap-style-ios($brand-primary);\n }\n\n &.widget-switch-btn-wrapper-warning {\n @include bootstrap-style-ios($brand-warning);\n }\n\n &.widget-switch-btn-wrapper-danger {\n @include bootstrap-style-ios($brand-danger);\n }\n\n &.widget-switch-btn-wrapper-inverse {\n @include bootstrap-style-ios($brand-inverse);\n }\n }\n }\n}\n\n// maintained for backwards compatibility prior to Switch 3.0.0.\n@mixin android {\n .widget-switch-btn-wrapper {\n &.checked {\n &.widget-switch-btn-wrapper-default {\n @include bootstrap-style-android($default-android-color);\n\n .widget-switch-btn {\n background: $default-android-color;\n }\n }\n\n &.widget-switch-btn-wrapper-success {\n @include bootstrap-style-android($brand-success);\n\n .widget-switch-btn {\n background: $brand-success;\n }\n }\n\n &.widget-switch-btn-wrapper-info {\n @include bootstrap-style-android($brand-info);\n\n .widget-switch-btn {\n background: $brand-info;\n }\n }\n\n &.widget-switch-btn-wrapper-primary {\n @include bootstrap-style-android($brand-primary);\n\n .widget-switch-btn {\n background: $brand-primary;\n }\n }\n\n &.widget-switch-btn-wrapper-warning {\n @include bootstrap-style-android($brand-warning);\n\n .widget-switch-btn {\n background: $brand-warning;\n }\n }\n\n &.widget-switch-btn-wrapper-danger {\n @include bootstrap-style-android($brand-danger);\n\n .widget-switch-btn {\n background: $brand-danger;\n }\n }\n\n &.widget-switch-btn-wrapper-inverse {\n @include bootstrap-style-android($brand-inverse);\n\n .widget-switch-btn {\n background: $brand-inverse;\n }\n }\n }\n }\n}\n\n@mixin switch() {\n .widget-switch-btn-wrapper {\n &:focus {\n outline: 1px solid $brand-primary;\n }\n }\n\n @include style(\"primary\", $brand-primary);\n @include style(\"secondary\", $brand-default);\n @include style(\"success\", $brand-success);\n @include style(\"warning\", $brand-warning);\n @include style(\"danger\", $brand-danger);\n\n // below is maintained for backwards compatibility prior to Switch 3.0.0.\n div {\n &.widget-switch {\n &.iOS {\n @include ios;\n }\n\n &.android {\n @include android;\n }\n\n &.auto {\n @include ios;\n }\n }\n }\n\n html {\n div {\n &.dj_android {\n .widget-switch {\n &.auto {\n @include android;\n }\n }\n }\n\n &.dj_ios {\n .widget-switch {\n &.auto {\n @include ios;\n }\n }\n }\n }\n }\n}\n","/* ==========================================================================\n Atlas layout\n\n The core stucture of all atlas layouts\n========================================================================== */\n@mixin layout-atlas() {\n .layout-atlas {\n // Toggle button\n .toggle-btn > img,\n .toggle-btn > .glyphicon {\n margin: 0;\n }\n\n .mx-scrollcontainer-open {\n .expand-btn > img {\n transform: rotate(180deg);\n }\n }\n\n // Sidebar\n .region-sidebar {\n background-color: $navsidebar-bg;\n z-index: 101;\n box-shadow: 0 0 4px rgb(0 0 0 / 14%), 2px 4px 8px rgb(0 0 0 / 28%);\n\n .mx-scrollcontainer-wrapper {\n display: flex;\n flex-direction: column;\n padding: $spacing-small 0;\n }\n\n .mx-navigationtree .navbar-inner > ul > li > a {\n padding: $spacing-medium;\n\n .glyphicon {\n margin-right: $spacing-small;\n }\n }\n\n .sidebar-heading {\n background: $navsidebar-sub-bg;\n }\n\n .toggle-btn {\n margin-right: $spacing-small;\n border-color: transparent;\n border-radius: 0;\n background: transparent;\n padding: $spacing-medium;\n }\n }\n\n // Topbar\n .region-topbar {\n position: relative;\n z-index: 2; // Show dropshadow\n min-height: $topbar-minimalheight;\n background-color: $navtopbar-bg;\n\n // Topbar Content\n .topbar-content {\n display: flex;\n align-items: center;\n min-height: $topbar-minimalheight;\n }\n\n // Toggle btn\n .toggle-btn {\n padding: 0;\n margin-right: $spacing-medium;\n border-color: transparent;\n border-radius: 0;\n background: transparent;\n }\n\n // For your company, product, or project name\n .navbar-brand {\n display: inline-block;\n float: none; // reset bootstrap\n height: auto;\n padding: 0;\n line-height: inherit;\n font-size: 16px;\n margin-right: $spacing-small;\n\n img {\n display: inline-block;\n margin-right: $spacing-small;\n @if $brand-logo !=false {\n width: 0;\n height: 0;\n padding: ($brand-logo-height / 2) ($brand-logo-width / 2);\n background-image: url($brand-logo);\n background-repeat: no-repeat;\n background-position: left center;\n background-size: $brand-logo-width;\n } @else {\n width: auto;\n height: $brand-logo-height;\n }\n }\n\n a {\n margin-left: $spacing-small;\n color: $navbar-brand-name;\n font-size: 20px;\n\n &:hover,\n &:focus {\n text-decoration: none;\n }\n }\n }\n\n .mx-navbar {\n display: inline-flex;\n vertical-align: middle;\n background: transparent;\n justify-content: center;\n align-items: center;\n\n & > .mx-navbar-item {\n & > a {\n margin-top: 5px;\n padding: 0 20px;\n }\n }\n }\n }\n\n .mx-scrollcontainer-slide {\n &:not(.mx-scrollcontainer-open) > .region-sidebar {\n overflow: hidden;\n }\n }\n }\n}\n","/* ==========================================================================\n Atlas layout\n\n Extra styling for phone layouts\n========================================================================== */\n@mixin layout-atlas-phone() {\n .layout-atlas-phone {\n .region-topbar {\n min-height: $m-header-height;\n border-style: none;\n background-color: $m-header-bg;\n\n &::before {\n display: none;\n }\n }\n\n .region-sidebar {\n .mx-navigationtree .navbar-inner > ul > li > a .glyphicon {\n margin-right: $spacing-medium;\n }\n }\n }\n}\n","/* ==========================================================================\n Atlas layout\n\n Extra styling for responsive layouts\n========================================================================== */\n@mixin layout-atlas-responsive() {\n $sidebar-icon-height: 52px;\n $sidebar-icon-width: 52px;\n\n .layout-atlas-responsive,\n .layout-atlas-responsive-default {\n @media (min-width: $screen-md) {\n .mx-scrollcontainer-shrink:not(.mx-scrollcontainer-open) > .region-sidebar,\n .mx-scrollcontainer-push:not(.mx-scrollcontainer-open) > .region-sidebar,\n .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open) > .region-sidebar {\n width: $navsidebar-width-closed !important;\n\n .mx-scrollcontainer-wrapper > .mx-navigationtree ul li {\n &.mx-navigationtree-has-items a {\n white-space: nowrap;\n }\n\n &.mx-navigationtree-has-items:hover > ul {\n position: absolute;\n z-index: 100;\n top: 0;\n bottom: 0;\n left: $sidebar-icon-width;\n display: block;\n min-width: auto;\n padding: $spacing-small 0;\n\n & > li.mx-navigationtree-has-items:hover > ul {\n left: 100%;\n }\n }\n\n &.mx-navigationtree-collapsed,\n &.mx-navigationtree-has-items {\n ul {\n display: none;\n }\n }\n }\n }\n\n .widget-sidebar:not(.widget-sidebar-expanded) {\n .mx-navigationtree ul li {\n &.mx-navigationtree-has-items:hover {\n ul {\n position: absolute;\n z-index: 100;\n top: 0;\n bottom: 0;\n left: $sidebar-icon-width;\n display: block;\n overflow-y: auto;\n min-width: auto;\n padding: $spacing-small 0;\n }\n }\n\n &.mx-navigationtree-collapsed,\n &.mx-navigationtree-has-items {\n ul {\n display: none;\n }\n }\n }\n }\n }\n\n .mx-scrollcontainer-slide {\n &:not(.mx-scrollcontainer-open) > .region-sidebar {\n overflow: hidden;\n }\n\n &.mx-scrollcontainer-open > .region-sidebar {\n width: $navsidebar-width-open !important;\n\n & > .mx-scrollcontainer-wrapper {\n position: relative;\n }\n }\n\n .region-sidebar > .mx-scrollcontainer-wrapper {\n z-index: 2;\n left: 0 !important;\n background-color: inherit;\n }\n }\n\n // Push aside for mobile\n @media (max-width: $screen-sm-max) {\n .mx-scrollcontainer-open:not(.mx-scrollcontainer-slide) {\n width: 1100px;\n }\n\n .mx-scrollcontainer-slide .toggle-btn {\n display: inline-block !important;\n }\n }\n\n // Sidebar\n .region-sidebar {\n .toggle-btn {\n width: $sidebar-icon-width;\n border-color: transparent;\n border-radius: 0;\n background: transparent;\n }\n\n .mx-scrollcontainer-wrapper {\n .toggle-btn-wrapper {\n display: flex;\n padding: $spacing-small;\n align-items: center;\n min-height: calc(#{$topbar-minimalheight} + 4px);\n background: $navsidebar-sub-bg;\n }\n\n .toggle-btn {\n padding: $spacing-medium;\n\n img {\n width: 24px;\n height: 24px;\n }\n }\n\n .toggle-text {\n color: #fff;\n font-weight: bold;\n }\n\n & > .mx-navigationtree .navbar-inner > ul > li {\n & > a {\n height: $sidebar-icon-height;\n padding: $spacing-small 0;\n white-space: nowrap;\n overflow: hidden;\n // Glyph icon\n .glyphicon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: $sidebar-icon-width;\n height: $sidebar-icon-height;\n padding: $spacing-small $spacing-medium;\n border-radius: $border-radius-default;\n }\n }\n }\n }\n }\n\n // Topbar\n .region-topbar {\n padding: 0 $spacing-small;\n\n .toggle-btn {\n padding: 0;\n border-color: transparent;\n border-radius: 0;\n background: transparent;\n }\n }\n }\n\n // Topbar variant\n .layout-atlas-responsive-topbar {\n .region-topbar {\n padding: 0 $spacing-medium;\n @media (max-width: $screen-sm-max) {\n padding: 0 $spacing-small;\n }\n }\n }\n\n // Fix Safari issue of sidebar disappearing\n .profile-tablet {\n .mx-scrollcontainer:not(.mx-scrollcontainer-open) > .region-sidebar {\n overflow-y: hidden;\n\n .mx-scrollcontainer-wrapper {\n overflow: visible;\n }\n }\n }\n}\n","/* ==========================================================================\n Atlas layout\n\n Extra styling for tablet layouts\n========================================================================== */\n@mixin layout-atlas-tablet() {\n .layout-atlas-tablet {\n .region-topbar {\n min-height: $m-header-height;\n border-style: none;\n background-color: $m-header-bg;\n\n &::before {\n display: none;\n }\n }\n\n .region-sidebar {\n .mx-navigationtree .navbar-inner > ul > li > a .glyphicon {\n margin-right: $spacing-medium;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Alerts\n\n Default Bootstrap Alert boxes. Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages\n========================================================================== */\n\n.alert {\n margin-top: 0;\n padding: $spacing-medium;\n border: 1px solid;\n border-radius: $border-radius-default;\n padding: $spacing-medium;\n}\n\n.alert-icon {\n font-size: $font-size-h3;\n}\n\n.alert-title {\n color: inherit;\n}\n\n.alert-description {\n color: inherit;\n}\n\n//Variations\n\n.alert-primary,\n.alert {\n color: $alert-primary-color;\n border-color: $alert-primary-border-color;\n background-color: $alert-primary-bg;\n}\n\n.alert-secondary {\n color: $alert-secondary-color;\n border-color: $alert-secondary-border-color;\n background-color: $alert-secondary-bg;\n}\n\n// Semantic variations\n.alert-success {\n color: $alert-success-color;\n border-color: $alert-success-border-color;\n background-color: $alert-success-bg;\n}\n\n.alert-warning {\n color: $alert-warning-color;\n border-color: $alert-warning-border-color;\n background-color: $alert-warning-bg;\n}\n\n.alert-danger {\n color: $alert-danger-color;\n border-color: $alert-danger-border-color;\n background-color: $alert-danger-bg;\n}\n\n//== State\n//## Styling when component is in certain state\n//-------------------------------------------------------------------------------------------------------------------//\n.has-error .alert {\n margin-top: $spacing-small;\n margin-bottom: 0;\n}\n","/* ==========================================================================\n Breadcrumbs\n\n========================================================================== */\n.breadcrumb {\n //reset\n margin: 0;\n padding: 0;\n border-radius: 0;\n background-color: transparent;\n font-size: $font-size-default;\n margin-bottom: $spacing-large;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.breadcrumb-item {\n display: inline-block;\n margin: 0;\n &:last-child {\n color: $font-color-default;\n a {\n text-decoration: none;\n }\n }\n}\n.breadcrumb-item + .breadcrumb-item {\n &::before {\n display: inline-block;\n padding-right: $spacing-small;\n padding-left: $spacing-small;\n content: \"/\";\n color: $gray-light;\n }\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.breadcrumb-large {\n font-size: $font-size-h3;\n}\n.breadcrumb-underline {\n padding-bottom: $spacing-medium;\n border-bottom: 1px solid $border-color-default;\n}\n","/* ==========================================================================\n Cards\n\n========================================================================== */\n.card {\n border: 0;\n border-radius: $border-radius-default;\n background-color: #ffffff;\n overflow: hidden;\n position: relative;\n padding: $spacing-large;\n margin-bottom: $spacing-large;\n}\n\n//== Card components\n//-------------------------------------------------------------------------------------------------------------------//\n.card-body {\n padding: $spacing-large;\n}\n\n.card-overlay {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n background: rgba(0, 0, 0, 0.6);\n background: linear-gradient(\n to bottom,\n rgba(255, 255, 255, 0) 0%,\n rgba(250, 250, 250, 0) 8%,\n rgba(0, 0, 0, 0.99) 121%,\n #000 100%\n );\n padding: $spacing-large;\n}\n\n.card-title {\n}\n\n.card-image {\n width: 100%;\n height: auto;\n}\n\n.card-supportingtext {\n}\n\n.card-action {\n}\n\n.card-icon {\n font-size: $font-size-h1;\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.card-with-image {\n overflow: hidden;\n}\n\n.card-with-background {\n position: relative;\n}\n","/* ==========================================================================\n Chats\n\n========================================================================== */\n.chat {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: $bg-color-secondary;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.chat-content {\n display: flex;\n overflow: auto;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n .chat-list {\n position: relative;\n overflow: auto;\n\n ul {\n display: flex;\n flex-direction: column-reverse;\n margin-bottom: $m-spacing-large;\n }\n\n li {\n padding: 15px 30px;\n animation: fadeIn 0.2s;\n background-color: transparent;\n animation-fill-mode: both;\n\n &,\n &:last-child {\n border: 0;\n }\n }\n\n .mx-listview-loadMore {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n display: block;\n width: 50%;\n margin: 15px auto;\n color: #ffffff;\n background-color: $brand-primary;\n box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.05);\n }\n }\n}\n\n.chat-message {\n display: flex;\n}\n\n.chat-avatar {\n margin: 0 20px 0 0;\n border-radius: 50%;\n}\n\n.chat-message-content {\n display: inline-flex;\n flex-direction: column;\n}\n\n.chat-message-balloon {\n position: relative;\n display: flex;\n flex-direction: column;\n padding: 10px 15px;\n border-radius: 5px;\n background-color: $bg-color;\n\n &::after {\n position: absolute;\n top: 10px;\n right: 100%;\n width: 0;\n height: 0;\n content: \"\";\n border: 10px solid transparent;\n border-top: 0;\n border-right-color: $bg-color;\n border-left: 0;\n }\n}\n\n.chat-message-time {\n padding-top: 2px;\n\n .form-control-static {\n border: 0;\n }\n}\n\n.chat-footer {\n z-index: 1;\n padding: $m-spacing-large;\n background-color: $bg-color;\n box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.05);\n}\n\n.chat-input {\n display: flex;\n\n .chat-textbox {\n flex: 1;\n margin-right: $spacing-large;\n margin-bottom: 0;\n\n .form-control {\n border: 0;\n }\n }\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.chat-message-self {\n justify-content: flex-end;\n\n .chat-avatar {\n margin: 0 0 0 20px;\n }\n\n .chat-message-balloon {\n background-color: $color-primary-lighter;\n\n &::after {\n left: 100%;\n border: 10px solid transparent;\n border-top: 0;\n border-right: 0;\n border-left-color: $color-primary-lighter;\n }\n }\n\n .chat-message-time {\n text-align: right;\n }\n}\n","/* ==========================================================================\n Control Group\n \n A group of buttons next to eachother\n========================================================================== */\n.controlgroup {\n .btn,\n .btn-group {\n margin-right: $spacing-small;\n margin-bottom: $spacing-small;\n\n &:last-child {\n margin-right: 0;\n }\n .btn {\n margin-right: 0;\n margin-bottom: 0;\n }\n }\n .btn-group {\n .btn + .btn {\n margin-left: -1px;\n }\n }\n}\n","/* ==========================================================================\n Full page blocks\n\n Blocks that take up the full width and height\n========================================================================== */\n\n.fullpageblock {\n position: relative;\n height: 100%;\n min-height: 100%;\n\n // Helper to make it fullheight\n .fullheight {\n height: 100% !important;\n\n & > .mx-dataview-content {\n height: inherit !important;\n }\n }\n\n .fullpage-overlay {\n position: absolute;\n z-index: 10;\n bottom: 0;\n left: 0;\n width: 100%;\n }\n}\n","/* ==========================================================================\n Pageheader\n========================================================================== */\n\n//== Default\n//-------------------------------------------------------------------------------------------------------------------//\n.pageheader {\n width: 100%;\n margin-bottom: $spacing-large;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.pageheader-title {\n}\n\n.pageheader-subtitle {\n}\n\n.pageheader-image {\n}\n","/* ==========================================================================\n Hero header\n\n========================================================================== */\n\n.headerhero {\n width: 100%;\n min-height: $header-min-height;\n background-color: $header-bg-color;\n position: relative;\n overflow: hidden;\n padding: $spacing-large;\n margin-bottom: $spacing-large;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.headerhero-title {\n color: $header-text-color;\n}\n\n.headerhero-subtitle {\n color: $header-text-color;\n}\n\n.headerhero-backgroundimage {\n position: absolute;\n z-index: 0;\n top: 0;\n height: 100%;\n width: 100%;\n filter: $header-bgimage-filter;\n}\n\n.btn.headerhero-action {\n color: $header-text-color;\n}\n\n.heroheader-overlay {\n z-index: 1;\n}\n","/* ==========================================================================\n Form Block\n\n Used in default forms\n========================================================================== */\n.formblock {\n width: 100%;\n margin-bottom: $spacing-large;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.form-title {\n}\n","/* ==========================================================================\n Master Detail\n\n A list with a listening dataview\n========================================================================== */\n.masterdetail {\n background: #fff;\n .masterdetail-master {\n border-right: 1px solid $border-color-default;\n }\n .masterdetail-detail {\n padding: $spacing-large;\n }\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.masterdetail-vertical {\n background: #fff;\n .masterdetail-master {\n border-bottom: 1px solid $border-color-default;\n }\n .masterdetail-detail {\n padding: $spacing-large;\n }\n}\n","/* ==========================================================================\n User profile blocks\n -\n========================================================================== */\n.userprofile {\n .userprofile-img {\n }\n .userprofile-title {\n }\n .userprofile-subtitle {\n }\n}\n","//Wizard\n.wizard {\n display: flex;\n justify-content: space-between;\n width: 100%;\n margin-bottom: $spacing-large;\n}\n\n//Wizard step\n.wizard-step {\n position: relative;\n width: 100%;\n display: flex;\n align-items: center;\n}\n\n//Wizard step number\n.wizard-step-number {\n position: relative;\n z-index: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n width: $wizard-step-number-size;\n height: $wizard-step-number-size;\n color: $wizard-default-step-color;\n font-size: $wizard-step-number-font-size;\n border-radius: 50%;\n background-color: $wizard-default-bg;\n border-color: $wizard-default-border-color;\n}\n\n//Wizard step text\n.wizard-step-text {\n overflow: hidden;\n white-space: nowrap;\n text-decoration: none;\n text-overflow: ellipsis;\n color: $wizard-default-step-color;\n}\n\n//Wizard circle\n.wizard-circle .wizard-step {\n flex-direction: column;\n &::before {\n position: absolute;\n z-index: 0;\n top: $wizard-step-number-size / 2;\n display: block;\n width: 100%;\n height: 2px;\n content: \"\";\n background-color: $wizard-default-border-color;\n }\n}\n\n//Wizard arrow\n.wizard-arrow .wizard-step {\n height: $wizard-step-height;\n margin-left: calc(0px - (#{$wizard-step-height} / 2));\n padding-left: ($wizard-step-height / 2);\n background-color: $wizard-default-bg;\n justify-content: flex-start;\n border: 1px solid $wizard-default-border-color;\n &::before,\n &::after {\n position: absolute;\n z-index: 1;\n left: 100%;\n margin-left: calc(0px - ((#{$wizard-step-height} / 2) - 1px));\n content: \" \";\n border-style: solid;\n border-color: transparent;\n }\n &::after {\n top: 0;\n border-width: calc((#{$wizard-step-height} / 2) - 1px);\n border-left-color: $wizard-default-bg;\n }\n &::before {\n top: -1px;\n border-width: $wizard-step-height / 2;\n border-left-color: $wizard-default-border-color;\n }\n\n &:first-child {\n margin-left: 0;\n padding-left: 0;\n border-top-left-radius: $border-radius-default;\n border-bottom-left-radius: $border-radius-default;\n }\n\n &:last-child {\n border-top-right-radius: $border-radius-default;\n border-bottom-right-radius: $border-radius-default;\n &::before,\n &::after {\n display: none;\n }\n }\n}\n\n//Wizard states\n.wizard-circle .wizard-step-active {\n .wizard-step-number {\n color: $wizard-active-color;\n border-color: $wizard-active-border-color;\n background-color: $wizard-active-bg;\n }\n .wizard-step-text {\n color: $wizard-active-step-color;\n }\n}\n.wizard-circle .wizard-step-visited {\n .wizard-step-number {\n color: $wizard-visited-color;\n border-color: $wizard-visited-border-color;\n background-color: $wizard-visited-bg;\n }\n .wizard-step-text {\n color: $wizard-visited-step-color;\n }\n}\n\n.wizard-arrow .wizard-step-active {\n background-color: $wizard-active-bg;\n .wizard-step-text {\n color: $wizard-active-color;\n }\n &::after {\n border-left-color: $wizard-active-bg;\n }\n}\n\n.wizard-arrow .wizard-step-visited {\n .wizard-step-text {\n color: $link-color;\n }\n}\n",".login-formblock {\n display: flex;\n flex-direction: column;\n}\n\n.login-form {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n",".listtab-tabs.mx-tabcontainer {\n background: $bg-color-secondary;\n .mx-tabcontainer-tabs {\n background: $brand-primary;\n margin-bottom: 0;\n li {\n > a {\n color: #fff;\n opacity: 0.6;\n &:hover,\n &:focus {\n color: #fff;\n }\n }\n &.active {\n > a {\n opacity: 1;\n color: #fff;\n border-color: #fff;\n &:hover,\n &:focus {\n color: #fff;\n border-color: #fff;\n }\n }\n }\n }\n }\n}\n",".springboard-grid {\n display: flex;\n flex-direction: column;\n .row {\n flex: 1;\n .col {\n display: flex;\n }\n }\n}\n\n.springboard-header {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n\n.springboard-card {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n",".statuspage-section {\n display: flex;\n flex-direction: column;\n}\n\n.statuspage-content {\n flex: 1;\n}\n\n.statuspage-icon {\n color: #fff;\n}\n\n.statuspage-subtitle {\n opacity: 0.6;\n}\n\n.statuspage-buttons {\n}\n","$background-color: #fff !default;\n$icon-color: #606671 !default;\n$icon-size: 14px !default;\n$pagination-button-color: #3b4251 !default;\n$pagination-caption-color: #0a1325 !default;\n$dragging-color-effect: rgba(10, 19, 37, 0.8) !default;\n$dragging-effect-size: 4px;\n\n$grid-bg-striped: #fafafb !default;\n$grid-bg-hover: #f5f6f6 !default;\n$spacing-small: 8px !default;\n$spacing-medium: 16px !default;\n$spacing-large: 24px !default;\n$grid-border-color: #ced0d3 !default;\n\n$brand-primary: #264ae5 !default;\n$brand-light: #e6eaff !default;\n$grid-selected-row-background: $brand-light;\n\n.table {\n position: relative;\n border-width: 0;\n background-color: $background-color;\n\n /* Table Content */\n .table-content {\n display: grid;\n position: relative;\n }\n\n /* Pseudo Row, to target this object please use .tr > .td or .tr > div */\n .tr {\n display: contents;\n }\n\n /* Column Header */\n .th {\n display: flex;\n align-items: flex-start;\n font-weight: 600;\n background-color: $background-color;\n border-width: 0;\n border-color: $grid-border-color;\n padding: $spacing-medium;\n top: 0;\n min-width: 0;\n\n /* Clickable column header (Sortable) */\n .clickable {\n cursor: pointer;\n }\n\n /* Column resizer when column is resizable */\n .column-resizer {\n padding: 0 4px;\n align-self: stretch;\n cursor: col-resize;\n\n &:hover .column-resizer-bar {\n background-color: $brand-primary;\n }\n &:active .column-resizer-bar {\n background-color: $brand-primary;\n }\n\n .column-resizer-bar {\n height: 100%;\n width: 4px;\n }\n }\n\n /* Content of the column header */\n .column-container {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n align-self: stretch;\n min-width: 0;\n padding-left: $dragging-effect-size;\n margin-left: -$dragging-effect-size;\n /* Styles while dragging another column */\n &.dragging {\n border-left: $dragging-effect-size solid $dragging-color-effect;\n padding-left: 0;\n }\n\n &:not(:has(.filter)) {\n .column-header {\n height: 100%;\n }\n }\n }\n\n /* Header text */\n .column-header {\n margin: 1px 1px 1px -$dragging-effect-size + 1px;\n\n display: flex;\n align-items: baseline;\n\n span {\n min-width: 0;\n flex-grow: 1;\n text-overflow: ellipsis;\n overflow: hidden;\n text-wrap: nowrap;\n align-self: center;\n }\n\n svg {\n margin-left: 8px;\n flex: 0 0 $icon-size;\n color: $icon-color;\n height: $icon-size;\n align-self: center;\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n\n &:focus-visible {\n outline: 1px solid $brand-primary;\n }\n }\n\n /* Header filter */\n .filter {\n display: flex;\n margin-top: 4px;\n input:not([type=\"checkbox\"]) {\n font-weight: normal;\n flex-grow: 1;\n width: 100%;\n }\n > .form-group {\n margin-bottom: 0;\n }\n > .form-control {\n flex: unset;\n min-width: unset;\n }\n }\n }\n\n /* If Column Header has filter */\n &:has(.th .column-container .filter:not(:empty)) {\n .th {\n &.column-selector {\n padding: $spacing-medium 0;\n }\n /*adjust filter-selector icon to be mid-bottom aligned */\n .column-selector-content {\n align-self: flex-end;\n margin-bottom: 3px;\n }\n\n /*adjust checkbox toggle to be mid-bottom aligned */\n &.widget-datagrid-col-select {\n align-items: flex-end;\n padding-bottom: calc($spacing-medium + 11px);\n }\n }\n }\n\n /* Column selector for hidable columns */\n .column-selector {\n padding: 0;\n\n /* Column content */\n .column-selector-content {\n align-self: center;\n padding-right: $spacing-medium;\n /* Button containing the eye icon */\n .column-selector-button {\n $icon-margin: 7px;\n /* 2px as path of icon's path is a bit bigger than outer svg */\n $icon-slack-size: 2px;\n\n padding: 0;\n margin: 0;\n\n height: ($icon-size + $icon-margin * 2 + $icon-slack-size);\n width: ($icon-size + $icon-margin * 2 + $icon-slack-size);\n\n svg {\n margin: $icon-margin;\n }\n }\n\n /* List of columns to select */\n .column-selectors {\n position: absolute;\n right: 0;\n margin: 8px;\n padding: 0 16px;\n background: $background-color;\n z-index: 102;\n border-radius: 3px;\n border: 1px solid transparent;\n list-style-type: none;\n -webkit-box-shadow: 0 2px 20px 1px rgba(32, 43, 54, 0.08);\n -moz-box-shadow: 0 2px 20px 1px rgba(32, 43, 54, 0.08);\n box-shadow: 0 2px 20px 1px rgba(32, 43, 54, 0.08);\n\n li {\n display: flex;\n align-items: center;\n\n label {\n margin: 8px;\n font-weight: normal;\n white-space: nowrap;\n }\n }\n }\n }\n }\n\n /* Column content */\n .td {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: $spacing-medium;\n border-style: solid;\n border-width: 0;\n border-color: $grid-border-color;\n border-bottom-width: 1px;\n min-width: 0;\n\n &.td-borders {\n border-top-width: 1px;\n border-top-style: solid;\n }\n\n &:focus {\n outline: none;\n }\n\n > .td-text {\n white-space: nowrap;\n word-break: break-word;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n > .td-custom-content {\n flex-grow: 1;\n }\n\n > .empty-placeholder {\n width: 100%;\n }\n\n &.wrap-text {\n min-height: 0;\n min-width: 0;\n\n > .td-text,\n > .mx-text {\n white-space: normal;\n }\n }\n }\n\n & *:focus {\n outline: 0;\n }\n\n .align-column-left {\n justify-content: flex-start;\n }\n\n .align-column-center {\n justify-content: center;\n }\n\n .align-column-right {\n justify-content: flex-end;\n }\n}\n\n.pagination-bar {\n display: flex;\n justify-content: flex-end;\n white-space: nowrap;\n align-items: baseline;\n margin: 16px;\n color: $pagination-caption-color;\n\n .paging-status {\n padding: 0 8px 8px;\n }\n\n .pagination-button {\n padding: 6px;\n color: $pagination-button-color;\n border-color: transparent;\n background-color: transparent;\n\n &:hover {\n color: $brand-primary;\n border-color: transparent;\n background-color: transparent;\n }\n\n &:disabled {\n border-color: transparent;\n background-color: transparent;\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n\n &:focus-visible {\n outline: 1px solid $brand-primary;\n }\n }\n .pagination-icon {\n position: relative;\n top: 4px;\n display: inline-block;\n width: 20px;\n height: 20px;\n }\n}\n\n/* Column selector for hidable columns outside DG context */\n/* List of columns to select */\n.column-selectors {\n position: absolute;\n right: 0;\n margin: 8px 0;\n padding: 0 16px;\n background: $background-color;\n z-index: 102;\n border-radius: 3px;\n border: 1px solid transparent;\n list-style-type: none;\n -webkit-box-shadow: 0 2px 20px 1px rgba(32, 43, 54, 0.08);\n -moz-box-shadow: 0 2px 20px 1px rgba(32, 43, 54, 0.08);\n box-shadow: 0 2px 20px 1px rgba(32, 43, 54, 0.08);\n\n &.overflow {\n height: 250px;\n overflow-y: scroll;\n }\n\n li {\n display: flex;\n align-items: center;\n cursor: pointer;\n\n label {\n margin: 8px;\n font-weight: normal;\n white-space: nowrap;\n }\n }\n}\n\n.widget-datagrid {\n &.widget-datagrid-selection-method-click {\n .tr.tr-selected .td {\n background-color: $grid-selected-row-background;\n }\n }\n}\n","/**\n Classes for React Date-Picker font-unit and color adjustments\n*/\n$day-color: #555 !default;\n$day-range-color: #000 !default;\n$day-range-background: #eaeaea !default;\n$outside-month-color: #c8c8c8 !default;\n$text-color: #fff !default;\n$border-color: #d7d7d7 !default;\n\n.react-datepicker {\n font-size: 1em;\n border: 1px solid $border-color;\n}\n\n.react-datepicker-wrapper {\n display: flex;\n flex: 1;\n}\n\n.react-datepicker__input-container {\n display: flex;\n flex: 1;\n}\n\n.react-datepicker__header {\n padding-top: 0.8em;\n background-color: $background-color;\n border-color: transparent;\n}\n\n.react-datepicker__header__dropdown {\n margin: 8px 0 4px 0; //4px due to the header contains 4px already\n}\n\n.react-datepicker__year-dropdown-container {\n margin-left: 8px;\n}\n\n.react-datepicker__month {\n margin: 4px 4px 8px 4px; //4px due to the rows already contains 4px each day\n}\n\n.react-datepicker__month-container {\n font-weight: normal;\n}\n\n.react-datepicker__day-name,\n.react-datepicker__day {\n width: 2em;\n line-height: 2em;\n margin: 4px;\n}\n\n.react-datepicker__day,\n.react-datepicker__day--in-range {\n color: $day-color;\n border-radius: 50%;\n\n &:hover {\n border-radius: 50%;\n color: $brand-primary;\n background-color: $hover-color;\n }\n}\n\n.react-datepicker__day-name {\n color: $brand-primary;\n font-weight: bold;\n}\n\n.react-datepicker__day--outside-month {\n color: $outside-month-color;\n}\n\n.react-datepicker__day--today:not(.react-datepicker__day--in-range),\n.react-datepicker__day--keyboard-selected {\n color: $brand-primary;\n background-color: $hover-color;\n}\n\n.react-datepicker__day--selected,\n.react-datepicker__day--range-start,\n.react-datepicker__day--range-end,\n.react-datepicker__day--in-selecting-range.react-datepicker__day--selecting-range-start {\n background-color: $brand-primary;\n color: $text-color;\n\n &:hover {\n border-radius: 50%;\n background-color: $brand-primary;\n color: $text-color;\n }\n}\n\n.react-datepicker__day--in-range:not(.react-datepicker__day--range-start, .react-datepicker__day--range-end),\n.react-datepicker__day--in-selecting-range:not(\n .react-datepicker__day--in-range,\n .react-datepicker__month-text--in-range,\n .react-datepicker__quarter-text--in-range,\n .react-datepicker__year-text--in-range,\n .react-datepicker__day--selecting-range-start\n ) {\n background-color: $day-range-background;\n color: $day-range-color;\n\n &:hover {\n background-color: $brand-primary;\n color: $text-color;\n }\n}\n\nbutton.react-datepicker__close-icon::after {\n background-color: $brand-primary;\n}\n\n.react-datepicker__current-month {\n font-size: 1em;\n font-weight: normal;\n}\n\n.react-datepicker__navigation {\n top: 1em;\n line-height: 1.7em;\n border: 0.45em solid transparent;\n}\n\n.react-datepicker__navigation--previous {\n border-right-color: #ccc;\n left: 8px;\n border: none;\n}\n\n.react-datepicker__navigation--next {\n border-left-color: #ccc;\n right: 8px;\n border: none;\n}\n\n/**\nSpace between the fields and the popup\n */\n.react-datepicker-popper[data-placement^=\"bottom\"] {\n margin-top: unset;\n padding-top: 0;\n}\n","$hover-color: #f8f8f8 !default;\n$background-color: #fff !default;\n$selected-color: #dadcde !default;\n$border-color: #ced0d3 !default;\n$arrow: \"resources/dropdown-arrow.svg\";\n$item-min-height: 32px;\n\n@import \"date-picker\";\n\n@font-face {\n font-family: \"datagrid-filters\";\n src: url(\"./fonts/datagrid-filters.eot\");\n src: url(\"./fonts/datagrid-filters.eot\") format(\"embedded-opentype\"),\n url(\"./fonts/datagrid-filters.woff2\") format(\"woff2\"), url(\"./fonts/datagrid-filters.woff\") format(\"woff\"),\n url(\"./fonts/datagrid-filters.ttf\") format(\"truetype\"), url(\"./fonts/datagrid-filters.svg\") format(\"svg\");\n font-weight: normal;\n font-style: normal;\n}\n\n.filter-container {\n display: flex;\n flex-direction: row;\n flex-grow: 1;\n\n .filter-input {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n .btn-calendar {\n margin-left: 5px; //Review in atlas, the current date picker is also 5px\n .button-icon {\n width: 18px;\n height: 18px;\n }\n }\n}\n\n.filter-selector {\n padding-left: 0;\n padding-right: 0;\n\n .filter-selector-content {\n height: 100%;\n align-self: flex-end;\n\n .filter-selector-button {\n padding: 8px;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-right: none;\n height: 100%;\n\n &:before {\n justify-content: center;\n width: 20px;\n height: 20px;\n padding-left: 4px; /* The font has spaces in the right side, so to align in the middle we need this */\n }\n }\n\n .filter-selectors {\n position: absolute;\n width: max-content;\n left: 0;\n margin: 0 $spacing-small;\n padding: 0;\n background: $background-color;\n z-index: 102;\n border-radius: 8px;\n list-style-type: none;\n box-shadow: 0 2px 20px 1px rgba(5, 15, 129, 0.05), 0 2px 16px 0 rgba(33, 43, 54, 0.08);\n overflow: hidden;\n z-index: 102;\n\n li {\n display: flex;\n align-items: center;\n font-weight: normal;\n line-height: 32px;\n cursor: pointer;\n\n .filter-label {\n padding-right: 8px;\n }\n\n &.filter-selected {\n background-color: $hover-color;\n color: $brand-primary;\n }\n\n &:hover,\n &:focus {\n background-color: $hover-color;\n }\n }\n }\n }\n}\n\n.filter-selectors {\n padding: 0;\n background: $background-color;\n border-radius: 8px;\n list-style-type: none;\n box-shadow: 0 2px 20px 1px rgba(5, 15, 129, 0.05), 0 2px 16px 0 rgba(33, 43, 54, 0.08);\n overflow: hidden;\n z-index: 102;\n\n li {\n display: flex;\n align-items: center;\n font-weight: normal;\n line-height: 32px;\n cursor: pointer;\n\n .filter-label {\n padding-right: 8px;\n }\n\n &.filter-selected {\n background-color: $hover-color;\n color: $brand-primary;\n }\n\n &:hover,\n &:focus {\n background-color: $hover-color;\n }\n }\n}\n\n.dropdown-list {\n list-style-type: none;\n padding: 0;\n margin-bottom: 0;\n\n li {\n display: flex;\n align-items: center;\n font-weight: normal;\n min-height: $item-min-height;\n cursor: pointer;\n padding: 0 $spacing-small;\n\n .filter-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &.filter-selected {\n background-color: $hover-color;\n color: $brand-primary;\n }\n\n &:hover,\n &:focus {\n background-color: $hover-color;\n }\n\n label {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n margin: 8px;\n font-weight: normal;\n width: calc(100% - 32px);\n }\n }\n}\n\n:not(.dropdown-content) > .dropdown-list {\n background: $background-color;\n border-radius: 8px;\n box-shadow: 0 2px 20px 1px rgba(5, 15, 129, 0.05), 0 2px 16px 0 rgba(33, 43, 54, 0.08);\n max-height: 40vh;\n z-index: 102;\n}\n\n.dropdown-content {\n background: $background-color;\n border-radius: 8px;\n box-shadow: 0 2px 20px 1px rgba(5, 15, 129, 0.05), 0 2px 16px 0 rgba(33, 43, 54, 0.08);\n max-height: 40vh;\n z-index: 140;\n\n &-section + &-section {\n border-top: 1px solid $form-input-border-color;\n }\n}\n\n.dropdown-footer {\n position: sticky;\n bottom: 0;\n background: inherit;\n z-index: 50;\n}\n\n.dropdown-footer-item {\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n padding: 0 $spacing-small;\n min-height: 40px;\n}\n\n.dropdown-loading {\n flex-grow: 1;\n text-align: center;\n}\n\n.dropdown-container {\n flex: 1;\n position: relative;\n\n .dropdown-triggerer {\n caret-color: transparent;\n cursor: pointer;\n\n background-image: url($arrow);\n background-repeat: no-repeat;\n background-position: center;\n background-position-x: right;\n background-position-y: center;\n background-origin: content-box;\n text-overflow: ellipsis;\n width: 100%;\n }\n\n .dropdown-list {\n left: 0;\n margin: 0 $spacing-small;\n padding: 0;\n background: $background-color;\n z-index: 102;\n border-radius: 8px;\n list-style-type: none;\n box-shadow: 0 2px 20px 1px rgba(5, 15, 129, 0.05), 0 2px 16px 0 rgba(33, 43, 54, 0.08);\n overflow-x: hidden;\n max-height: 40vh;\n\n li {\n display: flex;\n align-items: center;\n font-weight: normal;\n min-height: $item-min-height;\n cursor: pointer;\n padding: 0 $spacing-small;\n\n .filter-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &.filter-selected {\n background-color: $hover-color;\n color: $brand-primary;\n }\n\n &:hover,\n &:focus {\n background-color: $hover-color;\n }\n\n label {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n margin: 8px;\n font-weight: normal;\n width: calc(100% - 32px);\n }\n }\n }\n}\n\n/**\nIcons\n */\n\n.filter-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 20px;\n width: 20px;\n margin: 6px 8px;\n font-family: \"datagrid-filters\";\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.button-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: \"datagrid-filters\";\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.contains:before {\n content: \"\\e808\";\n}\n.endsWith:before {\n content: \"\\e806\";\n}\n.equal:before {\n content: \"\\e809\";\n}\n.greater:before {\n content: \"\\e80a\";\n}\n.greaterEqual:before {\n content: \"\\e80b\";\n}\n.notEqual:before {\n content: \"\\e80c\";\n}\n.smaller:before {\n content: \"\\e80d\";\n}\n.smallerEqual:before {\n content: \"\\e80e\";\n}\n.startsWith:before {\n content: \"\\e807\";\n}\n.between:before {\n content: \"\\e900\";\n}\n.empty:before {\n content: \"\\e901\";\n}\n.notEmpty:before {\n content: \"\\e903\";\n}\n\n/**\n* Specific styles for filters inside Data Grid 2\n**/\ndiv:not(.table-compact) > .table {\n .th {\n .filter-selector {\n .filter-selectors {\n margin: 0;\n }\n }\n\n .dropdown-container {\n .dropdown-list {\n margin: 0;\n }\n }\n }\n}\n",".table-compact {\n .th {\n padding: $spacing-small;\n\n .filter-selectors {\n margin: 0 $spacing-small;\n }\n }\n\n &:has(.th .column-container .filter:not(:empty)) {\n .th {\n &.column-selector {\n padding: $spacing-small 0;\n }\n &.widget-datagrid-col-select {\n padding-bottom: calc($spacing-small + 11px);\n }\n }\n }\n\n .td {\n padding: $spacing-small;\n }\n\n .dropdown-container .dropdown-list {\n margin: 0 $spacing-small;\n }\n\n .column-selector {\n /* Column content */\n .column-selector-content {\n padding-right: $spacing-small;\n }\n }\n}\n\n.table-striped {\n .tr:nth-child(odd) > .td {\n background-color: $grid-bg-striped;\n }\n}\n\n.table-hover {\n .tr:hover > .td {\n background-color: $grid-bg-hover;\n }\n}\n\n.table-bordered-all {\n .th,\n .td {\n border-left-width: 1px;\n border-left-style: solid;\n\n // Column for the visibility when a column can be hidden\n &.column-selector {\n border-left-width: 0;\n }\n\n &:last-child,\n &.column-selector {\n border-right-width: 1px;\n border-right-style: solid;\n }\n }\n .th {\n border-top-width: 1px;\n border-top-style: solid;\n }\n\n .td {\n border-bottom-width: 1px;\n border-bottom-style: solid;\n\n &.td-borders {\n border-top-width: 1px;\n }\n }\n}\n\n.table-bordered-horizontal {\n .td {\n border-bottom-width: 1px;\n border-bottom-style: solid;\n\n &.td-borders {\n border-top-width: 1px;\n }\n }\n}\n\n.table-bordered-vertical {\n .th,\n .td {\n border-left-width: 1px;\n border-left-style: solid;\n border-bottom-width: 0;\n\n // Column for the visibility when a column can be hidden\n &.column-selector {\n border-left-width: 0;\n border-bottom-width: 0;\n border-right-width: 1px;\n border-right-style: solid;\n }\n\n &.td-borders {\n border-top-width: 0;\n }\n }\n}\n\n.table-bordered-none {\n .td,\n .th {\n border: 0;\n\n &.column-selector {\n border: 0;\n }\n\n &.td-borders {\n border: 0;\n }\n }\n}\n",".sticky-sentinel {\n &.container-stuck {\n & + .widget-datagrid-grid,\n & + .table {\n .th {\n position: -webkit-sticky; /* Safari */\n position: sticky;\n z-index: 50;\n }\n }\n }\n}\n\n.widget-datagrid-content.infinite-loading {\n overflow-y: auto;\n margin-bottom: 20px;\n}\n\n.table {\n .table-content {\n &.infinite-loading {\n overflow-y: scroll;\n }\n }\n}\n","/* ==========================================================================\n Drop-down sort\n\n Override styles of Drop-down sort widget\n========================================================================== */\n@font-face {\n font-family: \"dropdown-sort\";\n src: url(\"./fonts/dropdown-sort.eot?46260688\");\n src: url(\"./fonts/dropdown-sort.eot?46260688#iefix\") format(\"embedded-opentype\"),\n url(\"./fonts/dropdown-sort.woff2?46260688\") format(\"woff2\"),\n url(\"./fonts/dropdown-sort.woff?46260688\") format(\"woff\"),\n url(\"./fonts/dropdown-sort.ttf?46260688\") format(\"truetype\"),\n url(\"./fonts/dropdown-sort.svg?46260688#dropdown-sort\") format(\"svg\");\n font-weight: normal;\n font-style: normal;\n}\n\n.dropdown-triggerer-wrapper {\n display: flex;\n\n .dropdown-triggerer {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n border-right-width: 0;\n }\n\n .btn-sort {\n padding: $spacing-small;\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n\n font-family: \"dropdown-sort\";\n font-style: normal;\n font-weight: normal;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n\n &.icon-asc:before {\n content: \"\\e802\";\n margin: 2px;\n }\n\n &.icon-desc:before {\n content: \"\\e803\";\n margin: 2px;\n }\n }\n}\n","/* ==========================================================================\n Gallery\n\n Override styles of Gallery widget\n========================================================================== */\n@mixin grid-items($number, $suffix) {\n @for $i from 1 through $number {\n &.widget-gallery-#{$suffix}-#{$i} {\n grid-template-columns: repeat($i, 1fr);\n }\n }\n}\n\n@mixin grid-span($number, $type) {\n @for $i from 1 through $number {\n .widget-gallery-#{$type}-span-#{$i} {\n grid-#{$type}: span $i;\n }\n }\n}\n\n.widget-gallery {\n .widget-gallery-items {\n display: grid;\n grid-gap: $spacing-small;\n\n /*\n Desktop widths\n */\n @media screen and (min-width: $screen-lg) {\n @include grid-items(12, \"lg\");\n }\n\n /*\n Tablet widths\n */\n @media screen and (min-width: $screen-md) and (max-width: ($screen-lg - 1px)) {\n @include grid-items(12, \"md\");\n }\n\n /*\n Phone widths\n */\n @media screen and (max-width: ($screen-md - 1)) {\n @include grid-items(12, \"sm\");\n }\n }\n\n .widget-gallery-clickable {\n cursor: pointer;\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n\n &:focus-visible {\n outline: 1px solid $brand-primary;\n outline-offset: -1px;\n }\n }\n\n &:not(.widget-gallery-disable-selected-items-highlight) {\n .widget-gallery-item.widget-gallery-clickable.widget-gallery-selected {\n background: $brand-light;\n }\n }\n\n .infinite-loading {\n overflow: auto;\n }\n\n .widget-gallery-filter,\n .widget-gallery-empty,\n .widget-gallery-pagination {\n flex: 1;\n }\n\n /**\n Helper classes\n */\n @include grid-span(12, \"column\");\n @include grid-span(12, \"row\");\n}\n\n.widget-gallery-item-button {\n width: inherit;\n}\n","/* ==========================================================================\n Gallery default\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// All borders\n.widget-gallery-bordered-all {\n .widget-gallery-item {\n border: 1px solid $grid-border-color;\n }\n}\n\n// Vertical borders\n.widget-gallery-bordered-vertical {\n .widget-gallery-item {\n border-color: $grid-border-color;\n border-style: solid;\n border-width: 0;\n border-left-width: 1px;\n border-right-width: 1px;\n }\n}\n\n// Horizontal orders\n.widget-gallery-bordered-horizontal {\n .widget-gallery-item {\n border-color: $grid-border-color;\n border-style: solid;\n border-width: 0;\n border-top-width: 1px;\n border-bottom-width: 1px;\n }\n}\n\n// Hover styles\n.widget-gallery-hover {\n .widget-gallery-items {\n .widget-gallery-item:hover {\n background-color: $grid-bg-hover;\n }\n }\n}\n\n// Striped styles\n.widget-gallery-striped {\n .widget-gallery-item:nth-child(odd) {\n background-color: $grid-bg-striped;\n }\n .widget-gallery-item:nth-child(even) {\n background-color: #fff;\n }\n}\n\n// Grid spacing none\n.widget-gallery.widget-gallery-gridgap-none {\n .widget-gallery-items {\n gap: 0;\n }\n}\n\n// Grid spacing small\n.widget-gallery.widget-gallery-gridgap-small {\n .widget-gallery-items {\n gap: $spacing-small;\n }\n}\n\n// Grid spacing medium\n.widget-gallery.widget-gallery-gridgap-medium {\n .widget-gallery-items {\n gap: $spacing-medium;\n }\n}\n\n// Grid spacing large\n.widget-gallery.widget-gallery-gridgap-large {\n .widget-gallery-items {\n gap: $spacing-large;\n }\n}\n\n// Pagination left\n.widget-gallery-pagination-left {\n .widget-gallery-pagination {\n .pagination-bar {\n justify-content: flex-start;\n }\n }\n}\n\n// Pagination center\n.widget-gallery-pagination-center {\n .widget-gallery-pagination {\n .pagination-bar {\n justify-content: center;\n }\n }\n}\n\n.widget-gallery-disable-selected-items-highlight {\n // placeholder\n // this class in needed to disable standard styles of highlighted items\n}\n","input[type=\"checkbox\"].three-state-checkbox {\n position: relative !important; //Remove after mxui merge\n width: 16px;\n height: 16px;\n margin: 0 !important; // Remove after mxui merge\n cursor: pointer;\n -webkit-user-select: none;\n user-select: none;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n transform: translateZ(0);\n\n &:before,\n &:after {\n position: absolute;\n display: block;\n transition: all 0.3s ease;\n }\n\n &:before {\n // Checkbox\n width: 100%;\n height: 100%;\n content: \"\";\n border: 1px solid #e7e7e9;\n border-radius: 4px;\n background-color: transparent;\n }\n\n &:not(:indeterminate):after {\n // Checkmark\n width: 8px;\n height: 4px;\n margin: 5px 4px;\n transform: rotate(-45deg);\n pointer-events: none;\n border: 2px solid #ffffff;\n border-top: 0;\n border-right: 0;\n }\n\n &:indeterminate:after {\n // Checkmark\n width: 8px;\n height: 4px;\n margin: 5px 4px;\n transform: rotate(0deg);\n pointer-events: none;\n border: 0 solid #ffffff;\n border-bottom-width: 2px;\n transition: border 0s;\n }\n\n &:not(:disabled):not(:checked):hover:after {\n content: \"\";\n border-color: #e7e7e9; // color of checkmark on hover\n }\n\n &:indeterminate:before,\n &:checked:before {\n border-color: #264ae5;\n background-color: #264ae5;\n }\n\n &:indeterminate:after,\n &:checked:after {\n content: \"\";\n }\n\n &:disabled:before {\n background-color: #f8f8f8;\n }\n\n &:checked:disabled:before {\n border-color: transparent;\n background-color: rgba(#264ae5, 0.4);\n }\n\n &:disabled:after,\n &:checked:disabled:after {\n border-color: #f8f8f8;\n }\n\n & + .control-label {\n margin-left: 8px;\n }\n}\n",".widget-tree-node {\n width: 100%;\n padding: 0;\n display: flex;\n flex-direction: column;\n\n .widget-tree-node-branch {\n display: block;\n\n &:focus-visible {\n outline: none;\n & > .widget-tree-node-branch-header {\n outline: -webkit-focus-ring-color auto 1px;\n outline: -moz-mac-focusring auto 1px;\n }\n }\n }\n\n .widget-tree-node-branch-header-clickable {\n cursor: pointer;\n }\n\n .widget-tree-node-branch-header {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n margin: 0;\n padding: 8px 0;\n\n svg {\n &.widget-tree-node-branch-header-icon-animated {\n transition: transform 0.2s ease-in-out 50ms;\n }\n &.widget-tree-node-branch-header-icon-collapsed-left {\n transform: rotate(-90deg);\n }\n &.widget-tree-node-branch-header-icon-collapsed-right {\n transform: rotate(90deg);\n }\n }\n\n .widget-tree-node-loading-spinner {\n width: 16px;\n height: 16px;\n animation: spin 2s linear infinite;\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n }\n\n .widget-tree-node-branch-header-reversed {\n flex-direction: row-reverse;\n }\n\n .widget-tree-node-branch-header-value {\n flex: 1;\n font-size: 16px;\n margin: 0 8px;\n }\n\n .widget-tree-node-branch-header-icon-container {\n display: flex;\n align-items: center;\n }\n\n .widget-tree-node-body {\n padding-left: 24px;\n transition: height 0.2s ease 50ms;\n overflow: hidden;\n\n &.widget-tree-node-branch-hidden {\n display: none;\n }\n }\n}\n\n.widget-tree-node-lined-styling {\n .widget-tree-node .widget-tree-node-body {\n position: relative;\n\n &::before {\n content: \"\";\n width: 0px;\n height: 100%;\n position: absolute;\n top: 0;\n left: 7px;\n border: 1px solid #b6b8be;\n }\n }\n\n .widget-tree-node[role=\"group\"] > .widget-tree-node-branch > .widget-tree-node-branch-header {\n position: relative;\n\n &::before {\n content: \"\";\n position: absolute;\n width: 10px;\n height: 0;\n border: 1px solid #b6b8be;\n top: 50%;\n left: -16px;\n transform: translate(0, -50%);\n }\n }\n}\n","/* ==========================================================================\n Tree Node\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n\n.widget-tree-node-hover {\n .widget-tree-node-branch:hover > .widget-tree-node-branch-header {\n background-color: $grid-bg-hover;\n }\n}\n\n.widget-tree-node-bordered-horizontal {\n .widget-tree-node-branch > .widget-tree-node-branch-header {\n border-width: 0;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom-color: $grid-border-color;\n }\n}\n\n.widget-tree-node-bordered-all {\n border: 1px solid $grid-border-color;\n border-radius: 8px;\n overflow: hidden;\n\n .widget-tree-node-body:not(.widget-tree-node-branch-loading) {\n border-width: 0;\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: #ced0d3;\n }\n .widget-tree-node-branch:not(:first-of-type) > .widget-tree-node-branch-header {\n border-width: 0;\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: #ced0d3;\n }\n}\n\n.widget-tree-node-bordered-none {\n border-width: 0;\n .widget-tree-node-branch > .widget-tree-node-branch-header {\n border-width: 0;\n }\n}\n"]}
\ No newline at end of file