@signalk/server-admin-ui 1.40.0 → 1.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/public/270.js +2 -0
- package/public/270.js.map +1 -0
- package/public/{976.js → 292.js} +3 -3
- package/public/{976.js.LICENSE.txt → 292.js.LICENSE.txt} +0 -0
- package/public/292.js.map +1 -0
- package/public/{935.js → 316.js} +3 -3
- package/public/{935.js.LICENSE.txt → 316.js.LICENSE.txt} +0 -0
- package/public/316.js.map +1 -0
- package/public/436.js +3 -0
- package/public/{704.js.LICENSE.txt → 436.js.LICENSE.txt} +0 -0
- package/public/436.js.map +1 -0
- package/public/721.js +2 -0
- package/public/721.js.map +1 -0
- package/public/{294.js → 784.js} +3 -3
- package/public/{294.js.LICENSE.txt → 784.js.LICENSE.txt} +0 -0
- package/public/784.js.map +1 -0
- package/public/main.js +1 -1
- package/public/main.js.map +1 -1
- package/public/153.js +0 -2
- package/public/153.js.map +0 -1
- package/public/162.js +0 -2
- package/public/162.js.map +0 -1
- package/public/294.js.map +0 -1
- package/public/704.js +0 -3
- package/public/704.js.map +0 -1
- package/public/935.js.map +0 -1
- package/public/976.js.map +0 -1
package/public/153.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"153.js","mappings":"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","sources":["webpack://@signalk/server-admin-ui/./scss/style.scss?3aeb","webpack://@signalk/server-admin-ui/./scss/core/_dropdown-menu-right.scss?76da","webpack://@signalk/server-admin-ui/./src/actions.js","webpack://@signalk/server-admin-ui/./src/components/Header/Header.js","webpack://@signalk/server-admin-ui/./src/components/SidebarFooter/SidebarFooter.js","webpack://@signalk/server-admin-ui/./src/components/SidebarForm/SidebarForm.js","webpack://@signalk/server-admin-ui/./src/components/SidebarHeader/SidebarHeader.js","webpack://@signalk/server-admin-ui/./src/components/SidebarMinimizer/SidebarMinimizer.js","webpack://@signalk/server-admin-ui/./src/components/Sidebar/Sidebar.js","webpack://@signalk/server-admin-ui/./src/components/Aside/Aside.js","webpack://@signalk/server-admin-ui/./src/components/Footer/Footer.js","webpack://@signalk/server-admin-ui/./src/views/Dashboard/Dashboard.js","webpack://@signalk/server-admin-ui/./src/fa-pulse.css?3970","webpack://@signalk/server-admin-ui/./src/views/Webapps/dynamicutilities.js","webpack://@signalk/server-admin-ui/./src/views/security/EnableSecurity.js","webpack://@signalk/server-admin-ui/./src/views/security/Login.js","webpack://@signalk/server-admin-ui/./src/views/Webapps/Embedded.js","webpack://@signalk/server-admin-ui/./src/views/Webapps/Webapp.js","webpack://@signalk/server-admin-ui/./src/views/Webapps/Webapps.js","webpack://@signalk/server-admin-ui/./src/views/DataBrowser.js","webpack://@signalk/server-admin-ui/./src/views/Playground.js","webpack://@signalk/server-admin-ui/./src/views/appstore/Apps/ThisSession.js","webpack://@signalk/server-admin-ui/./src/views/appstore/Apps/AppsList.js","webpack://@signalk/server-admin-ui/./src/views/appstore/Apps/Apps.js","webpack://@signalk/server-admin-ui/./src/views/ServerConfig/PluginConfigurationForm.js","webpack://@signalk/server-admin-ui/./src/views/Configuration/EmbeddedPluginConfigurationForm.js","webpack://@signalk/server-admin-ui/./src/views/Configuration/Configuration.js","webpack://@signalk/server-admin-ui/./src/views/security/Settings.js","webpack://@signalk/server-admin-ui/./src/views/security/Users.js","webpack://@signalk/server-admin-ui/./src/views/security/Devices.js","webpack://@signalk/server-admin-ui/./src/views/security/Register.js","webpack://@signalk/server-admin-ui/./src/views/security/AccessRequests.js","webpack://@signalk/server-admin-ui/./src/views/ServerConfig/VesselConfiguration.js","webpack://@signalk/server-admin-ui/./src/views/ServerConfig/N2KFilters.js","webpack://@signalk/server-admin-ui/./src/views/ServerConfig/BasicProvider.js","webpack://@signalk/server-admin-ui/./src/views/ServerConfig/SourcePriorities.js","webpack://@signalk/server-admin-ui/./src/views/ServerConfig/ProvidersConfiguration.js","webpack://@signalk/server-admin-ui/./src/views/ServerConfig/Logging.js","webpack://@signalk/server-admin-ui/./src/views/ServerConfig/Settings.js","webpack://@signalk/server-admin-ui/./src/views/ServerConfig/BackupRestore.js","webpack://@signalk/server-admin-ui/./src/views/ServerConfig/ServerLog.js","webpack://@signalk/server-admin-ui/./src/views/ServerConfig/ServerUpdate.js","webpack://@signalk/server-admin-ui/./src/containers/Full/Full.js","webpack://@signalk/server-admin-ui/./src/bootstrap.js","webpack://@signalk/server-admin-ui/./scss/core/_dropdown-menu-right.scss","webpack://@signalk/server-admin-ui/./scss/style.scss","webpack://@signalk/server-admin-ui/./src/fa-pulse.css","webpack://@signalk/server-admin-ui/./public_src/img/signal-k-logo-image-text.svg"],"sourcesContent":["import api from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../node_modules/css-loader/dist/cjs.js!../node_modules/sass-loader/dist/cjs.js!./style.scss\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js!./_dropdown-menu-right.scss\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { isUndefined } from 'lodash'\n\nconst authFetch = (url, options) => {\n return fetch(url, {\n ...options,\n credentials: 'include',\n })\n}\n\nexport function logout() {\n return (dispatch) => {\n dispatch({\n type: 'LOGOUT_REQUESTED',\n })\n authFetch('/signalk/v1/auth/logout', {\n method: 'PUT',\n })\n .then((response) => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response\n })\n .then((response) => {\n dispatch({\n type: 'LOGOUT_SUCCESS',\n })\n })\n .catch((error) => {\n dispatch({\n type: 'LOGOUT_FAILED',\n data: error,\n })\n })\n .then(() => {\n fetchLoginStatus(dispatch)\n })\n }\n}\n\nexport function login(dispatch, username, password, rememberMe, callback) {\n var payload = {\n username: username,\n password: password,\n rememberMe: rememberMe,\n }\n authFetch('/signalk/v1/auth/login', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n })\n .then((response) => {\n if (response.status != 200) {\n response.text().then((text) => {\n dispatch({\n type: 'LOGIN_FAILURE',\n data: text,\n })\n callback(text)\n })\n } else {\n return response.json()\n }\n })\n .then((response) => {\n if (response) {\n fetchAllData(dispatch)\n dispatch({\n type: 'LOGIN_SUCCESS',\n })\n callback(null)\n }\n })\n .catch(function (error) {\n console.log(error)\n })\n}\n\nexport function enableSecurity(dispatch, userId, password, callback) {\n var payload = {\n userId: userId,\n password: password,\n type: 'admin',\n }\n fetch(`${window.serverRoutesPrefix}/enableSecurity`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n }).then((response) => {\n if (response.status != 200) {\n response.text().then((text) => {\n callback(text)\n })\n } else {\n callback(null)\n }\n })\n}\n\nexport function restart() {\n return (dispatch) => {\n if (confirm('Are you sure you want to restart?')) {\n fetch(`${window.serverRoutesPrefix}/restart`, {\n credentials: 'include',\n method: 'PUT',\n }).then(() => {\n dispatch({ type: 'SERVER_RESTART' })\n })\n }\n }\n}\n\n// Build actions that perform a basic authFetch to the backend. Pull #514.\nexport const buildFetchAction = (endpoint, type, prefix) => (dispatch) =>\n authFetch(\n `${isUndefined(prefix) ? window.serverRoutesPrefix : prefix}${endpoint}`\n )\n .then((response) => response.json())\n .then((data) =>\n dispatch({\n type,\n data,\n })\n )\n\nexport const fetchLoginStatus = buildFetchAction(\n '/loginStatus',\n 'RECEIVE_LOGIN_STATUS'\n)\nexport const fetchPlugins = buildFetchAction('/plugins', 'RECEIVE_PLUGIN_LIST')\nexport const fetchWebapps = buildFetchAction('/webapps', 'RECEIVE_WEBAPPS_LIST')\nexport const fetchAddons = buildFetchAction('/addons', 'RECEIVE_ADDONS_LIST')\nexport const fetchApps = buildFetchAction(\n '/appstore/available',\n 'RECEIVE_APPSTORE_LIST'\n)\nexport const fetchAccessRequests = buildFetchAction(\n '/security/access/requests',\n 'ACCESS_REQUEST'\n)\nexport const fetchServerSpecification = buildFetchAction(\n '/signalk',\n 'RECEIVE_SERVER_SPEC',\n ''\n)\n\nexport function fetchAllData(dispatch) {\n fetchPlugins(dispatch)\n fetchWebapps(dispatch)\n fetchAddons(dispatch)\n fetchApps(dispatch)\n fetchLoginStatus(dispatch)\n fetchServerSpecification(dispatch), fetchAccessRequests(dispatch)\n}\n\nexport function openServerEventsConnection(dispatch, isReconnect) {\n const proto = window.location.protocol == 'https:' ? 'wss' : 'ws'\n const ws = new WebSocket(\n proto +\n '://' +\n window.location.host +\n `/signalk/v1/stream?serverevents=all&subscribe=none&sendMeta=all`\n )\n\n ws.onmessage = function (event) {\n const serverEvent = JSON.parse(event.data)\n if (serverEvent.type) {\n dispatch(serverEvent)\n } else if (serverEvent.name) {\n ws.skSelf = serverEvent.self\n } else if (ws.messageHandler) {\n ws.messageHandler(serverEvent)\n }\n }\n ws.onclose = () => {\n console.log('closed')\n dispatch({\n type: 'WEBSOCKET_CLOSE',\n })\n }\n ws.onerror = (error) => {\n dispatch({\n type: 'WEBSOCKET_ERROR',\n })\n }\n ws.onopen = () => {\n console.log('connected')\n dispatch({\n type: 'WEBSOCKET_OPEN',\n data: ws,\n })\n if (isReconnect) {\n window.location.reload()\n }\n }\n}\n","import React, { Component } from 'react'\nimport {\n Nav,\n NavItem,\n NavLink,\n NavbarToggler,\n NavbarBrand,\n DropdownItem,\n DropdownMenu,\n DropdownToggle,\n Dropdown,\n} from 'reactstrap'\nimport { connect } from 'react-redux'\nimport { logout, restart, login } from '../../actions'\n\nclass Header extends Component {\n constructor(props) {\n super(props)\n\n this.toggleDropdown = this.toggleDropdown.bind(this)\n this.state = {\n dropdownOpen: false,\n }\n }\n\n componentDidMount() {\n window.addEventListener('sidebar:hide', () => {\n document.body.classList.toggle('sidebar-hidden', true)\n document.body.classList.toggle('sidebar-mobile-show', false)\n })\n }\n\n toggleDropdown() {\n this.setState({\n dropdownOpen: !this.state.dropdownOpen,\n })\n }\n\n sidebarToggle(e) {\n e.preventDefault()\n document.body.classList.toggle('sidebar-hidden')\n }\n\n sidebarMinimize(e) {\n e.preventDefault()\n document.body.classList.toggle('sidebar-minimized')\n }\n\n mobileSidebarToggle(e) {\n e.preventDefault()\n document.body.classList.toggle('sidebar-mobile-show')\n }\n\n asideToggle(e) {\n e.preventDefault()\n document.body.classList.toggle('aside-menu-hidden')\n }\n\n render() {\n return (\n <header className=\"app-header navbar\">\n <NavbarToggler className=\"d-lg-none\" onClick={this.mobileSidebarToggle}>\n <span className=\"navbar-toggler-icon\" />\n </NavbarToggler>\n <NavbarBrand href=\"#\" />\n <NavbarToggler\n className=\"d-md-down-none mr-auto\"\n onClick={this.sidebarToggle}\n >\n <span className=\"navbar-toggler-icon\" />\n </NavbarToggler>\n <Nav className=\"ml-auto\" navbar>\n <NavItem className=\"d-md-down-none px-3\">\n {this.props.loginStatus.status === 'loggedIn' &&\n this.props.loginStatus.userLevel == 'admin' && (\n <NavLink href=\"#/\" onClick={this.props.restart}>\n {this.props.restarting ? (\n <i className=\"fa fa-circle-o-notch text-danger fa-spin\" />\n ) : (\n <i className=\"fa fa-circle-o-notch\" />\n )}{' '}\n Restart\n </NavLink>\n )}\n </NavItem>\n {this.props.loginStatus.status === 'loggedIn' && (\n <NavItem className=\"d-md-down-none px-3\">\n <NavLink href=\"#/\" onClick={this.props.logout}>\n <i className=\"fa fa-lock\" /> Logout\n </NavLink>\n </NavItem>\n )}\n {this.props.loginStatus.status !== 'loggedIn' &&\n this.props.loginStatus.authenticationRequired && (\n <NavItem className=\"d-md-down-none px-3\">\n <NavLink href=\"#/login\">\n <i className=\"fa fa-lock\" /> Login\n </NavLink>\n </NavItem>\n )}\n <div className=\"d-lg-none\">\n <Dropdown\n nav\n isOpen={this.state.dropdownOpen}\n toggle={this.toggleDropdown}\n >\n <DropdownToggle nav>\n <i className=\"icon-menu\" />\n </DropdownToggle>\n <DropdownMenu right>\n {this.props.loginStatus.status === 'loggedIn' &&\n this.props.loginStatus.userLevel == 'admin' && (\n <DropdownItem onClick={this.props.restart}>\n {this.props.restarting ? (\n <i className=\"fa fa-circle-o-notch text-danger fa-spin\" />\n ) : (\n <i className=\"fa fa-circle-o-notch\" />\n )}{' '}\n Restart\n </DropdownItem>\n )}\n {this.props.loginStatus.status === 'loggedIn' && (\n <DropdownItem onClick={this.props.logout}>\n <i className=\"fa fa-lock\" /> Logout\n </DropdownItem>\n )}\n {this.props.loginStatus.status !== 'loggedIn' &&\n this.props.loginStatus.authenticationRequired && (\n <DropdownItem href=\"#/login\">\n <i className=\"fa fa-lock\" /> Login\n </DropdownItem>\n )}\n </DropdownMenu>\n </Dropdown>\n </div>\n </Nav>\n </header>\n )\n }\n}\n\nexport default connect(\n ({ loginStatus, restarting }) => ({ loginStatus, restarting }),\n { logout, restart, login }\n)(Header)\n","import React, { Component } from 'react'\n\nclass SidebarFooter extends Component {\n render() {\n return null\n // Uncomment following code lines to add Sidebar Footer\n // return (\n // <div className=\"sidebar-footer\"></div>\n // )\n }\n}\n\nexport default SidebarFooter\n","import React, { Component } from 'react'\n\nclass SidebarForm extends Component {\n render() {\n return null\n // Uncomment following code lines to add Sidebar Form\n // return (\n // <div className=\"sidebar-form\"></div>\n // )\n }\n}\n\nexport default SidebarForm\n","import React, { Component } from 'react'\n\nclass SidebarHeader extends Component {\n render() {\n return null\n // Uncomment following code lines to add Sidebar Header\n // return (\n // <div className=\"sidebar-header\"></div>\n // )\n }\n}\n\nexport default SidebarHeader\n","import React, { Component } from 'react'\n\nclass SidebarMinimizer extends Component {\n sidebarMinimize() {\n document.body.classList.toggle('sidebar-minimized')\n }\n\n brandMinimize() {\n document.body.classList.toggle('brand-minimized')\n }\n\n render() {\n return (\n <button\n className=\"sidebar-minimizer\"\n type=\"button\"\n onClick={(event) => {\n this.sidebarMinimize()\n this.brandMinimize()\n }}\n />\n )\n }\n}\n\nexport default SidebarMinimizer\n","import React, { Component } from 'react'\nimport { NavLink } from 'react-router-dom'\nimport { Badge, Nav, NavItem, NavLink as RsNavLink } from 'reactstrap'\nimport { connect } from 'react-redux'\nimport classNames from 'classnames'\nimport SidebarFooter from './../SidebarFooter/SidebarFooter'\nimport SidebarForm from './../SidebarForm/SidebarForm'\nimport SidebarHeader from './../SidebarHeader/SidebarHeader'\nimport SidebarMinimizer from './../SidebarMinimizer/SidebarMinimizer'\n\nclass Sidebar extends Component {\n handleClick(e) {\n e.preventDefault()\n e.target.parentElement.classList.toggle('open')\n }\n\n activeRoute(routeName, props) {\n // return this.props.location.pathname.indexOf(routeName) > -1 ? 'nav-item nav-dropdown open' : 'nav-item nav-dropdown';\n return props.location.pathname.indexOf(routeName) > -1\n ? 'nav-item nav-dropdown open'\n : 'nav-item nav-dropdown'\n }\n\n render() {\n const props = this.props\n const activeRoute = this.activeRoute\n const handleClick = this.handleClick\n\n // badge addon to NavItem\n const badge = (badge) => {\n if (badge) {\n const classes = classNames(badge.class)\n return (\n <Badge className={classes} color={badge.variant}>\n {badge.text}\n </Badge>\n )\n }\n }\n\n // simple wrapper for nav-title item\n const wrapper = (item) => {\n return item.wrapper && item.wrapper.element\n ? React.createElement(\n item.wrapper.element,\n item.wrapper.attributes,\n item.name\n )\n : item.name\n }\n\n // nav list section title\n const title = (title, key) => {\n const classes = classNames('nav-title', title.class)\n return (\n <li key={key} className={classes}>\n {wrapper(title)}{' '}\n </li>\n )\n }\n\n // nav list divider\n const divider = (divider, key) => {\n const classes = classNames('divider', divider.class)\n return <li key={key} className={classes} />\n }\n\n // nav item with nav link\n const navItem = (item, key) => {\n const classes = {\n item: classNames(item.class),\n link: classNames(\n 'nav-link',\n item.variant ? `nav-link-${item.variant}` : ''\n ),\n icon: classNames(item.icon),\n }\n return navLink(item, key, classes)\n }\n\n // nav link\n const navLink = (item, key, classes) => {\n const url = item.url ? item.url : ''\n return (\n <NavItem key={key} className={classes.item}>\n {isExternal(url) ? (\n <RsNavLink href={url} className={classes.link} active>\n <i className={classes.icon} />\n {item.name}\n {badge(item.badge)}\n </RsNavLink>\n ) : (\n <NavLink to={url} className={classes.link} activeClassName=\"active\">\n <i className={classes.icon} />\n {item.name}\n {badge(item.badge)}\n </NavLink>\n )}\n </NavItem>\n )\n }\n\n // nav dropdown\n const navDropdown = (item, key) => {\n return (\n <li key={key} className={activeRoute(item.url, props)}>\n <a\n className=\"nav-link nav-dropdown-toggle\"\n href=\"#\"\n onClick={handleClick.bind(this)}\n >\n <i className={item.icon} />\n {item.name}\n </a>\n <ul className=\"nav-dropdown-items\">{navList(item.children)}</ul>\n </li>\n )\n }\n\n // nav type\n const navType = (item, idx) =>\n item.title\n ? title(item, idx)\n : item.divider\n ? divider(item, idx)\n : item.children\n ? navDropdown(item, idx)\n : navItem(item, idx)\n\n // nav list\n const navList = (items) => {\n return items.map((item, index) => navType(item, index))\n }\n\n const isExternal = (url) => {\n const link = url ? url.substring(0, 4) : ''\n return link === 'http'\n }\n\n // sidebar-nav root\n return (\n <div className=\"sidebar\">\n <SidebarHeader />\n <SidebarForm />\n <nav className=\"sidebar-nav\">\n <Nav>{navList(props.items)}</Nav>\n </nav>\n <SidebarFooter />\n <SidebarMinimizer />\n </div>\n )\n }\n}\n\nconst mapStateToProps = (state) => {\n var appUpdates = state.appStore.updates.length\n var updatesBadge = null\n var availableBadge = null\n var serverUpdateBadge = null\n var accessRequestsBadge = null\n\n if (appUpdates > 0) {\n updatesBadge = {\n variant: 'danger',\n text: `${appUpdates}`,\n color: 'danger',\n }\n }\n\n if (state.accessRequests.length > 0) {\n accessRequestsBadge = {\n variant: 'danger',\n text: `${state.accessRequests.length}`,\n color: 'danger',\n }\n }\n\n if (!state.appStore.storeAvailable) {\n updatesBadge = availableBadge = {\n variant: 'danger',\n text: 'OFFLINE',\n }\n }\n\n if (state.appStore.serverUpdate) {\n serverUpdateBadge = {\n variant: 'danger',\n text: state.appStore.serverUpdate,\n color: 'danger',\n }\n }\n\n var result = {\n items: [\n {\n name: 'Dashboard',\n url: '/dashboard',\n icon: 'icon-speedometer',\n },\n {\n name: 'Webapps',\n url: '/webapps',\n icon: 'icon-grid',\n },\n {\n name: 'Data Browser',\n url: '/databrowser',\n icon: 'icon-folder',\n },\n ],\n }\n\n if (\n !state.loginStatus.authenticationRequired ||\n state.loginStatus.userLevel == 'admin'\n ) {\n const openPlugin = localStorage.getItem('admin.v1.plugins.openPlugin')\n result.items.push.apply(result.items, [\n {\n name: 'Appstore',\n url: '/appstore',\n icon: 'icon-basket',\n children: [\n {\n name: 'Available',\n url: '/appstore/apps',\n badge: availableBadge,\n },\n {\n name: 'Installed',\n url: '/appstore/installed',\n },\n {\n name: 'Updates',\n url: '/appstore/updates',\n badge: updatesBadge,\n },\n ],\n },\n {\n name: 'Server',\n url: '/serverConfiguration',\n icon: 'icon-settings',\n children: [\n {\n name: 'Settings',\n url: '/serverConfiguration/settings',\n },\n {\n name: 'Data Connections',\n url: '/serverConfiguration/connections/-',\n },\n {\n name: 'Plugin Config',\n url: '/serverConfiguration/plugins/' + (openPlugin || '-'),\n },\n {\n name: 'Server Log',\n url: '/serverConfiguration/log',\n },\n {\n name: 'Update',\n url: '/serverConfiguration/update',\n badge: serverUpdateBadge,\n },\n {\n name: 'Data Fiddler',\n url: '/serverConfiguration/datafiddler',\n },\n {\n name: 'Backup/Restore',\n url: '/serverConfiguration/backuprestore',\n },\n ],\n },\n ])\n }\n\n if (\n state.loginStatus.authenticationRequired === false ||\n state.loginStatus.userLevel == 'admin'\n ) {\n var security = {\n name: 'Security',\n url: '/security',\n icon: 'icon-settings',\n badge: accessRequestsBadge,\n children: [\n {\n name: 'Settings',\n url: '/security/settings',\n },\n {\n name: 'Users',\n url: '/security/users',\n },\n ],\n }\n if (state.loginStatus.allowDeviceAccessRequests) {\n security.children.push({\n name: 'Devices',\n url: '/security/devices',\n })\n }\n if (\n state.loginStatus.allowNewUserRegistration ||\n state.loginStatus.allowDeviceAccessRequests\n ) {\n security.children.push({\n name: 'Access Requests',\n url: '/security/access/requests',\n badge: accessRequestsBadge,\n })\n }\n result.items.push(security)\n }\n\n return result\n}\n\nconst pluginMenuItems = (plugins) => {\n return plugins\n ? plugins.map((pluginData) => {\n return {\n name: pluginData.name,\n url: `/plugins/${pluginData.id}`,\n }\n })\n : []\n}\n\nexport default connect(mapStateToProps)(Sidebar)\n","import React, { Component } from 'react'\n\nclass Aside extends Component {\n render() {\n return <aside className=\"aside-menu\">{/* Aside Menu */}</aside>\n }\n}\n\nexport default Aside\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport { Link } from 'react-router-dom'\n\nclass Footer extends Component {\n constructor(props) {\n super(props)\n }\n\n render() {\n const { name, mmsi, uuid } = this.props.vesselInfo\n return (\n <footer className=\"app-footer\">\n <span>\n <a href=\"https://github.com/SignalK/signalk-server-node/\">\n Signal K Server\n </a>\n </span>\n {typeof this.props.serverSpecification.server !== 'undefined' && (\n <span>\n version {this.props.serverSpecification.server.version}\n </span>\n )}\n {typeof this.props.appStore.serverUpdate !== 'undefined' && (\n <span>\n <Link to=\"/serverConfiguration/update\">\n (version {this.props.appStore.serverUpdate} is available)\n </Link>\n </span>\n )}\n {this.props.loginStatus.status === 'loggedIn' && (\n <span className=\"ml-auto\">\n Logged in as {this.props.loginStatus.username}\n </span>\n )}\n - {name || mmsi || uuid}\n </footer>\n )\n }\n}\n\nexport default connect(\n ({ loginStatus, serverSpecification, appStore, vesselInfo }) => ({\n loginStatus,\n serverSpecification,\n appStore,\n vesselInfo,\n })\n)(Footer)\n","import React from 'react'\nimport { connect } from 'react-redux'\nimport {\n Card,\n CardBody,\n CardHeader,\n Progress,\n Row,\n Col,\n Table,\n} from 'reactstrap'\nimport '../../fa-pulse.css'\n\nconst Dashboard = (props) => {\n const {\n deltaRate,\n numberOfAvailablePaths,\n wsClients,\n providerStatistics,\n uptime,\n } = props.serverStatistics || {\n deltaRate: 0,\n numberOfAvailablePaths: 0,\n wsClients: 0,\n providerStatistics: {},\n uptime: '',\n }\n const providerStatus = props.providerStatus || []\n const errorCount = providerStatus.filter((s) => s.type === 'error').length\n const uptimeD = Math.floor(uptime / (60 * 60 * 24))\n const uptimeH = Math.floor((uptime % (60 * 60 * 24)) / (60 * 60))\n const uptimeM = Math.floor((uptime % (60 * 60)) / 60)\n let errors = ''\n if (errorCount > 0) {\n errors = `(${errorCount} errors)`\n }\n return (\n <div className=\"animated fadeIn\">\n {props.websocketStatus === 'open' && (\n <div>\n <Card>\n <CardHeader>Stats</CardHeader>\n <CardBody>\n <Row>\n <Col xs=\"12\" md=\"6\">\n <div className=\"callout callout-primary\">\n <small className=\"text-muted\">\n Total server Signal K throughput (deltas/second)\n </small>\n <br />\n <strong className=\"h4\">{deltaRate.toFixed(1)}</strong>\n </div>\n <div className=\"callout callout-primary\">\n <small className=\"text-muted\">\n Number of Signal K Paths\n </small>\n <br />\n <strong className=\"h4\">{numberOfAvailablePaths}</strong>\n </div>\n <div className=\"callout callout-primary\">\n <small className=\"text-muted\">\n Number of WebSocket Clients\n </small>\n <br />\n <strong className=\"h4\">{wsClients}</strong>\n </div>\n <div className=\"callout callout-primary\">\n <small className=\"text-muted\">Uptime</small>\n <br />\n <strong className=\"h5\">\n {uptimeD} days, {uptimeH} hours, {uptimeM} minutes\n </strong>\n </div>\n </Col>\n <Col xs=\"12\" md=\"6\">\n <div className=\"text-muted\">\n Connection activity (deltas/second)\n </div>\n <ul className=\"horizontal-bars type-2\">\n {Object.keys(providerStatistics || {}).map((providerId) => {\n const providerStats = providerStatistics[providerId]\n const iconClass =\n 'icon-feed text-primary' +\n (providerStats.deltaRate > 50\n ? ' fa-pulse-fast'\n : providerStats.deltaRate > 0\n ? ' fa-pulse'\n : '')\n return (\n <li\n key={providerId}\n onClick={() =>\n props.history.push(\n `/serverConfiguration/connections/${providerId}`\n )\n }\n >\n <i className={iconClass} />\n <span className=\"title\">\n {providerIdLink(providerId)}\n </span>\n <span className=\"value\">\n {' '}\n {providerStats.deltaRate}{' '}\n <span className=\"text-muted small\">\n (\n {(\n (providerStats.deltaRate / deltaRate) *\n 100\n ).toFixed(0)}\n %)\n </span>\n </span>\n <div className=\"bars\">\n <Progress\n className=\"progress-xs\"\n color=\"warning\"\n value={\n (providerStats.deltaRate / deltaRate) * 100\n }\n />\n </div>\n </li>\n )\n })}\n </ul>\n </Col>\n </Row>\n </CardBody>\n </Card>\n\n <Card>\n <CardHeader>\n Connection & Plugin Status <p className=\"text-danger\">{errors}</p>\n </CardHeader>\n <CardBody>\n <Row>\n <Col xs=\"12\" md=\"12\">\n <Table hover responsive bordered striped size=\"sm\">\n <thead>\n <tr>\n <th>Id</th>\n <th>Last Error</th>\n <th>Status</th>\n </tr>\n </thead>\n <tbody>\n {providerStatus.map((status) => {\n let statusClass\n if (status.type === 'status') {\n statusClass = 'text-success'\n } else if (status.type === 'warning') {\n statusClass = 'text-warning'\n } else {\n statusClass = 'text-danger'\n }\n const lastError =\n status.lastError && status.lastError != status.message\n ? status.lastErrorTimeStamp +\n ': ' +\n status.lastError\n : ''\n return (\n <tr\n key={status.id}\n onClick={() => {\n props.history.push(\n '/serverConfiguration/' +\n (status.statusType === 'plugin'\n ? 'plugins/'\n : 'connections/') +\n status.id\n )\n }}\n >\n <td>\n {status.statusType === 'plugin'\n ? pluginNameLink(status.id)\n : providerIdLink(status.id)}\n </td>\n <td>\n <p className=\"text-danger\">{lastError}</p>\n </td>\n <td>\n <p className={statusClass}>\n {(status.message || '').substring(0, 80)}\n {status.message.length > 80 ? '...' : ''}\n </p>\n </td>\n </tr>\n )\n })}\n </tbody>\n </Table>\n </Col>\n </Row>\n </CardBody>\n </Card>\n </div>\n )}\n\n {props.websocketStatus === 'closed' && (\n <Card className=\"border-warning\">\n <CardHeader>Not connected to the server</CardHeader>\n </Card>\n )}\n </div>\n )\n}\n\nfunction pluginNameLink(id) {\n return <a href={'#/serverConfiguration/plugins/' + id}>{id}</a>\n}\n\nfunction providerIdLink(id) {\n return <a href={'#/serverConfiguration/connections/' + id}>{id}</a>\n}\n\nexport default connect(\n ({ serverStatistics, websocketStatus, providerStatus }) => ({\n serverStatistics,\n websocketStatus,\n providerStatus,\n })\n)(Dashboard)\n","import api from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../node_modules/css-loader/dist/cjs.js!./fa-pulse.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import React from 'react'\n\nexport const toLazyDynamicComponent = (moduleName, component) =>\n React.lazy(\n () =>\n new Promise((resolve, reject) => {\n const container = window[toSafeModuleId(moduleName)]\n if (container === undefined) {\n console.error(`Could not load module ${moduleName}`)\n resolve(import('./loadingerror'))\n return\n }\n container.init(__webpack_share_scopes__.default)\n try {\n const module = container.get(component)\n module.then((factory) => {\n resolve(factory())\n })\n } catch (ex) {\n console.error(moduleName)\n reject(ex)\n }\n })\n )\n\nexport const toSafeModuleId = (moduleName) => moduleName.replace(/[-@/]/g, '_')\n\nexport const APP_PANEL = './AppPanel'\nexport const ADDON_PANEL = './AddonPanel'\nexport const PLUGIN_CONFIG_PANEL = './PluginConfigurationPanel'\n","import React, { Component } from 'react'\nimport {\n Form,\n Container,\n Row,\n Col,\n CardGroup,\n Card,\n CardBody,\n Button,\n Input,\n InputGroup,\n InputGroupAddon,\n HelpBlock,\n} from 'reactstrap'\nimport { connect } from 'react-redux'\nimport { login, enableSecurity, fetchLoginStatus } from '../../actions'\nimport Login from './Login'\n\nclass EnableSecurity extends Component {\n constructor(props) {\n super(props)\n this.state = {\n enabling: false,\n errorMessage: null,\n }\n this.handleInputChange = this.handleInputChange.bind(this)\n this.handleClick = this.handleClick.bind(this)\n }\n\n handleClick(event) {\n const { dispatch } = this.props\n this.setState({ enabling: true })\n enableSecurity(\n dispatch,\n this.state.username,\n this.state.password,\n (error) => {\n fetchLoginStatus(dispatch)\n this.setState({\n enabling: false,\n errorMessage: error,\n })\n }\n )\n }\n\n handleInputChange(event) {\n this.setState({ [event.target.name]: event.target.value })\n }\n\n render() {\n return (\n <div>\n {this.props.loginStatus.authenticationRequired &&\n !this.props.loginStatus.noUsers && <Login />}\n {(this.props.loginStatus.authenticationRequired === false ||\n this.props.loginStatus.noUsers === true) && (\n <Container>\n <Row className=\"justify-content-center\">\n <Col md=\"8\">\n <CardGroup>\n <Card className=\"p-4\">\n <CardBody>\n {this.props.loginStatus.securityWasEnabled &&\n this.props.loginStatus.authenticationRequired ==\n false && (\n <p className=\"text-danger\">\n Security has been enabled, please restart the server\n </p>\n )}\n {!this.props.loginStatus.securityWasEnabled && (\n <div>\n <h1>Enable Security</h1>\n <p className=\"text-muted\">Create an admin account</p>\n <InputGroup className=\"mb-3\">\n <InputGroupAddon>\n <i className=\"icon-user\" />\n </InputGroupAddon>\n <Input\n type=\"text\"\n name=\"username\"\n placeholder=\"Username\"\n onChange={this.handleInputChange}\n />\n </InputGroup>\n <InputGroup className=\"mb-4\">\n <InputGroupAddon>\n <i className=\"icon-lock\" />\n </InputGroupAddon>\n <Input\n type=\"password\"\n name=\"password\"\n placeholder=\"Password\"\n onChange={this.handleInputChange}\n />\n </InputGroup>\n <Row>\n <Col xs=\"6\">\n <Button\n onClick={this.handleClick}\n color=\"primary\"\n className=\"px-4\"\n >\n <i\n className={\n this.state.enabling\n ? 'fa fa-spinner fa-spin'\n : 'fa fa-lock'\n }\n />{' '}\n Enable\n </Button>\n </Col>\n <Col xs=\"6\" className=\"text-right\">\n <p className=\"text-danger\">\n {this.state.errorMessage}\n </p>\n </Col>\n </Row>\n </div>\n )}\n </CardBody>\n </Card>\n </CardGroup>\n </Col>\n </Row>\n </Container>\n )}\n </div>\n )\n }\n}\n\nexport default connect(({ loginStatus }) => ({ loginStatus }))(EnableSecurity)\n","import React, { Component } from 'react'\nimport {\n Form,\n Container,\n Row,\n Col,\n CardGroup,\n Card,\n CardBody,\n Button,\n Input,\n InputGroup,\n InputGroupAddon,\n HelpBlock,\n Label,\n} from 'reactstrap'\nimport { Link } from 'react-router-dom'\nimport { connect } from 'react-redux'\nimport { login, fetchAllData } from '../../actions'\nimport Dashboard from '../Dashboard/Dashboard'\nimport EnableSecurity from './EnableSecurity'\n\nclass Login extends Component {\n constructor(props) {\n super(props)\n this.state = {\n loggingIn: false,\n loginErrorMessage: null,\n }\n this.handleInputChange = this.handleInputChange.bind(this)\n this.handleClick = this.handleClick.bind(this)\n }\n\n handleClick(event) {\n this.setState({ loggingIn: true })\n const { dispatch } = this.props\n login(\n dispatch,\n this.state.username,\n this.state.password,\n this.state.rememberMe,\n (error) => {\n this.setState({\n loggingIn: false,\n loginErrorMessage: error,\n })\n }\n )\n }\n\n handleInputChange(event) {\n var value =\n event.target.type === 'checkbox'\n ? event.target.checked\n : event.target.value\n this.setState({ [event.target.name]: value })\n }\n\n render() {\n if (\n this.props.loginStatus.status === 'notLoggedIn' &&\n this.props.loginStatus.noUsers === true\n ) {\n return <EnableSecurity />\n } else {\n return (\n <div>\n {this.props.loginStatus.status === 'notLoggedIn' && (\n <Container>\n <Row className=\"justify-content-center\">\n <Col md=\"8\">\n <CardGroup>\n <Card className=\"p-4\">\n <CardBody>\n <h1>Login</h1>\n <p className=\"text-muted\">Sign In to your account</p>\n <InputGroup className=\"mb-3\">\n <InputGroupAddon>\n <i className=\"icon-user\" />\n </InputGroupAddon>\n <Input\n type=\"text\"\n name=\"username\"\n placeholder=\"Username\"\n onChange={this.handleInputChange}\n />\n </InputGroup>\n <InputGroup className=\"mb-4\">\n <InputGroupAddon>\n <i className=\"icon-lock\" />\n </InputGroupAddon>\n <Input\n type=\"password\"\n name=\"password\"\n placeholder=\"Password\"\n onChange={this.handleInputChange}\n />\n </InputGroup>\n <Row>\n <Col xs=\"8\">\n <InputGroup className=\"mb-4\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"rememberMe\"\n className=\"switch-input\"\n onChange={this.handleInputChange}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n />\n <span className=\"switch-handle\" />\n </Label>\n Remember Me\n </InputGroup>\n </Col>\n </Row>\n <Row>\n <Col xs=\"6\">\n <Button\n onClick={this.handleClick}\n color=\"primary\"\n className=\"px-4\"\n >\n <i\n className={\n this.state.loggingIn\n ? 'fa fa-spinner fa-spin'\n : 'fa fa-lock'\n }\n />{' '}\n Login\n </Button>\n </Col>\n <Col xs=\"6\" className=\"text-right\">\n <p className=\"text-danger\">\n {this.state.loginErrorMessage}\n </p>\n {!this.state.loginErrorMessage &&\n this.props.loginStatus\n .allowNewUserRegistration && (\n <div>\n <Link to=\"/register\">\n <Button color=\"link\" className=\"px-0\">\n Sign up\n </Button>\n </Link>\n </div>\n )}\n </Col>\n </Row>\n </CardBody>\n </Card>\n </CardGroup>\n </Col>\n </Row>\n </Container>\n )}\n {this.props.loginStatus.status == 'loggedIn' && <Dashboard />}\n </div>\n )\n }\n }\n}\n\nexport default connect(({ loginStatus }) => ({ loginStatus }))(Login)\n","import React, { Component, Suspense } from 'react'\nimport { connect } from 'react-redux'\nimport { toLazyDynamicComponent, APP_PANEL } from './dynamicutilities'\nimport Login from '../../views/security/Login'\nimport ReconnectingWebSocket from 'reconnecting-websocket'\n\nconst wsProto = window.location.protocol == 'https:' ? 'wss' : 'ws'\n\nclass Embedded extends Component {\n constructor(props) {\n super(props)\n this.state = {\n component: toLazyDynamicComponent(\n this.props.match.params.moduleId,\n APP_PANEL\n ),\n }\n this.websockets = []\n\n this.adminUI = {\n hideSideBar: () => {\n window.dispatchEvent(new Event('sidebar:hide'))\n },\n getApplicationUserData: (appDataVersion, path = '') =>\n fetch(\n `/signalk/v1/applicationData/user/${this.props.match.params.moduleId}/${appDataVersion}${path}`,\n { credentials: 'include' }\n )\n .then((r) => {\n if (r.status != 200) {\n throw new Error(r)\n }\n return r\n })\n .then((r) => r.json()),\n setApplicationUserData: (appDataVersion, data = {}, path = '') =>\n fetch(\n `/signalk/v1/applicationData/user/${this.props.match.params.moduleId}/${appDataVersion}${path}`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(data),\n credentials: 'include',\n }\n ).then((r) => {\n if (r.status != 200) {\n throw new Error(r)\n }\n return r\n }),\n openWebsocket: (params) => {\n const knownParams = ['subscribe', 'sendCachedValues']\n const queryParam = knownParams\n .map((p, i) => [i, params[p]])\n .filter((x) => x[1] !== undefined)\n .map(([i, v]) => `${knownParams[i]}=${v}`)\n .join('&')\n const ws = new ReconnectingWebSocket(\n `${wsProto}://${window.location.host}/signalk/v1/stream?${queryParam}`\n )\n this.websockets.push(ws)\n return ws\n },\n get: ({ context, path }) => {\n const cParts = context.split('.')\n return fetch(\n `/signalk/v1/api/${cParts[0]}/${cParts.slice(1).join('.')}/${path}`,\n {\n credentials: 'include',\n }\n )\n },\n Login,\n }\n }\n\n componentWillUnmount() {\n this.websockets.forEach((ws) => {\n try {\n ws.close()\n } catch (e) {\n console.error(e)\n }\n })\n }\n\n render() {\n return (\n <div\n style={{ backgroundColor: 'aliceblue', height: 'calc(100vh - 105px)' }}\n >\n <Suspense fallback=\"Loading...\">\n {React.createElement(this.state.component, {\n ...this.props,\n adminUI: this.adminUI,\n })}\n </Suspense>\n </div>\n )\n }\n}\n\nconst mapStateToProps = ({ loginStatus }) => ({ loginStatus })\n\nexport default connect(mapStateToProps)(Embedded)\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport { Card, CardBody, CardFooter } from 'reactstrap'\nimport classNames from 'classnames'\nimport { mapToCssModules } from 'reactstrap/lib/utils'\n\nconst propTypes = {\n header: PropTypes.string,\n mainText: PropTypes.string,\n icon: PropTypes.string,\n color: PropTypes.string,\n variant: PropTypes.string,\n footer: PropTypes.bool,\n link: PropTypes.string,\n children: PropTypes.node,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n}\n\nconst defaultProps = {\n header: '$1,999.50',\n mainText: 'Income',\n icon: 'fa fa-cogs',\n color: 'primary',\n variant: '0',\n link: '#',\n}\n\nclass Widget02 extends Component {\n render() {\n const {\n className,\n cssModule,\n header,\n mainText,\n url,\n icon,\n color,\n footer,\n link,\n children,\n variant,\n ...attributes\n } = this.props\n\n // demo purposes only\n const padding =\n variant === '0'\n ? { card: 'p-3', icon: 'p-3', lead: 'mt-2' }\n : variant === '1'\n ? {\n card: 'p-0',\n icon: 'p-4',\n lead: 'pt-3',\n }\n : { card: 'p-0', icon: 'p-4 px-5', lead: 'pt-3' }\n\n const card = { style: 'clearfix', color: color, icon: icon, classes: '' }\n card.classes = mapToCssModules(\n classNames(className, card.style, padding.card),\n cssModule\n )\n\n const lead = { style: 'h5 mb-0', color: color, classes: '' }\n lead.classes = classNames(\n lead.style,\n 'text-' + card.color,\n padding.lead,\n 'text-capitalize'\n )\n\n const blockIcon = function (icon) {\n const classes = classNames(\n icon,\n 'bg-' + card.color,\n padding.icon,\n 'font-2xl mr-3 float-left'\n )\n return <i className={classes} />\n }\n\n const cardFooter = function () {\n if (footer) {\n return (\n <CardFooter className=\"px-3 py-2\">\n <a\n className=\"font-weight-bold font-xs btn-block text-muted\"\n href={link}\n >\n View More\n <i className=\"fa fa-angle-right float-right font-lg\" />\n </a>\n </CardFooter>\n )\n }\n }\n\n return (\n <a href={url}>\n <Card>\n <CardBody className={card.classes} {...attributes}>\n {blockIcon(card.icon)}\n <div className={lead.classes}>{header}</div>\n <div className=\"text-muted font-xs\">{mainText}</div>\n </CardBody>\n {cardFooter()}\n </Card>\n </a>\n )\n }\n}\n\nWidget02.propTypes = propTypes\nWidget02.defaultProps = defaultProps\n\nexport default Widget02\n","import React, { Component, Suspense } from 'react'\nimport { connect } from 'react-redux'\nimport { Card, CardBody, CardHeader, Col } from 'reactstrap'\nimport {\n ADDON_PANEL,\n toLazyDynamicComponent,\n toSafeModuleId,\n} from './dynamicutilities'\n\nimport Webapp from './Webapp'\n\nclass Webapps extends Component {\n constructor(props) {\n super(props)\n this.state = {\n addonComponents: [],\n }\n }\n\n setAddonComponents() {\n this.setState({\n addonComponents: this.props.addons.map((md) =>\n toLazyDynamicComponent(md.name, ADDON_PANEL)\n ),\n })\n }\n\n componentDidMount() {\n this.setAddonComponents()\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.addons != prevProps.addons) {\n this.setAddonComponents()\n }\n }\n\n render() {\n return (\n <div className=\"animated fadeIn\">\n <Card>\n <CardHeader>Webapps</CardHeader>\n <CardBody>\n <div className=\"row\">\n {this.props.webapps\n .filter(\n (webAppInfo) => webAppInfo.name !== '@signalk/server-admin-ui'\n )\n .map((webappInfo) => {\n const url = webappInfo.keywords.includes(\n 'signalk-embeddable-webapp'\n )\n ? `/admin/#/e/${toSafeModuleId(webappInfo.name)}`\n : `/${webappInfo.name}`\n return (\n <Col xs=\"12\" md=\"12\" lg=\"6\" xl=\"4\" key={webappInfo.name}>\n <Webapp\n key={webappInfo.name}\n header={webappInfo.name}\n mainText={webappInfo.description}\n url={url}\n icon=\"icon-grid fa fa-external-link\"\n color=\"primary\"\n />\n </Col>\n )\n })}\n </div>\n </CardBody>\n </Card>\n\n <Card>\n <CardHeader>Addons</CardHeader>\n <CardBody>\n {this.state.addonComponents.map((c, i) => (\n <Suspense key={i} fallback=\"Loading...\">\n {React.createElement(c, { ...this.props })}\n </Suspense>\n ))}\n </CardBody>\n </Card>\n </div>\n )\n }\n}\n\nconst mapStateToProps = ({ webapps, addons }) => ({ webapps, addons })\n\nexport default connect(mapStateToProps)(Webapps)\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport get from 'lodash.get'\nimport JSONTree from 'react-json-tree'\nimport {\n Badge,\n Button,\n Card,\n CardHeader,\n CardBody,\n CardFooter,\n InputGroup,\n InputGroupAddon,\n Input,\n Form,\n Col,\n Label,\n FormGroup,\n FormText,\n Table,\n} from 'reactstrap'\nimport moment from 'moment'\nimport { CopyToClipboard } from 'react-copy-to-clipboard'\n\nconst timestampFormat = 'MM/DD HH:mm:ss'\n\nconst metaStorageKey = 'admin.v1.dataBrowser.meta'\nconst pauseStorageKey = 'admin.v1.dataBrowser.v1.pause'\nconst contextStorageKey = 'admin.v1.dataBrowser.context'\nconst searchStorageKey = 'admin.v1.dataBrowser.search'\n\nfunction fetchSources() {\n fetch(`/signalk/v1/api/sources`, {\n credentials: 'include',\n })\n .then((response) => response.json())\n .then((sources) => {\n Object.values(sources).forEach((source) => {\n if (source.type === 'NMEA2000') {\n Object.keys(source).forEach((key) => {\n let device = source[key]\n if (device.n2k && device.n2k.productName) {\n source[\n `${device.n2k.manufacturerName || ''} ${\n device.n2k.productName\n } (${key})`\n ] = device\n delete source[key]\n }\n })\n }\n })\n this.setState({ ...this.state, sources: sources })\n })\n}\n\nclass DataBrowser extends Component {\n constructor(props) {\n super(props)\n this.state = {\n hasData: false,\n webSocket: null,\n didSubscribe: false,\n pause: localStorage.getItem(pauseStorageKey) === 'true',\n includeMeta: localStorage.getItem(metaStorageKey) === 'true',\n data: {},\n meta: {},\n context: localStorage.getItem(contextStorageKey) || 'self',\n search: localStorage.getItem(searchStorageKey) || '',\n }\n\n this.fetchSources = fetchSources.bind(this)\n this.handlePause = this.handlePause.bind(this)\n this.handleMessage = this.handleMessage.bind(this)\n this.handleContextChange = this.handleContextChange.bind(this)\n this.handleSearch = this.handleSearch.bind(this)\n this.handleMeta = this.handleMeta.bind(this)\n }\n\n handleMessage(msg) {\n if (this.state.pause) {\n return\n }\n\n if (msg.context && msg.updates) {\n const key =\n msg.context === this.state.webSocket.skSelf ? 'self' : msg.context\n\n let isNew = false\n if (!this.state.data[key]) {\n this.state.data[key] = {}\n isNew = true\n }\n\n if (!this.state.meta[key]) {\n this.state.meta[key] = {}\n isNew = true\n }\n\n let context = this.state.data[key]\n let contextMeta = this.state.meta[key]\n\n msg.updates.forEach((update) => {\n if (update.values) {\n let pgn =\n update.source && update.source.pgn && `(${update.source.pgn})`\n let sentence =\n update.source &&\n update.source.sentence &&\n `(${update.source.sentence})`\n update.values.forEach((vp) => {\n if (vp.path === '') {\n Object.keys(vp.value).forEach((k) => {\n context[k] = {\n path: k,\n value: vp.value[k],\n $source: update.$source,\n pgn,\n sentence,\n timestamp: moment(update.timestamp).format(timestampFormat),\n }\n })\n } else {\n context[vp.path + '$' + update['$source']] = {\n path: vp.path,\n $source: update.$source,\n value: vp.value,\n pgn,\n sentence,\n timestamp: moment(update.timestamp).format(timestampFormat),\n }\n }\n })\n }\n if (update.meta) {\n update.meta.forEach((vp) => {\n contextMeta[vp.path] = { ...contextMeta[vp.path], ...vp.value }\n })\n }\n })\n\n if (isNew || (this.state.context && this.state.context === key)) {\n this.setState({\n ...this.state,\n hasData: true,\n data: this.state.data,\n meta: this.state.meta,\n })\n }\n }\n }\n\n subscribeToDataIfNeeded() {\n if (\n !this.state.pause &&\n this.props.webSocket &&\n (this.props.webSocket != this.state.webSocket ||\n this.state.didSubscribe === false)\n ) {\n const sub = {\n context: '*',\n subscribe: [\n {\n path: '*',\n period: 2000,\n },\n ],\n }\n\n this.props.webSocket.send(JSON.stringify(sub))\n this.state.webSocket = this.props.webSocket\n this.state.didSubscribe = true\n this.state.webSocket.messageHandler = this.handleMessage\n }\n }\n\n unsubscribeToData() {\n if (this.props.webSocket) {\n const sub = {\n context: '*',\n unsubscribe: [\n {\n path: '*',\n },\n ],\n }\n this.props.webSocket.send(JSON.stringify(sub))\n this.state.didSubscribe = false\n this.props.webSocket.messageHandler = null\n }\n }\n\n componentDidMount() {\n this.fetchSources()\n this.subscribeToDataIfNeeded()\n }\n\n componentDidUpdate() {\n this.subscribeToDataIfNeeded()\n }\n\n componentWillUnmount() {\n this.unsubscribeToData()\n }\n\n handleContextChange(event) {\n this.setState({ ...this.state, context: event.target.value })\n localStorage.setItem(contextStorageKey, event.target.value)\n }\n\n handleSearch(event) {\n this.setState({ ...this.state, search: event.target.value })\n localStorage.setItem(searchStorageKey, event.target.value)\n }\n\n handleMeta(event) {\n this.setState({ ...this.state, includeMeta: event.target.checked })\n localStorage.setItem(metaStorageKey, event.target.checked)\n }\n\n handlePause(event) {\n this.state.pause = event.target.checked\n this.setState(this.state)\n localStorage.setItem(pauseStorageKey, this.state.pause)\n if (this.state.pause) {\n this.unsubscribeToData()\n } else {\n this.fetchSources()\n this.subscribeToDataIfNeeded()\n }\n }\n\n render() {\n return (\n <div className=\"animated fadeIn\">\n <Card>\n <CardBody>\n <Form\n action=\"\"\n method=\"post\"\n encType=\"multipart/form-data\"\n className=\"form-horizontal\"\n onSubmit={(e) => {\n e.preventDefault()\n }}\n >\n <FormGroup row>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"select\"\n value={this.state.context}\n name=\"context\"\n onChange={this.handleContextChange}\n >\n <option value=\"none\">Select a context</option>\n {Object.keys(this.state.data || {})\n .sort()\n .map((key) => {\n return (\n <option key={key} value={key}>\n {key}\n </option>\n )\n })}\n </Input>\n </Col>\n <Col xs=\"8\" md=\"2\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n id=\"Meta\"\n name=\"meta\"\n className=\"switch-input\"\n onChange={this.handleMeta}\n checked={this.state.includeMeta}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n />\n <span className=\"switch-handle\" />\n </Label>{' '}\n Meta Data\n </Col>\n <Col xs=\"8\" md=\"2\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n id=\"Pause\"\n name=\"pause\"\n className=\"switch-input\"\n onChange={this.handlePause}\n checked={this.state.pause}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n />\n <span className=\"switch-handle\" />\n </Label>{' '}\n Pause\n </Col>\n </FormGroup>\n {this.state.context && this.state.context !== 'none' && (\n <FormGroup row>\n <Col xs=\"3\" md=\"2\">\n <Label htmlFor=\"select\">Search</Label>\n </Col>\n <Col xs=\"12\" md=\"12\">\n <Input\n type=\"text\"\n name=\"search\"\n onChange={this.handleSearch}\n value={this.state.search}\n />\n </Col>\n </FormGroup>\n )}\n\n {!this.state.includeMeta &&\n this.state.context &&\n this.state.context !== 'none' && (\n <Table responsive bordered striped size=\"sm\">\n <thead>\n <tr>\n <th>Path</th>\n <th>Value</th>\n <th>Units</th>\n <th>Timestamp</th>\n <th>Source</th>\n </tr>\n </thead>\n <tbody>\n {Object.keys(this.state.data[this.state.context] || {})\n .filter((key) => {\n return (\n !this.state.search ||\n this.state.search.length === 0 ||\n key\n .toLowerCase()\n .indexOf(this.state.search.toLowerCase()) !== -1\n )\n })\n .sort()\n .map((key) => {\n const data = this.state.data[this.state.context][key]\n const formatted = JSON.stringify(\n data.value,\n null,\n typeof data.value === 'object' &&\n Object.keys(data.value || {}).length > 1\n ? 2\n : 0\n )\n const meta =\n this.state.meta[this.state.context][data.path]\n const units = meta && meta.units ? meta.units : ''\n const path = key.substring(0, key.lastIndexOf('.'))\n\n return (\n <tr key={key}>\n <td>\n <CopyToClipboardWithFade text={data.path}>\n <span>\n {data.path} <i className=\"far fa-copy\"></i>\n </span>\n </CopyToClipboardWithFade>\n </td>\n <td>\n <pre\n className=\"text-primary\"\n style={{ whiteSpace: 'pre-wrap' }}\n >\n {formatted}\n </pre>\n </td>\n <td>{units}</td>\n <td>{data.timestamp}</td>\n <td>\n <CopyToClipboardWithFade text={data.path}>\n {data.$source} <i className=\"far fa-copy\"></i>\n </CopyToClipboardWithFade>{' '}\n {data.pgn || ''}\n {data.sentence || ''}\n </td>\n </tr>\n )\n })}\n </tbody>\n </Table>\n )}\n\n {this.state.includeMeta &&\n this.state.context &&\n this.state.context !== 'none' && (\n <Table responsive bordered striped size=\"sm\">\n <thead>\n <tr>\n <th>Path</th>\n <th>Meta</th>\n </tr>\n </thead>\n <tbody>\n {Object.keys(this.state.meta[this.state.context] || {})\n .filter((key) => {\n return (\n !this.state.search ||\n this.state.search.length === 0 ||\n key.indexOf(this.state.search) !== -1\n )\n })\n .sort()\n .map((key) => {\n const meta = this.state.meta[this.state.context][key]\n const formatted = JSON.stringify(meta, null, 2)\n const path = key\n return (\n <tr key={path}>\n <td>{path}</td>\n <td>\n <pre\n className=\"text-primary\"\n style={{ whiteSpace: 'pre-wrap' }}\n >\n {formatted}\n </pre>\n </td>\n </tr>\n )\n })}\n </tbody>\n </Table>\n )}\n </Form>\n </CardBody>\n </Card>\n\n {this.state.sources && (\n <Card>\n <CardHeader>Sources</CardHeader>\n <CardBody>\n <JSONTree\n data={this.state.sources}\n theme=\"default\"\n sortObjectKeys\n hideRoot\n />\n </CardBody>\n </Card>\n )}\n </div>\n )\n }\n}\n\nclass CopyToClipboardWithFade extends Component {\n constructor() {\n super()\n this.state = {\n opacity: 1,\n }\n }\n\n render() {\n const { opacity } = this.state\n const onCopy = function () {\n this.setState({ opacity: 0.5 })\n setTimeout(() => {\n this.setState({ opacity: 1 })\n }, 500)\n }.bind(this)\n return (\n <CopyToClipboard text={this.props.text} onCopy={onCopy}>\n <span style={{ opacity }}> {this.props.children}</span>\n </CopyToClipboard>\n )\n }\n}\n\nexport default connect(({ webSocket }) => ({ webSocket }))(DataBrowser)\n","import React, { Component, useState } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Badge,\n Button,\n Card,\n CardHeader,\n CardBody,\n CardFooter,\n InputGroup,\n InputGroupAddon,\n Input,\n Form,\n Col,\n Label,\n FormGroup,\n FormText,\n Table,\n Row,\n TabContent,\n TabPane,\n Nav,\n NavItem,\n NavLink,\n} from 'reactstrap'\nimport classnames from 'classnames'\n//import { Tabs, Tab, TabList, TabPanel } from 'react-tabs'\n//import 'react-tabs/style/react-tabs.css';\n\nimport moment from 'moment'\nimport jsonlint from 'jsonlint-mod'\n\nconst timestampFormat = 'MM/DD HH:mm:ss'\nconst inputStorageKey = 'admin.v1.playground.input'\n\nconst DELTAS_TAB_ID = 'deltas'\nconst PATHS_TAB_ID = 'paths'\nconst N2KJSON_TAB_ID = 'n2kjson'\nconst PUTRESULTS_TAB_ID = 'putresults'\nconst LINT_ERROR_TAB_ID = 'lintErrors'\n\nclass Playground extends Component {\n constructor(props) {\n super(props)\n const input = localStorage.getItem(inputStorageKey) || ''\n this.state = {\n hasData: true,\n data: [],\n deltas: [],\n n2kJson: [],\n input,\n inputIsJson: isJson(input),\n sending: false,\n activeTab: DELTAS_TAB_ID,\n }\n\n this.handleExecute = this.handleExecute.bind(this)\n this.handleInput = this.handleInput.bind(this)\n this.send = this.send.bind(this)\n this.beautify = this.beautify.bind(this)\n }\n\n handleInput(event) {\n this.setState({\n ...this.state,\n input: event.target.value,\n inputIsJson: isJson(event.target.value),\n })\n localStorage.setItem(inputStorageKey, event.target.value)\n if (this.inputWaitTimeout) {\n clearTimeout(this.inputWaitTimeout)\n }\n this.inputWaitTimeout = setTimeout(() => {\n if (this.state.input.length > 0) {\n this.send(false)\n }\n }, 500)\n }\n\n handleExecute(event) {\n this.send(true)\n }\n\n componentDidMount() {\n if (this.state.input && this.state.input.length > 0) {\n this.send(false)\n }\n }\n\n beautify() {\n try {\n jsonlint.parse(this.state.input)\n const text = JSON.stringify(JSON.parse(this.state.input), null, 2)\n this.setState({ ...this.state, input: text, jsonError: null })\n } catch (error) {\n this.setState({\n ...this.state,\n data: [],\n deltas: [],\n putResults: [],\n n2kJson: [],\n jsonError: null,\n error: 'invalid json',\n jsonError: error.message,\n activeTab: LINT_ERROR_TAB_ID,\n })\n }\n }\n\n send(sendToServer) {\n let start = this.state.input.trim().charAt(0)\n if (start === '{' || start === '[') {\n try {\n jsonlint.parse(this.state.input)\n if (this.state.activeTab === LINT_ERROR_TAB_ID) {\n this.setState({ ...this.state, activeTab: DELTAS_TAB_ID })\n }\n } catch (error) {\n this.setState({\n ...this.state,\n data: [],\n deltas: [],\n putResults: [],\n n2kJson: [],\n error: 'invalid json',\n jsonError: error.message,\n activeTab: LINT_ERROR_TAB_ID,\n })\n return\n }\n }\n\n const body = { value: this.state.input, sendToServer }\n localStorage.setItem(inputStorageKey, this.state.input)\n if (sendToServer) {\n this.setState({ ...this.state, sending: true })\n }\n fetch(`${window.serverRoutesPrefix}/inputTest`, {\n method: 'POST',\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(body),\n })\n .then((response) => response.json())\n .then((data) => {\n if (sendToServer) {\n setTimeout(() => {\n this.setState({ ...this.state, sending: false })\n }, 1000)\n }\n if (data.error) {\n this.setState({\n ...this.state,\n data: [],\n deltas: [],\n putResults: [],\n n2kJson: [],\n jsonError: null,\n error: data.error,\n })\n } else {\n this.state.error = null\n this.setState(this.state)\n const values = []\n data.deltas.forEach((delta) => {\n if (!delta.context) {\n delta.context = 'vessels.self'\n }\n if (delta.updates) {\n delta.updates.forEach((update) => {\n if (update.values) {\n update.values.forEach((vp) => {\n if (vp.path === '') {\n Object.keys(vp.value).forEach((k) => {\n values.push({\n path: k,\n value: vp.value[k],\n context: delta.context,\n timestamp: moment(update.timestamp).format(\n timestampFormat\n ),\n })\n })\n } else {\n values.push({\n path: vp.path,\n value: vp.value,\n context: delta.context,\n timestamp: moment(update.timestamp).format(\n timestampFormat\n ),\n })\n }\n })\n }\n })\n }\n })\n this.setState({\n ...this.state,\n data: values,\n deltas: data.deltas,\n n2kJson: data.n2kJson,\n putResults: data.putResults,\n jsonError: null,\n })\n }\n })\n .catch((error) => {\n console.error(error)\n this.setState({\n ...this.state,\n data: [],\n deltas: [],\n putResults: [],\n n2kJson: [],\n error: error.message,\n jsonError: null,\n })\n if (sendToServer) {\n this.setState({ ...this.state, sending: false })\n }\n })\n }\n\n render() {\n const toggle = (tab) => {\n this.setState({ ...this.state, activeTab: tab })\n }\n return (\n this.state.hasData && (\n <div className=\"animated fadeIn\">\n <Row>\n <Col xs=\"12\" md=\"6\">\n <Card>\n <CardHeader>Input</CardHeader>\n <CardBody>\n <Form\n action=\"\"\n method=\"post\"\n encType=\"multipart/form-data\"\n className=\"form-horizontal\"\n onSubmit={(e) => {\n e.preventDefault()\n }}\n >\n <FormGroup row>\n <Col xs=\"12\" md=\"12\">\n <FormText color=\"muted\">\n You can enter multi-line raw NMEA 2000, NMEA 0183 or\n Signal K deltas (one delta or an array)\n </FormText>\n <Input\n type=\"textarea\"\n name=\"input\"\n rows=\"15\"\n onChange={this.handleInput}\n value={this.state.input}\n />\n </Col>\n </FormGroup>\n </Form>\n </CardBody>\n <CardFooter>\n <Button\n size=\"sm\"\n color=\"primary\"\n className=\"float-left\"\n disabled={!this.state.inputIsJson}\n onClick={this.beautify}\n >\n <i className=\"fa fa-dot-circle-o\" /> Beautify JSON\n </Button>\n <span\n className=\"float-left\"\n style={{ paddingLeft: '10px', paddingTop: '0.25rem' }}\n >\n {' '}\n {this.state.error && (\n <p className=\"text-danger\">{this.state.error}</p>\n )}\n </span>{' '}\n <Button\n size=\"sm\"\n color=\"primary\"\n onClick={this.handleExecute}\n className=\"float-right\"\n >\n <i\n className={\n this.state.sending\n ? 'fa fa-spinner fa-spin'\n : 'fa fa-dot-circle-o'\n }\n />{' '}\n Send To Server\n </Button>\n </CardFooter>\n </Card>\n </Col>\n <Col xs=\"12\" md=\"6\">\n <Card>\n <CardHeader>Output</CardHeader>\n <CardBody>\n <Nav tabs>\n <NavItem>\n <NavLink\n className={classnames({\n active: this.state.activeTab === DELTAS_TAB_ID,\n })}\n onClick={() => {\n toggle(DELTAS_TAB_ID)\n }}\n >\n Deltas\n </NavLink>\n </NavItem>\n {this.state.data.length > 0 && (\n <NavItem>\n <NavLink\n className={classnames({\n active: this.state.activeTab === PATHS_TAB_ID,\n })}\n onClick={() => {\n toggle(PATHS_TAB_ID)\n }}\n >\n Paths\n </NavLink>\n </NavItem>\n )}\n {this.state.n2kJson && this.state.n2kJson.length > 0 && (\n <NavItem>\n <NavLink\n className={classnames({\n active: this.state.activeTab === N2KJSON_TAB_ID,\n })}\n onClick={() => {\n toggle(N2KJSON_TAB_ID)\n }}\n >\n Decoded NMEA 2000\n </NavLink>\n </NavItem>\n )}\n {this.state.putResults && this.state.putResults.length > 0 && (\n <NavItem>\n <NavLink\n className={classnames({\n active: this.state.activeTab === PUTRESULTS_TAB_ID,\n })}\n onClick={() => {\n toggle(PUTRESULTS_TAB_ID)\n }}\n >\n Put Results\n </NavLink>\n </NavItem>\n )}\n {this.state.jsonError && (\n <NavItem>\n <NavLink\n className={classnames({\n active: this.state.activeTab === LINT_ERROR_TAB_ID,\n })}\n onClick={() => {\n toggle(LINT_ERROR_TAB_ID)\n }}\n >\n Json Lint Error\n </NavLink>\n </NavItem>\n )}\n </Nav>\n <TabContent activeTab={this.state.activeTab}>\n <TabPane tabId={DELTAS_TAB_ID}>\n {this.state.deltas.length > 0 && (\n <div\n style={{\n overflowY: 'scroll',\n maxHeight: '60vh',\n border: '1px solid',\n padding: '5px',\n }}\n >\n <pre>\n {JSON.stringify(this.state.deltas, null, 2)}\n </pre>\n </div>\n )}\n </TabPane>\n\n {this.state.data.length > 0 && (\n <TabPane tabId={PATHS_TAB_ID}>\n <div style={{ overflowY: 'scroll', maxHeight: '60vh' }}>\n <Table responsive bordered striped size=\"sm\">\n <thead>\n <tr>\n <th>Path</th>\n <th>Value</th>\n <th>Context</th>\n </tr>\n </thead>\n <tbody>\n {this.state.data.map((data) => {\n const formatted = JSON.stringify(\n data.value,\n null,\n typeof data.value === 'object' &&\n data.value !== null &&\n Object.keys(data.value).length > 1\n ? 2\n : 0\n )\n const path = data.path\n const key = `${data.path}${data.context}`\n\n return (\n <tr key={key}>\n <td>{data.path}</td>\n <td>\n <pre\n className=\"text-primary\"\n style={{ whiteSpace: 'pre-wrap' }}\n >\n {formatted}\n </pre>\n </td>\n <td>{data.context}</td>\n </tr>\n )\n })}\n </tbody>\n </Table>\n </div>\n </TabPane>\n )}\n\n {this.state.n2kJson &&\n this.state.n2kJson.length > 0 &&\n n2kJsonPanel(this.state.n2kJson)}\n\n {this.state.putResults && this.state.putResults.length > 0 && (\n <TabPane tabId={PUTRESULTS_TAB_ID}>\n <div\n style={{\n overflowY: 'scroll',\n maxHeight: '60vh',\n border: '1px solid',\n padding: '5px',\n }}\n >\n <pre>\n {JSON.stringify(this.state.putResults, null, 2)}\n </pre>\n </div>\n </TabPane>\n )}\n\n {this.state.jsonError && (\n <TabPane tabId={LINT_ERROR_TAB_ID}>\n <div\n style={{\n overflowY: 'scroll',\n maxHeight: '60vh',\n border: '1px solid',\n padding: '5px',\n }}\n >\n <pre>{this.state.jsonError}</pre>\n </div>\n </TabPane>\n )}\n </TabContent>\n </CardBody>\n </Card>\n </Col>\n </Row>\n </div>\n )\n )\n }\n}\n\nfunction n2kJsonPanel(n2kData) {\n return (\n <TabPane tabId={N2KJSON_TAB_ID}>\n <div\n style={{\n overflowY: 'scroll',\n maxHeight: '60vh',\n border: '1px solid',\n padding: '5px',\n }}\n >\n <pre>{JSON.stringify(n2kData, null, 2)}</pre>\n </div>\n </TabPane>\n )\n}\n\nfunction isJson(input) {\n let inputIsJson = false\n try {\n JSON.parse(input)\n inputIsJson = true\n } catch (e) {}\n return inputIsJson\n}\n\nexport default connect(({ webSocket }) => ({ webSocket }))(Playground)\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Badge,\n Row,\n Col,\n Card,\n CardHeader,\n CardBody,\n Table,\n Pagination,\n PaginationItem,\n PaginationLink,\n Progress,\n} from 'reactstrap'\n\nclass ThisSession extends Component {\n render() {\n var thisSessionApps = this.props.installingApps\n if (thisSessionApps && thisSessionApps.length) {\n return (\n <div>\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\" /> Installed This Session\n (restart required)\n </CardHeader>\n <CardBody>\n <Table responsive bordered striped size=\"sm\">\n <thead>\n <tr>\n <th>Status</th>\n <th>Name</th>\n <th>Version</th>\n <th>Description</th>\n <th>Author</th>\n <th>NPM</th>\n </tr>\n </thead>\n <tbody>\n {thisSessionApps.map((app) => {\n var status\n var progress = ''\n if (app.isInstalling || app.isRemoving || app.isWaiting) {\n status = app.isRemove ? 'Removing' : 'Installing'\n progress = (\n <Progress\n className=\"progress-sm\"\n animated\n color=\"success\"\n value=\"100\"\n />\n )\n } else if (app.installFailed) {\n status = 'Failed'\n } else {\n status = 'Installed '\n status = app.isRemove ? 'Removed' : 'Installed'\n }\n\n return (\n <tr key={app.name}>\n <td>\n {status}\n {progress}\n </td>\n <td>{app.name}</td>\n <td>{app.version}</td>\n <td>{app.description}</td>\n <td>{app.author}</td>\n <td>\n <a href={app.npmUrl}>npm</a>\n </td>\n </tr>\n )\n })}\n </tbody>\n </Table>\n </CardBody>\n </Card>\n </div>\n )\n } else {\n return ''\n }\n }\n}\n\nexport default ThisSession\n","import React, { Component } from 'react'\n\nimport { Button } from 'reactstrap'\n\nclass AppsList extends Component {\n constructor(props) {\n super(props)\n this.state = {\n installing: {},\n }\n }\n\n render() {\n return (\n <ul className=\"icons-list\">\n {(this.props.apps || [])\n .filter(\n (app) => app.keywords.indexOf('signalk-category-hidden') === -1\n )\n .map((app) => (\n <li key={app.name} style={{ borderBottom: '1px solid #a4b7c1' }}>\n {mainIcon(app)}\n <div\n className=\"desc\"\n style={{\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n marginRight: '90px',\n }}\n >\n <a\n href={app.npmUrl}\n target=\"_blank\"\n title=\"Open package on npmjs.com\"\n >\n <i className=\"icon-info\" />\n </a>\n <div className=\"title\">\n <b>\n {app.name}{' '}\n {app.categories.indexOf('Deprecated') !== -1\n ? '(Deprecated)'\n : ''}\n </b>\n </div>\n <small>\n {app.description} by {app.author}\n </small>\n </div>\n <div className=\"value\">\n <div className=\"small text-muted\">Version</div>\n <strong>\n {app.installedVersion || app.version}\n {app.installedVersion &&\n app.version != app.installedVersion &&\n this.props.listName !== 'installed' &&\n ' \\u27a1 ' + app.version}\n </strong>\n </div>\n <div className=\"actions\">\n {this.props.listName !== 'installed' &&\n (!app.installedVersion ||\n (this.props.listName === 'updates' &&\n app.version != app.installedVersion)) && (\n <Button\n color=\"link\"\n className=\"text-muted\"\n onClick={installApp.bind(this, app.name, app.version)}\n >\n <i\n className={\n this.state.installing[app.name]\n ? 'fa fa-spinner fa-spin'\n : 'icon-cloud-download'\n }\n />\n </Button>\n )}\n\n {this.props.listName !== 'updates' && app.installedVersion && (\n <Button\n color=\"link\"\n className=\"text-danger\"\n onClick={removeApp.bind(this, app.name)}\n >\n <i\n className={\n this.state.installing[app.name]\n ? 'fa fa-spinner fa-spin'\n : 'fas fa-trash'\n }\n />\n </Button>\n )}\n </div>\n </li>\n ))}\n </ul>\n )\n }\n}\n\nfunction mainIcon(app) {\n return (\n <span>\n {app.isWebapp && <i className=\"icon-grid bg-primary\" title=\"webapp\" />}\n {app.isEmbeddableWebapp && (\n <i className=\"icon-puzzle bg-primary\" title=\"embeddable webapp\" />\n )}\n {app.isPlugin && (\n <i className=\"icon-settings bg-success\" title=\"plugin\" />\n )}\n </span>\n )\n}\n\nfunction updateInstalling(that, name, value) {\n that.setState((state, props) => {\n state.installing[name] = value\n return { installing: state.installing }\n })\n}\n\nfunction installApp(name, version) {\n updateInstalling(this, name, true)\n fetch(`${window.serverRoutesPrefix}/appstore/install/${name}/${version}`, {\n method: 'POST',\n credentials: 'include',\n })\n}\n\nfunction removeApp(name) {\n if (confirm(`Are you sure you want to remove ${name}?`)) {\n updateInstalling(this, name, true)\n fetch(`${window.serverRoutesPrefix}/appstore/remove/${name}`, {\n method: 'POST',\n credentials: 'include',\n })\n }\n}\n\nexport default AppsList\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n Form,\n FormGroup,\n Col,\n Input,\n Label,\n} from 'reactstrap'\nimport ThisSession from './ThisSession'\nimport AppsList from './AppsList'\n\nconst viewParams = {\n apps: {\n listName: 'available',\n title: 'Available Apps',\n defaultCategory: 'New/Updated',\n },\n installed: {\n listName: 'installed',\n title: 'Installed Apps',\n defaultCategory: 'All',\n },\n updates: {\n listName: 'updates',\n title: 'Available Updates',\n defaultCategory: 'All',\n },\n}\n\nclass AppTable extends Component {\n constructor(props) {\n super(props)\n\n const viewData = viewParams[this.props.match.params.view]\n\n let categorized = this.categorize(viewData.defaultCategory)\n\n this.state = {\n category: viewData.defaultCategory,\n categorized: categorized,\n search: '',\n }\n\n this.handleCategoryChange = this.handleCategoryChange.bind(this)\n this.handleSearch = this.handleSearch.bind(this)\n }\n\n categorize(category) {\n const viewData = viewParams[this.props.match.params.view]\n const apps = this.props.appStore[viewData.listName]\n return category === 'All'\n ? apps\n : apps.filter((app) => app.categories.indexOf(category) !== -1)\n }\n\n componentDidUpdate() {\n if (!this.state.categorized || !this.state.categorized.length) {\n const categorized = this.categorize(this.state.category)\n if (categorized && categorized.length) {\n this.setState({ categorized })\n }\n }\n }\n\n handleCategoryChange(event) {\n let searchResults\n let categorized = this.categorize(event.target.value)\n\n if (this.state.search.length > 0) {\n searchResults = this.searchApps(categorized, this.state.search)\n }\n\n this.setState({\n category: event.target.value,\n categorized,\n searchResults,\n })\n }\n\n searchApps(apps, searchString) {\n const lowerCase = searchString.toLowerCase()\n return apps.filter((app) => {\n return (\n app.keywords.filter((k) => k.toLowerCase().includes(lowerCase))\n .length ||\n app.name.toLowerCase().includes(lowerCase) ||\n (app.description &&\n app.description.toLowerCase().includes(lowerCase)) ||\n (app.author && app.author.toLowerCase().includes(lowerCase))\n )\n })\n }\n\n handleSearch(event) {\n let searchResults = null\n const search = event.target.value\n if (search.length !== 0) {\n searchResults = this.searchApps(this.state.categorized, search)\n }\n\n this.setState({ search, searchResults })\n }\n\n render() {\n const viewData = viewParams[this.props.match.params.view]\n return (\n <div className=\"animated fadeIn\">\n <ThisSession installingApps={this.props.appStore.installing} />\n {!this.props.appStore.storeAvailable && (\n <Card className=\"border-warning\">\n <CardHeader>Appstore not available</CardHeader>\n <CardBody>\n You probably don't have Internet connectivity and Appstore can not\n be reached.\n </CardBody>\n </Card>\n )}\n {this.props.appStore.storeAvailable && (\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\" /> {viewData.title}\n </CardHeader>\n <CardBody>\n <Form\n action=\"\"\n method=\"post\"\n encType=\"multipart/form-data\"\n className=\"form-horizontal\"\n onSubmit={(e) => {\n e.preventDefault()\n }}\n >\n <FormGroup row>\n <Col xs=\"12\" md=\"3\">\n <Input\n type=\"select\"\n value={this.state.category}\n name=\"context\"\n onChange={this.handleCategoryChange}\n >\n {this.props.appStore.categories.map((key) => {\n return (\n <option disabled={key == '---'} key={key} value={key}>\n {key}\n </option>\n )\n })}\n </Input>\n </Col>\n <Col xs=\"3\" md=\"1\" className={'col-form-label'}>\n <Label htmlFor=\"select\">Search</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"text\"\n name=\"search\"\n onChange={this.handleSearch}\n value={this.state.search}\n />\n </Col>\n </FormGroup>\n </Form>\n <AppsList\n apps={this.state.searchResults || this.state.categorized}\n storeAvailable={this.props.appStore.storeAvailable}\n listName={viewData.listName}\n />\n </CardBody>\n </Card>\n )}\n </div>\n )\n }\n}\n\nconst mapStateToProps = ({ appStore }) => ({ appStore })\n\nexport default connect(mapStateToProps)(AppTable)\n","import React, { Component } from 'react'\nimport Form from 'react-jsonschema-form-bs4'\n\nexport default ({ plugin, onSubmit }) => {\n const schema = JSON.parse(JSON.stringify(plugin.schema))\n var uiSchema = {}\n\n if (typeof plugin.uiSchema !== 'undefined') {\n uiSchema['configuration'] = JSON.parse(JSON.stringify(plugin.uiSchema))\n }\n\n const topSchema = {\n type: 'object',\n properties: {\n configuration: {\n type: 'object',\n title: ' ',\n description: schema.description,\n type: 'object',\n properties: schema.properties,\n },\n },\n }\n\n if (plugin.statusMessage) {\n topSchema.description = `Status: ${plugin.statusMessage}`\n }\n\n const { enabled, enableLogging, enableDebug } = plugin.data\n return (\n <Form\n schema={topSchema}\n uiSchema={uiSchema}\n formData={plugin.data || {}}\n onSubmit={(submitData) => {\n onSubmit({\n ...submitData.formData,\n enabled,\n enableLogging,\n enableDebug,\n })\n }}\n />\n )\n}\n","import React, { Component, Suspense } from 'react'\nimport {\n PLUGIN_CONFIG_PANEL,\n toLazyDynamicComponent,\n} from '../Webapps/dynamicutilities'\n\nexport default class EmbeddedPluginConfigurationForm extends Component {\n constructor(props) {\n super(props)\n this.state = {\n component: toLazyDynamicComponent(\n props.plugin.packageName,\n PLUGIN_CONFIG_PANEL\n ),\n configuration: this.props.plugin.data.configuration,\n }\n }\n\n render() {\n return (\n <div>\n <Suspense fallback=\"Loading...\">\n {React.createElement(this.state.component, {\n configuration: this.state.configuration,\n save: (configuration) => {\n this.props.saveData({\n ...this.props.plugin.data,\n configuration,\n })\n this.setState({ configuration })\n },\n })}\n </Suspense>\n </div>\n )\n }\n}\n","import React, { Component } from 'react'\nimport PluginConfigurationForm from './../ServerConfig/PluginConfigurationForm'\nimport {\n Button,\n Container,\n Card,\n CardBody,\n CardHeader,\n Row,\n Col,\n Input,\n Label,\n Form,\n FormGroup,\n} from 'reactstrap'\nimport EmbeddedPluginConfigurationForm from './EmbeddedPluginConfigurationForm'\nimport { Fragment } from 'react'\n\nconst searchStorageKey = 'admin.v1.plugins.search'\nconst openPluginStorageKey = 'admin.v1.plugins.openPlugin'\n\nexport default class PluginConfigurationList extends Component {\n constructor(props) {\n super(props)\n this.state = {\n plugins: [],\n search: localStorage.getItem(searchStorageKey) || '',\n searchResults: null,\n }\n this.lastOpenedPlugin = '--'\n this.handleSearch = this.handleSearch.bind(this)\n }\n\n searchPlugins(plugins, searchString) {\n const lowerCase = searchString.toLowerCase()\n return plugins.filter((plugin) => {\n return (\n plugin.id.toLowerCase().includes(lowerCase) ||\n plugin.packageName.toLowerCase().includes(lowerCase) ||\n (plugin.description &&\n plugin.description.toLowerCase().includes(lowerCase)) ||\n plugin.name.toLowerCase().includes(lowerCase)\n )\n })\n }\n\n handleSearch(event) {\n let searchResults = null\n const search = event.target.value\n if (search.length !== 0) {\n searchResults = this.searchPlugins(this.state.plugins, search)\n }\n\n this.setState({ search, searchResults })\n localStorage.setItem(searchStorageKey, event.target.value)\n }\n\n toggleForm(clickedIndex, id) {\n const openedPluginId = this.props.match.params.pluginid === id ? '-' : id\n if (this.props.match.params.pluginid === id) {\n localStorage.removeItem(openPluginStorageKey)\n } else {\n localStorage.setItem(openPluginStorageKey, openedPluginId)\n }\n this.props.history.replace(`/serverConfiguration/plugins/${openedPluginId}`)\n }\n\n componentDidMount() {\n fetch(`${window.serverRoutesPrefix}/plugins`, {\n credentials: 'same-origin',\n })\n .then((response) => {\n if (response.status == 200) {\n return response.json()\n } else {\n throw new Error('/plugins request failed:' + response.status)\n }\n })\n .then((plugins) => {\n let searchResults\n if (this.state.search.length > 0) {\n searchResults = this.searchPlugins(plugins, this.state.search)\n }\n this.setState({ plugins, searchResults })\n })\n .catch((error) => {\n console.error(error)\n alert('Could not fetch plugins list')\n })\n }\n\n render() {\n return (\n <Container>\n <Form\n action=\"\"\n method=\"post\"\n encType=\"multipart/form-data\"\n className=\"form-horizontal\"\n onSubmit={(e) => {\n e.preventDefault()\n }}\n >\n <FormGroup row>\n <Col xs=\"3\" md=\"1\" className={'col-form-label'}>\n <Label htmlFor=\"select\">Search</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"text\"\n name=\"search\"\n onChange={this.handleSearch}\n value={this.state.search}\n />\n </Col>\n </FormGroup>\n </Form>\n {(this.state.searchResults || this.state.plugins).map((plugin, i) => {\n //const isOpen = this.props.match.params.pluginid === plugin.id\n const isOpen =\n localStorage.getItem(openPluginStorageKey) === plugin.id\n return (\n <PluginCard\n plugin={plugin}\n isConfigurator={isConfigurator(plugin)}\n key={i}\n isOpen={isOpen}\n toggleForm={this.toggleForm.bind(this, i, plugin.id)}\n saveData={(data) => {\n if (plugin.data.configuration === undefined) {\n data.enabled = true\n }\n this.props.history.replace(`/serverConfiguration/plugins/-`)\n this.saveData(plugin.id, data, i)\n }}\n />\n )\n })}\n </Container>\n )\n }\n\n saveData(id, data, i) {\n fetch(`${window.serverRoutesPrefix}/plugins/${id}/config`, {\n method: 'POST',\n body: JSON.stringify(data),\n headers: new Headers({ 'Content-Type': 'application/json' }),\n credentials: 'same-origin',\n }).then((response) => {\n if (response.status != 200) {\n console.error(response)\n alert('Saving plugin settings failed')\n } else {\n const plugins = [...this.state.plugins]\n plugins[i].data = data\n this.setState({ plugins })\n }\n })\n }\n}\n\nconst isConfigurator = (pluginData) =>\n pluginData.keywords.includes('signalk-plugin-configurator')\n\nclass PluginCard extends Component {\n render() {\n const labelStyle = { marginLeft: '10px', marginBottom: '0px' }\n const { schema } = this.props.plugin\n const noConfigurationRequired =\n schema &&\n schema.properties &&\n Object.keys(this.props.plugin.schema.properties).length == 0\n const canbeEnabled =\n this.props.plugin.data.configuration || noConfigurationRequired\n return (\n <div\n ref={(card) => {\n this.card = card\n }}\n >\n <Card>\n <CardHeader>\n <Row>\n <Col xs={4} onClick={this.props.toggleForm}>\n <i\n style={{ marginRight: '10px' }}\n className={\n 'fa fa-chevron-' + (this.props.isOpen ? 'down' : 'right')\n }\n />\n {this.props.plugin.name}\n </Col>\n {!this.props.plugin.data.configuration && !this.props.isOpen && (\n <Col xs=\"2\">\n <Button\n size=\"sm\"\n color=\"primary\"\n style={{ width: '100%' }}\n onClick={this.props.toggleForm}\n >\n Configure\n </Button>\n </Col>\n )}\n {canbeEnabled && (\n <Fragment>\n <Col xs=\"2\">\n Enabled\n <Label\n style={labelStyle}\n className=\"switch switch-text switch-primary\"\n >\n <Input\n type=\"checkbox\"\n name=\"enabled\"\n className=\"switch-input\"\n onChange={(e) => {\n this.props.saveData({\n ...this.props.plugin.data,\n enabled: !this.props.plugin.data.enabled,\n })\n }}\n checked={this.props.plugin.data.enabled}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n />\n <span className=\"switch-handle\" />\n </Label>\n </Col>\n <Col xs=\"3\">\n Log plugin output\n <Label\n style={labelStyle}\n className=\"switch switch-text switch-primary\"\n >\n <Input\n type=\"checkbox\"\n name=\"enableLogging\"\n className=\"switch-input\"\n onChange={(e) => {\n this.props.saveData({\n ...this.props.plugin.data,\n enableLogging:\n !this.props.plugin.data.enableLogging,\n })\n }}\n checked={this.props.plugin.data.enableLogging}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n />\n <span className=\"switch-handle\" />\n </Label>\n </Col>\n <Col xs=\"3\">\n Enable debug log\n <Label\n style={labelStyle}\n className=\"switch switch-text switch-primary\"\n >\n <Input\n type=\"checkbox\"\n name=\"enableDebug\"\n className=\"switch-input\"\n onChange={(e) => {\n this.props.saveData({\n ...this.props.plugin.data,\n enableDebug: !this.props.plugin.data.enableDebug,\n })\n }}\n checked={this.props.plugin.data.enableDebug}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n />\n <span className=\"switch-handle\" />\n </Label>\n </Col>\n </Fragment>\n )}\n </Row>\n </CardHeader>\n {this.props.isOpen && (\n <CardBody>\n {!this.props.isConfigurator && (\n <PluginConfigurationForm\n plugin={this.props.plugin}\n onSubmit={this.props.saveData}\n />\n )}\n {this.props.isConfigurator && (\n <EmbeddedPluginConfigurationForm {...this.props} />\n )}\n </CardBody>\n )}\n </Card>\n </div>\n )\n }\n\n componentDidMount() {\n if (this.props.isOpen) {\n window.scrollTo({ top: this.card.offsetTop - 54, behavior: 'smooth' })\n }\n }\n}\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n CardFooter,\n InputGroup,\n InputGroupAddon,\n Input,\n Form,\n Col,\n Label,\n FormGroup,\n FormText,\n Table,\n Row,\n} from 'reactstrap'\nimport EnableSecurity from './EnableSecurity'\n\nexport function fetchSecurityConfig() {\n fetch(`${window.serverRoutesPrefix}/security/config`, {\n credentials: 'include',\n })\n .then((response) => response.json())\n .then((data) => {\n this.setState({ ...data, hasData: true })\n })\n}\n\nclass Settings extends Component {\n constructor(props) {\n super(props)\n this.state = {\n hasData: false,\n }\n\n this.handleChange = this.handleChange.bind(this)\n this.handleSaveConfig = this.handleSaveConfig.bind(this)\n this.fetchSecurityConfig = fetchSecurityConfig.bind(this)\n }\n\n componentDidMount() {\n if (this.props.loginStatus.authenticationRequired) {\n this.fetchSecurityConfig()\n }\n }\n\n componentDidUpdate(prevProps) {\n if (\n this.props.loginStatus.authenticationRequired !=\n prevProps.loginStatus.authenticationRequired\n ) {\n this.fetchSecurityConfig()\n }\n }\n\n handleChange(event) {\n const value =\n event.target.type === 'checkbox'\n ? event.target.checked\n : event.target.value\n this.setState({ [event.target.name]: value })\n }\n\n handleSaveConfig() {\n var payload = {\n allow_readonly: this.state.allow_readonly,\n expiration: this.state.expiration,\n allowNewUserRegistration: this.state.allowNewUserRegistration,\n allowDeviceAccessRequests: this.state.allowDeviceAccessRequests,\n }\n fetch(`${window.serverRoutesPrefix}/security/config`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n credentials: 'include',\n })\n .then((response) => response.text())\n .then((response) => {\n this.fetchSecurityConfig()\n alert(response)\n })\n }\n\n render() {\n return (\n <div className=\"animated fadeIn\">\n {this.props.loginStatus.authenticationRequired === false && (\n <EnableSecurity />\n )}\n {this.state.hasData && this.props.loginStatus.authenticationRequired && (\n <div>\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\" />\n Settings\n </CardHeader>\n <CardBody>\n <Form\n action=\"\"\n method=\"post\"\n encType=\"multipart/form-data\"\n className=\"form-horizontal\"\n >\n <FormGroup row>\n <Col xs=\"0\" md=\"2\">\n <Label>Allow Readonly Access</Label>\n </Col>\n <Col md=\"9\">\n <FormGroup check>\n <div>\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"allow_readonly\"\n className=\"switch-input\"\n onChange={this.handleChange}\n checked={this.state.allow_readonly}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n />\n <span className=\"switch-handle\" />\n </Label>\n </div>\n </FormGroup>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col xs=\"0\" md=\"3\">\n <Label>Allow New User Registration</Label>\n </Col>\n <Col md=\"9\">\n <FormGroup check>\n <div>\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"allowNewUserRegistration\"\n className=\"switch-input\"\n onChange={this.handleChange}\n checked={this.state.allowNewUserRegistration}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n ></span>\n <span className=\"switch-handle\"></span>\n </Label>\n </div>\n </FormGroup>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col xs=\"0\" md=\"3\">\n <Label>Allow New Device Registration</Label>\n </Col>\n <Col md=\"9\">\n <FormGroup check>\n <div>\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"allowDeviceAccessRequests\"\n className=\"switch-input\"\n onChange={this.handleChange}\n checked={this.state.allowDeviceAccessRequests}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n ></span>\n <span className=\"switch-handle\"></span>\n </Label>\n </div>\n </FormGroup>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"text-input\">Login Session Timeout</Label>\n </Col>\n <Col xs=\"12\" md=\"9\">\n <Input\n type=\"text\"\n name=\"expiration\"\n onChange={this.handleChange}\n value={this.state.expiration}\n />\n <FormText color=\"muted\">\n Exmaples: 60s, 1m, 1h, 1d\n </FormText>\n </Col>\n </FormGroup>\n </Form>\n </CardBody>\n <CardFooter>\n <Button\n size=\"sm\"\n color=\"primary\"\n onClick={this.handleSaveConfig}\n >\n <i className=\"fa fa-dot-circle-o\" /> Save\n </Button>\n </CardFooter>\n </Card>\n </div>\n )}\n </div>\n )\n }\n}\n\nconst mapStateToProps = ({ loginStatus }) => ({ loginStatus })\n\nexport default connect(mapStateToProps)(Settings)\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n CardFooter,\n InputGroup,\n InputGroupAddon,\n Input,\n Form,\n Col,\n Label,\n FormGroup,\n FormText,\n Table,\n Row,\n} from 'reactstrap'\nimport EnableSecurity from './EnableSecurity'\n\nexport function fetchSecurityUsers() {\n fetch(`${window.serverRoutesPrefix}/security/users`, {\n credentials: 'include',\n })\n .then((response) => response.json())\n .then((data) => {\n this.setState({ users: data })\n })\n}\n\nclass Users extends Component {\n constructor(props) {\n super(props)\n this.state = {}\n\n this.handleAddUser = this.handleAddUser.bind(this)\n this.fetchSecurityUsers = fetchSecurityUsers.bind(this)\n this.handleCancel = this.handleCancel.bind(this)\n this.handleApply = this.handleApply.bind(this)\n this.handleUserChange = this.handleUserChange.bind(this)\n this.deleteUser = this.deleteUser.bind(this)\n }\n\n componentDidMount() {\n if (this.props.loginStatus.authenticationRequired) {\n this.fetchSecurityUsers()\n }\n }\n\n componentDidUpdate(prevProps) {\n if (\n this.props.loginStatus.authenticationRequired !=\n prevProps.loginStatus.authenticationRequired\n ) {\n this.fetchSecurityUsers()\n }\n }\n\n handleUserChange(event) {\n const value =\n event.target.type === 'checkbox'\n ? event.target.checked\n : event.target.value\n this.state.selectedUser[event.target.name] = value\n this.setState({\n selectedUser: this.state.selectedUser,\n })\n }\n\n handleAddUser(event) {\n var newUser = {\n type: 'readonly',\n isNew: true,\n }\n this.setState(\n {\n selectedUser: newUser,\n selectedIndex: this.state.users.length - 1,\n },\n () => {\n this.refs['selectedUser'].scrollIntoView()\n }\n )\n }\n\n handleApply(event) {\n event.preventDefault()\n\n if (\n !this.state.selectedUser.userId ||\n this.state.selectedUser.userId.length == 0\n ) {\n alert('Please specify a User Id')\n return\n }\n\n if (this.state.selectedUser.password) {\n if (\n this.state.selectedUser.password !=\n this.state.selectedUser.confirmPassword\n ) {\n alert('Passwords do not match')\n return\n }\n }\n\n var isNew = this.state.selectedUser.isNew\n\n var payload = {\n password: this.state.selectedUser.password,\n type: this.state.selectedUser.type || 'readonly',\n }\n\n fetch(\n `${window.serverRoutesPrefix}/security/users/${this.state.selectedUser.userId}`,\n {\n method: isNew ? 'POST' : 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n credentials: 'include',\n }\n )\n .then((response) => response.text())\n .then((response) => {\n this.setState({\n selectedUser: null,\n selectedIndex: -1,\n })\n alert(response)\n this.fetchSecurityUsers()\n })\n }\n\n deleteUser(event) {\n fetch(\n `${window.serverRoutesPrefix}/security/users/${this.state.selectedUser.userId}`,\n {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json',\n },\n credentials: 'include',\n }\n )\n .then((response) => response.text())\n .then((response) => {\n this.setState({\n selectedUser: null,\n selectedIndex: -1,\n })\n alert(response)\n this.fetchSecurityUsers()\n })\n }\n\n userClicked(user, index) {\n this.setState(\n {\n selectedUser: JSON.parse(JSON.stringify(user)),\n selectedIndex: index,\n },\n () => {\n this.refs['selectedUser'].scrollIntoView()\n }\n )\n }\n\n handleCancel(event) {\n this.setState({ selectedUser: null })\n }\n render() {\n return (\n <div className=\"animated fadeIn\">\n {this.props.loginStatus.authenticationRequired === false && (\n <EnableSecurity />\n )}\n {this.state.users && this.props.loginStatus.authenticationRequired && (\n <div>\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\" />\n Users\n </CardHeader>\n <CardBody>\n <Table hover responsive bordered striped size=\"sm\">\n <thead>\n <tr>\n <th>User ID</th>\n <th>Type</th>\n </tr>\n </thead>\n <tbody>\n {(this.state.users || []).map((user, index) => {\n return (\n <tr\n key={user.userId}\n onClick={this.userClicked.bind(this, user, index)}\n >\n <td>{user.userId}</td>\n <td>{convertType(user.type)}</td>\n </tr>\n )\n })}\n </tbody>\n </Table>\n </CardBody>\n <CardFooter>\n <Button size=\"sm\" color=\"primary\" onClick={this.handleAddUser}>\n <i className=\"fa fa-plus-circle\" /> Add\n </Button>\n </CardFooter>\n </Card>\n\n {this.state.selectedUser && (\n <div ref=\"selectedUser\">\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\" />\n User\n </CardHeader>\n <CardBody>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"userid\">User ID</Label>\n </Col>\n <Col xs=\"12\" md=\"9\">\n {this.state.selectedUser.isNew && (\n <Input\n type=\"text\"\n name=\"userId\"\n value={this.state.selectedUser.userId}\n onChange={this.handleUserChange}\n />\n )}\n {!this.state.selectedUser.isNew && (\n <Label>{this.state.selectedUser.userId}</Label>\n )}\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"password\">Password</Label>\n </Col>\n <Col xs=\"12\" md=\"9\">\n <Input\n type=\"password\"\n name=\"password\"\n value={this.state.selectedUser.password}\n onChange={this.handleUserChange}\n />\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"text-input\">Confirm Password</Label>\n </Col>\n <Col xs=\"12\" md=\"9\">\n <Input\n type=\"password\"\n name=\"confirmPassword\"\n value={this.state.selectedUser.confirmPassword}\n onChange={this.handleUserChange}\n />\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"select\">Permissions</Label>\n </Col>\n <Col xs=\"12\" md=\"2\">\n <Input\n type=\"select\"\n name=\"type\"\n value={this.state.selectedUser.type}\n onChange={this.handleUserChange}\n >\n <option value=\"readonly\">Read Only</option>\n <option value=\"readwrite\">Read/Write</option>\n <option value=\"admin\">Admin</option>\n </Input>\n </Col>\n </FormGroup>\n </CardBody>\n <CardFooter>\n <Row>\n <Col xs=\"4\" md=\"1\">\n <Button\n size=\"sm\"\n color=\"primary\"\n onClick={this.handleApply}\n >\n <i className=\"fa fa-dot-circle-o\" /> Apply\n </Button>\n </Col>\n <Col xs=\"4\" md=\"1\">\n <Button\n size=\"sm\"\n color=\"secondary\"\n onClick={this.handleCancel}\n >\n <i className=\"fa fa-ban\" /> Cancel\n </Button>\n </Col>\n <Col xs=\"4\" md=\"10\" className=\"text-right\">\n <Button\n size=\"sm\"\n color=\"danger\"\n onClick={this.deleteUser}\n >\n <i className=\"fa fa-ban\" /> Delete\n </Button>\n </Col>\n </Row>\n </CardFooter>\n </Card>\n </div>\n )}\n </div>\n )}\n </div>\n )\n }\n}\n\nconst mapStateToProps = ({ loginStatus }) => ({ loginStatus })\n\nexport default connect(mapStateToProps)(Users)\n\nfunction convertType(type) {\n if (type == 'readonly') {\n return 'Read Only'\n } else if (type == 'readwrite') {\n return 'Read/Write'\n } else if (type == 'admin') {\n return 'Admin'\n }\n}\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n CardFooter,\n InputGroup,\n InputGroupAddon,\n Input,\n Form,\n Col,\n Label,\n FormGroup,\n FormText,\n Table,\n Row,\n} from 'reactstrap'\nimport EnableSecurity from './EnableSecurity'\n\nexport function fetchSecurityDevices() {\n fetch(`${window.serverRoutesPrefix}/security/devices`, {\n credentials: 'include',\n })\n .then((response) => response.json())\n .then((data) => {\n this.setState({ devices: data })\n })\n}\n\nclass Devices extends Component {\n constructor(props) {\n super(props)\n this.state = {\n devices: [],\n }\n\n this.fetchSecurityDevices = fetchSecurityDevices.bind(this)\n this.handleCancel = this.handleCancel.bind(this)\n this.handleApply = this.handleApply.bind(this)\n this.handleDeviceChange = this.handleDeviceChange.bind(this)\n this.deleteDevice = this.deleteDevice.bind(this)\n }\n\n componentDidMount() {\n if (this.props.loginStatus.authenticationRequired) {\n this.fetchSecurityDevices()\n }\n }\n\n handleDeviceChange(event) {\n const value =\n event.target.type === 'checkbox'\n ? event.target.checked\n : event.target.value\n this.state.selectedDevice[event.target.name] = value\n this.setState({\n selectedDevice: this.state.selectedDevice,\n })\n }\n\n handleApply(event) {\n event.preventDefault()\n\n var payload = {\n permissions: this.state.selectedDevice.permissions || 'readonly',\n description: this.state.selectedDevice.description,\n }\n\n fetch(\n `${window.serverRoutesPrefix}/security/devices/${this.state.selectedDevice.clientId}`,\n {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n credentials: 'include',\n }\n )\n .then((response) => response.text())\n .then((response) => {\n this.setState({\n selectedDevice: null,\n selectedIndex: -1,\n })\n alert(response)\n this.fetchSecurityDevices()\n })\n }\n\n deleteDevice(event) {\n fetch(\n `${window.serverRoutesPrefix}/security/devices/${this.state.selectedDevice.clientId}`,\n {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json',\n },\n credentials: 'include',\n }\n )\n .then((response) => response.text())\n .then((response) => {\n this.setState({\n selectedDevice: null,\n selectedIndex: -1,\n })\n alert(response)\n this.fetchSecurityDevices()\n })\n }\n\n deviceClicked(device, index) {\n this.setState(\n {\n selectedDevice: JSON.parse(JSON.stringify(device)),\n selectedIndex: index,\n },\n () => {\n this.refs['selectedDevice'].scrollIntoView()\n }\n )\n }\n\n handleCancel(event) {\n this.setState({ selectedDevice: null })\n }\n render() {\n return (\n <div className=\"animated fadeIn\">\n {this.props.loginStatus.authenticationRequired === false && (\n <EnableSecurity />\n )}\n {this.props.loginStatus.authenticationRequired && (\n <div>\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\" />\n Devices\n </CardHeader>\n <CardBody>\n <Table hover responsive bordered striped size=\"sm\">\n <thead>\n <tr>\n <th>Client ID</th>\n <th>Description</th>\n <th>Type</th>\n </tr>\n </thead>\n <tbody>\n {(this.state.devices || []).map((device, index) => {\n return (\n <tr\n key={device.clientId}\n onClick={this.deviceClicked.bind(this, device, index)}\n >\n <td>{device.clientId}</td>\n <td>{device.description}</td>\n <td>{convertPermissions(device.permissions)}</td>\n </tr>\n )\n })}\n </tbody>\n </Table>\n </CardBody>\n <CardFooter></CardFooter>\n </Card>\n\n {this.state.selectedDevice && (\n <div ref=\"selectedDevice\">\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\" />\n Device\n </CardHeader>\n <CardBody>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"clientId\">Client ID</Label>\n </Col>\n <Col xs=\"12\" md=\"9\">\n <Label>{this.state.selectedDevice.clientId}</Label>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"description\">Description</Label>\n </Col>\n <Col xs=\"12\" md=\"9\">\n <Input\n size=\"60\"\n style={{ width: 'auto' }}\n type=\"text\"\n name=\"description\"\n onChange={this.handleDeviceChange}\n value={this.state.selectedDevice.description}\n />\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"select\">Permissions</Label>\n </Col>\n <Col xs=\"12\" md=\"2\">\n {!this.state.selectedDevice.requestedPermissions && (\n <Input\n type=\"select\"\n name=\"permissions\"\n value={this.state.selectedDevice.permissions}\n onChange={this.handleDeviceChange}\n >\n <option value=\"readonly\">Read Only</option>\n <option value=\"readwrite\">Read/Write</option>\n <option value=\"admin\">Admin</option>\n </Input>\n )}\n {this.state.selectedDevice.requestedPermissions && (\n <Label>\n {convertPermissions(\n this.state.selectedDevice.permissions\n )}\n </Label>\n )}\n </Col>\n </FormGroup>\n </CardBody>\n <CardFooter>\n <Row>\n <Col xs=\"4\" md=\"1\">\n <Button\n size=\"sm\"\n color=\"primary\"\n onClick={this.handleApply}\n >\n <i className=\"fa fa-dot-circle-o\" /> Apply\n </Button>\n </Col>\n <Col xs=\"4\" md=\"1\">\n <Button\n size=\"sm\"\n color=\"secondary\"\n onClick={this.handleCancel}\n >\n <i className=\"fa fa-ban\" /> Cancel\n </Button>\n </Col>\n <Col xs=\"4\" md=\"10\" className=\"text-right\">\n <Button\n size=\"sm\"\n color=\"danger\"\n onClick={this.deleteDevice}\n >\n <i className=\"fa fa-ban\" /> Delete\n </Button>\n </Col>\n </Row>\n </CardFooter>\n </Card>\n </div>\n )}\n </div>\n )}\n </div>\n )\n }\n}\n\nconst mapStateToProps = ({ securityDevices }) => ({ securityDevices })\n\nexport default connect(mapStateToProps)(Devices)\n\nfunction convertPermissions(type) {\n if (type == 'readonly') {\n return 'Read Only'\n } else if (type == 'readwrite') {\n return 'Read/Write'\n } else if (type == 'admin') {\n return 'Admin'\n }\n}\n","import React, { Component } from 'react'\nimport {\n Container,\n Row,\n Col,\n Card,\n CardBody,\n CardFooter,\n Button,\n Input,\n InputGroup,\n InputGroupAddon,\n FormText,\n} from 'reactstrap'\n\nclass Register extends Component {\n constructor(props) {\n super(props)\n this.state = {\n errorMessage: null,\n email: '',\n password: '',\n confirmPassword: '',\n registrationSent: false,\n }\n this.handleInputChange = this.handleInputChange.bind(this)\n this.handleCreate = this.handleCreate.bind(this)\n }\n\n handleInputChange(event) {\n var targetName = event.target.name\n this.setState({ [event.target.name]: event.target.value }, () => {\n if (\n targetName === 'password' ||\n (targetName === 'confirmPassword' &&\n this.state.password != this.state.confirmPassword)\n ) {\n this.setState({ errorMessage: 'Passwords do not match' })\n } else {\n this.setState({ errorMessage: null })\n }\n })\n }\n\n handleCreate(event) {\n if (this.state.email.length == 0) {\n this.setState({ errorMessage: 'Please enter an email address' })\n } else if (\n this.state.password.length == 0 &&\n this.state.confirmPassword.length == 0\n ) {\n this.setState({ errorMessage: 'Please enter and conform your password' })\n } else if (this.state.password != this.state.confirmPassword) {\n //error message is already thwre\n return\n } else {\n var payload = {\n userId: this.state.email,\n password: this.state.password,\n }\n fetch(`/signalk/v1/access/requests`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n credentials: 'include',\n }).then((response) => {\n if (response.status != 202) {\n response.json().then((json) => {\n this.setState({\n errorMessage: json.message ? json.message : json.result,\n })\n })\n } else {\n this.setState({ registrationSent: true })\n }\n })\n }\n }\n\n render() {\n return (\n <div>\n <Container>\n <Row className=\"justify-content-center\">\n <Col md=\"6\">\n <Card className=\"mx-4\">\n <CardBody className=\"p-4\">\n <h1>Register</h1>\n {this.state.registrationSent && (\n <p className=\"text-muted\">\n Your registration has been sent\n </p>\n )}\n {!this.state.registrationSent && (\n <div>\n <p className=\"text-muted\">Create your account</p>\n <InputGroup className=\"mb-3\">\n <InputGroupAddon>@</InputGroupAddon>\n <Input\n name=\"email\"\n type=\"text\"\n placeholder=\"Email\"\n onChange={this.handleInputChange}\n />\n </InputGroup>\n <InputGroup className=\"mb-3\">\n <InputGroupAddon>\n <i className=\"icon-lock\"></i>\n </InputGroupAddon>\n <Input\n name=\"password\"\n type=\"password\"\n placeholder=\"Password\"\n onChange={this.handleInputChange}\n />\n </InputGroup>\n <InputGroup className=\"mb-4\">\n <InputGroupAddon>\n <i className=\"icon-lock\"></i>\n </InputGroupAddon>\n <Input\n name=\"confirmPassword\"\n type=\"password\"\n placeholder=\"Repeat password\"\n onChange={this.handleInputChange}\n />\n </InputGroup>\n <p className=\"text-danger\">{this.state.errorMessage}</p>\n </div>\n )}\n </CardBody>\n {!this.state.registrationSent && (\n <CardFooter className=\"p-4\">\n <Row>\n <Col xs=\"12\" sm=\"12\">\n <Button\n color=\"success\"\n block\n onClick={this.handleCreate}\n >\n Create Account\n </Button>\n </Col>\n </Row>\n </CardFooter>\n )}\n </Card>\n </Col>\n </Row>\n </Container>\n </div>\n )\n }\n}\n\nexport default Register\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n CardFooter,\n InputGroup,\n InputGroupAddon,\n Input,\n Form,\n Col,\n Label,\n FormGroup,\n FormText,\n Table,\n Row,\n} from 'reactstrap'\nimport EnableSecurity from './EnableSecurity'\n\nclass AccessRequests extends Component {\n constructor(props) {\n super(props)\n this.state = {\n selectedRequest: null,\n accessRequestsApproving: [],\n accessRequestsDenying: [],\n }\n this.handleRequestChange = this.handleRequestChange.bind(this)\n }\n\n handleAccessRequest(identifier, approved) {\n var stateKey = approved\n ? 'accessRequestsApproving'\n : 'accessRequestsDenying'\n this.state[stateKey].push(identifier)\n this.setState({ stateKey: this.state })\n\n var payload = {\n permissions: this.state.selectedRequest.permissions || 'readonly',\n config: this.state.selectedRequest.config,\n expiration: this.state.selectedRequest.expiration || '1y',\n }\n\n fetch(\n `${window.serverRoutesPrefix}/security/access/requests/${identifier}/${\n approved ? 'approved' : 'denied'\n }`,\n {\n method: 'PUT',\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n }\n )\n .then((response) => response.text())\n .then((response) => {\n this.state[stateKey] = this.state[stateKey].filter(\n (id) => id != identifier\n )\n this.setState({\n stateKey: this.state[stateKey],\n selectedRequest: null,\n })\n })\n }\n\n requestClicked(event, request, index) {\n this.setState(\n {\n selectedRequest: JSON.parse(JSON.stringify(request)),\n selectedIndex: index,\n },\n () => {\n this.refs['selectedRequest'].scrollIntoView()\n }\n )\n }\n\n handleRequestChange(event) {\n const value =\n event.target.type === 'checkbox'\n ? event.target.checked\n : event.target.value\n this.state.selectedRequest[event.target.name] = value\n this.setState({\n selectedRequest: this.state.selectedRequest,\n })\n }\n handleCancel(event) {\n this.setState({ selectedRequest: null })\n }\n\n render() {\n return (\n <div className=\"animated fadeIn\">\n {this.props.loginStatus.authenticationRequired === false && (\n <EnableSecurity />\n )}\n {this.props.loginStatus.authenticationRequired && (\n <div>\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\"></i>Access Requests\n </CardHeader>\n <CardBody>\n <Table hover responsive bordered striped size=\"sm\">\n <thead>\n <tr>\n <th>Identifier</th>\n <th>Description</th>\n <th>Source IP</th>\n </tr>\n </thead>\n <tbody>\n {(this.props.accessRequests || []).map((req, index) => {\n return (\n <tr\n key={req.accessIdentifier}\n onClick={this.requestClicked.bind(\n this,\n event,\n req,\n index\n )}\n >\n <td>{req.accessIdentifier}</td>\n <td>{req.accessDescription}</td>\n <td>{req.ip}</td>\n </tr>\n )\n })}\n </tbody>\n </Table>\n </CardBody>\n </Card>\n\n {this.state.selectedRequest && (\n <div ref=\"selectedRequest\">\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\"></i>Request\n </CardHeader>\n <CardBody>\n <FormGroup row>\n <Col md=\"2\">\n <Label>Identifier</Label>\n </Col>\n <Col xs=\"12\" md=\"9\">\n <Label>\n {this.state.selectedRequest.accessIdentifier}\n </Label>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label>Description</Label>\n </Col>\n <Col xs=\"12\" md=\"9\">\n <Label>\n {this.state.selectedRequest.accessDescription}\n </Label>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"text-input\">\n Authentication Timeout\n </Label>\n </Col>\n <Col xs=\"12\" md=\"9\">\n <Input\n type=\"text\"\n name=\"expiration\"\n onChange={this.handleRequestChange}\n value={this.state.selectedRequest.expiration}\n />\n <FormText color=\"muted\">\n Exmaples: 60s, 1m, 1h, 1d, NEVER\n </FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"select\">Permissions</Label>\n </Col>\n <Col xs=\"12\" md=\"2\">\n {!this.state.selectedRequest.requestedPermissions && (\n <Input\n type=\"select\"\n name=\"permissions\"\n value={this.state.selectedRequest.permissions}\n onChange={this.handleRequestChange}\n >\n <option value=\"readonly\">Read Only</option>\n <option value=\"readwrite\">Read/Write</option>\n <option value=\"admin\">Admin</option>\n </Input>\n )}\n {this.state.selectedRequest.requestedPermissions && (\n <Label>\n {convertPermissions(\n this.state.selectedRequest.permissions\n )}\n </Label>\n )}\n </Col>\n </FormGroup>\n </CardBody>\n <CardFooter>\n <Row>\n <Col xs=\"4\" md=\"1\">\n <Button\n size=\"sm\"\n color=\"danger\"\n onClick={this.handleAccessRequest.bind(\n this,\n this.state.selectedRequest.accessIdentifier,\n true\n )}\n >\n <i\n className={\n this.state.accessRequestsApproving.indexOf(\n this.state.selectedRequest.accessIdentifier\n ) != -1\n ? 'fa fa-spinner fa-spin'\n : 'fa fa-plus-circle'\n }\n ></i>{' '}\n Approve\n </Button>\n </Col>\n <Col xs=\"4\" md=\"1\">\n <Button\n size=\"sm\"\n color=\"primary\"\n onClick={this.handleAccessRequest.bind(\n this,\n this.state.selectedRequest.accessIdentifier,\n false\n )}\n >\n <i\n className={\n this.state.accessRequestsDenying.indexOf(\n this.state.selectedRequest.accessIdentifier\n ) != -1\n ? 'fa fa-spinner fa-spin'\n : 'fa fa-ban'\n }\n ></i>{' '}\n Deny\n </Button>\n </Col>\n </Row>\n </CardFooter>\n </Card>\n </div>\n )}\n </div>\n )}\n </div>\n )\n }\n}\n\nconst mapStateToProps = ({ accessRequests, loginStatus }) => ({\n accessRequests,\n loginStatus,\n})\n\nexport default connect(mapStateToProps)(AccessRequests)\n\nfunction convertPermissions(type) {\n if (type == 'readonly') {\n return 'Read Only'\n } else if (type == 'readwrite') {\n return 'Read/Write'\n } else if (type == 'admin') {\n return 'Admin'\n } else {\n return `Unknown ${type}`\n }\n}\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n CardFooter,\n InputGroup,\n InputGroupAddon,\n Input,\n Form,\n Col,\n Label,\n FormGroup,\n FormText,\n Table,\n} from 'reactstrap'\n\nfunction fetchVessel() {\n fetch(`${window.serverRoutesPrefix}/vessel`, {\n credentials: 'include',\n })\n .then((response) => response.json())\n .then((data) => {\n this.setState({ ...data, hasData: true })\n })\n}\n\nclass VesselConfiguration extends Component {\n constructor(props) {\n super(props)\n this.state = {\n hasData: false,\n }\n\n this.fetchVessel = fetchVessel.bind(this)\n this.handleChange = this.handleChange.bind(this)\n this.handleSaveVessel = this.handleSaveVessel.bind(this)\n }\n\n componentDidMount() {\n this.fetchVessel()\n }\n\n handleChange(event) {\n console.log(event)\n const value =\n event.target.type === 'checkbox'\n ? event.target.checked\n : event.target.value\n this.setState({ [event.target.name]: value })\n }\n\n handleSaveVessel() {\n fetch(`${window.serverRoutesPrefix}/vessel`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(this.state),\n credentials: 'include',\n })\n .then((response) => response.text())\n .then((response) => {\n alert(response)\n })\n }\n\n render() {\n return (\n this.state.hasData && (\n <div className=\"animated fadeIn\">\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\" />\n <strong>Vessel Base Data</strong>\n </CardHeader>\n <CardBody>\n <Form\n action=\"\"\n method=\"post\"\n encType=\"multipart/form-data\"\n className=\"form-horizontal\"\n >\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"name\">Name</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"text\"\n name=\"name\"\n onChange={this.handleChange}\n value={this.state.name}\n />\n <FormText color=\"muted\">The name of the vessel</FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"mmsi\">MMSI</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"text\"\n name=\"mmsi\"\n onChange={this.handleChange}\n value={this.state.mmsi}\n />\n <FormText color=\"muted\">\n Leave blank if there is no mmsi\n </FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"callsignVhf\">Call Sign</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"text\"\n name=\"callsignVhf\"\n onChange={this.handleChange}\n value={this.state.callsignVhf}\n />\n <FormText color=\"muted\">\n Leave blank if there is no call sign\n </FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"uuid\">UUID</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"text\"\n name=\"uuid\"\n onChange={this.handleChange}\n value={this.state.uuid}\n />\n <FormText color=\"muted\">Ignored if MMSI is set</FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"aisShipType\">Ship Type</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"select\"\n name=\"aisShipType\"\n value={this.state.aisShipType}\n onChange={this.handleChange}\n >\n <option value=\"20\">Wing In Ground</option>\n <option value=\"29\">\n Wing In Ground (no other information)\n </option>\n <option value=\"30\">Fishing</option>\n <option value=\"31\">Towing</option>\n <option value=\"32\">\n Towing exceeds 200m or wider than 25m\n </option>\n <option value=\"33\">\n Engaged in dredging or underwater operations\n </option>\n <option value=\"34\">Engaged in diving operations</option>\n <option value=\"35\">Engaged in military operations</option>\n <option value=\"36\">Sailing</option>\n <option value=\"37\">Pleasure</option>\n <option value=\"40\">High speed craft</option>\n <option value=\"41\">\n High speed craft carrying dangerous goods\n </option>\n <option value=\"42\">High speed craft hazard cat B</option>\n <option value=\"43\">High speed craft hazard cat C</option>\n <option value=\"44\">High speed craft hazard cat D</option>\n <option value=\"49\">\n High speed craft (no additional information)\n </option>\n <option value=\"50\">Pilot vessel</option>\n <option value=\"51\">SAR</option>\n <option value=\"52\">Tug</option>\n <option value=\"53\">Port tender</option>\n <option value=\"54\">Anti-pollution</option>\n <option value=\"55\">Law enforcement</option>\n <option value=\"56\">Spare</option>\n <option value=\"57\">Spare #2</option>\n <option value=\"58\">Medical</option>\n <option value=\"59\">RR Resolution No.1</option>\n <option value=\"60\">Passenger ship</option>\n <option value=\"69\">\n Passenger ship (no additional information)\n </option>\n <option value=\"70\">Cargo ship</option>\n <option value=\"71\">\n Cargo ship carrying dangerous goods\n </option>\n <option value=\"72\">Cargo ship hazard cat B</option>\n <option value=\"73\">Cargo ship hazard cat C</option>\n <option value=\"74\">Cargo ship hazard cat D</option>\n <option value=\"79\">\n Cargo ship (no additional information)\n </option>\n <option value=\"80\">Tanker</option>\n <option value=\"81\">\n Tanker carrying dangerous goods\n </option>\n <option value=\"82\">Tanker hazard cat B</option>\n <option value=\"83\">Tanker hazard cat C</option>\n <option value=\"84\">Tanker hazard cat D</option>\n <option value=\"89\">\n Tanker (no additional information)\n </option>\n <option value=\"90\">Other</option>\n <option value=\"91\">Other carrying dangerous goods</option>\n <option value=\"92\">Other hazard cat B</option>\n <option value=\"93\">Other hazard cat C</option>\n <option value=\"94\">Other hazard cat D</option>\n <option value=\"99\">\n Other (no additional information)\n </option>\n </Input>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"draft\">Draft</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"text\"\n name=\"draft\"\n onChange={this.handleChange}\n value={this.state.draft}\n />\n <FormText color=\"muted\">\n The maximum draft in meters of the vessel\n </FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"length\">Length</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"text\"\n name=\"length\"\n onChange={this.handleChange}\n value={this.state.length}\n />\n <FormText color=\"muted\">\n The overall length of the vessel in meters\n </FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"beam\">Beam</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"text\"\n name=\"beam\"\n onChange={this.handleChange}\n value={this.state.beam}\n />\n <FormText color=\"muted\">\n The beam of the vessel in meters\n </FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"height\">Height</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"text\"\n name=\"height\"\n onChange={this.handleChange}\n value={this.state.height}\n />\n <FormText color=\"muted\">\n The total height of the vessel in meters{' '}\n </FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"gpsFromBow\">GPS Distance From Bow</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"text\"\n name=\"gpsFromBow\"\n onChange={this.handleChange}\n value={this.state.gpsFromBow}\n />\n <FormText color=\"muted\">\n The distance of the gps receiver from the bow in meters\n </FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"gpsFromCenter\">\n GPS Distance From Center\n </Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"text\"\n name=\"gpsFromCenter\"\n onChange={this.handleChange}\n value={this.state.gpsFromCenter}\n />\n <FormText color=\"muted\">\n The distance from the center of vessel of the gps receiver\n in meters\n </FormText>\n </Col>\n </FormGroup>\n </Form>\n </CardBody>\n <CardFooter>\n <Button size=\"sm\" color=\"primary\" onClick={this.handleSaveVessel}>\n <i className=\"fa fa-dot-circle-o\" /> Save\n </Button>\n </CardFooter>\n </Card>\n </div>\n )\n )\n }\n}\n\nexport default connect()(VesselConfiguration)\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Table,\n Input,\n Button,\n Card,\n CardBody,\n CardHeader,\n FormText,\n Label,\n} from 'reactstrap'\n\nclass N2KFilters extends Component {\n constructor(props) {\n super()\n\n this.handleAddFilter = this.handleAddFilter.bind(this)\n this.handleEnabledChange = this.handleEnabledChange.bind(this)\n }\n\n filterChanged(filter, event) {\n filter[event.target.name] = event.target.value\n this.props.onChange(event)\n }\n\n deleteFilter(index, event) {\n this.props.value.options.filters.splice(index, 1)\n this.props.onChange(event)\n }\n\n handleEnabledChange(event) {\n this.props.value.options.filtersEnabled = event.target.checked\n this.props.onChange(event)\n }\n\n handleAddFilter(event) {\n if (!this.props.value.options.filters) {\n this.props.value.options.filters = []\n }\n this.props.value.options.filters.push({ source: '', pgn: '' })\n this.props.onChange(event)\n }\n\n render() {\n const sourceName = this.props.value.options.useCanName\n ? 'Can NAME'\n : 'Address'\n return (\n <div>\n <Card>\n <CardHeader>Filters</CardHeader>\n <CardBody>\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"filtersEnabled\"\n className=\"switch-input\"\n checked={this.props.value.options.filtersEnabled}\n onChange={this.handleEnabledChange}\n />\n <span className=\"switch-label\" data-on=\"Yes\" data-off=\"No\" />\n <span className=\"switch-handle\" />\n </Label>\n Enabled <br />\n <br />\n Filter out all messages from a specific {sourceName} by entering\n just the {sourceName}.<br />\n Filter out a specific PGN from all devices by entering just the PGN.\n <br />\n Filter out a specific PGN from a specific {sourceName} by entering\n both.\n <br />\n <br />\n {this.props.value.options.filters &&\n this.props.value.options.filters.length > 0 && (\n <Table responsive bordered striped size=\"sm\">\n <thead>\n <tr>\n <th>{sourceName}</th>\n <th>PGN</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n {this.props.value.options.filters.map((filter, index) => {\n return (\n <tr key={index}>\n <td>\n <Input\n type=\"text\"\n name=\"source\"\n value={filter.source}\n onChange={this.filterChanged.bind(this, filter)}\n />\n </td>\n <td>\n <Input\n type=\"text\"\n name=\"pgn\"\n value={filter.pgn}\n onChange={this.filterChanged.bind(this, filter)}\n />\n </td>\n <td>\n <Button\n color=\"link\"\n className=\"text-danger\"\n onClick={this.deleteFilter.bind(this, index)}\n >\n <i className=\"fas fa-trash\" />\n </Button>\n </td>\n </tr>\n )\n })}\n </tbody>\n </Table>\n )}\n <Button size=\"sm\" color=\"primary\" onClick={this.handleAddFilter}>\n <i className=\"fa fa-plus-circle\" /> Add\n </Button>\n </CardBody>\n </Card>\n </div>\n )\n }\n}\n\nexport default N2KFilters\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport { Input, FormGroup, FormText, Col, Label } from 'reactstrap'\nimport N2KFilters from './N2KFilters'\n\nclass BasicProvider extends Component {\n constructor(props) {\n super()\n this.state = {\n hasAnalyzer: false,\n }\n }\n\n componentDidMount() {\n fetch(`${window.serverRoutesPrefix}/hasAnalyzer`, {\n credentials: 'include',\n })\n .then((response) => response.json())\n .then((value) => {\n this.setState({ hasAnalyzer: value })\n })\n }\n\n render() {\n const lookup = {\n NMEA2000: NMEA2000,\n NMEA0183: NMEA0183,\n SignalK: SignalK,\n Seatalk: Seatalk,\n FileStream: FileStream,\n }\n let TypeComponent = lookup[this.props.value.type] || (() => null)\n\n return (\n <div>\n <FormGroup row>\n <Col xs=\"3\" md=\"3\">\n <Label htmlFor=\"select\">Data Type</Label>\n </Col>\n <Col xs=\"6\" md=\"3\">\n {this.props.value.isNew ? (\n <Input\n type=\"select\"\n value={this.props.value.type}\n name=\"type\"\n onChange={(event) => this.props.onChange(event)}\n >\n <option value=\"NMEA2000\">NMEA 2000</option>\n <option value=\"NMEA0183\">NMEA 0183</option>\n <option value=\"SignalK\">Signal K</option>\n <option value=\"Seatalk\">Seatalk (GPIO)</option>\n <option value=\"FileStream\">File Stream</option>\n </Input>\n ) : (\n this.props.value.type\n )}\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col xs=\"3\" md=\"3\">\n <Label>Enabled</Label>\n </Col>\n <Col xs=\"2\" md=\"3\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"enabled\"\n className=\"switch-input\"\n onChange={(event) => this.props.onChange(event)}\n checked={this.props.value.enabled}\n />\n <span className=\"switch-label\" data-on=\"Yes\" data-off=\"No\" />\n <span className=\"switch-handle\" />\n </Label>\n </Col>\n </FormGroup>\n {this.props.value.type !== 'FileStream' && (\n <LoggingInput\n value={this.props.value}\n onChange={this.props.onChange}\n />\n )}\n <FormGroup row>\n <Col md=\"3\">\n <Label htmlFor=\"id\">ID</Label>\n </Col>\n <Col xs=\"12\" md=\"3\">\n <Input\n type=\"text\"\n name=\"id\"\n value={this.props.value.id}\n disabled={!this.props.value.isNew}\n onChange={(event) => {\n const dummyEvent = {\n target: {\n name: event.target.name,\n type: event.target.type,\n value: (event.target.value || '').replace(\n /[^a-zA-Z\\d-_]/g,\n ''\n ),\n },\n }\n this.props.onChange(dummyEvent)\n }}\n />\n </Col>\n </FormGroup>\n <TypeComponent\n value={this.props.value}\n onChange={this.props.onChange}\n hasAnalyzer={this.state.hasAnalyzer}\n />\n {this.props.value.type === 'NMEA2000' && (\n <N2KFilters\n value={this.props.value}\n onChange={this.props.onPropChange}\n />\n )}\n </div>\n )\n }\n}\n\nexport default BasicProvider\n\nclass TextInput extends Component {\n render() {\n return (\n <FormGroup row>\n <Col md=\"3\">\n <Label htmlFor={this.props.name}>{this.props.title}</Label>\n </Col>\n <Col xs=\"12\" md=\"3\">\n <Input\n type=\"text\"\n name={this.props.name}\n value={this.props.value}\n onChange={(event) => this.props.onChange(event)}\n />\n {this.props.helpText && (\n <FormText color=\"muted\">{this.props.helpText}</FormText>\n )}\n </Col>\n </FormGroup>\n )\n }\n}\n\nclass TextAreaInput extends Component {\n render() {\n return (\n <FormGroup row>\n <Col md=\"3\">\n <Label htmlFor={this.props.name}>{this.props.title}</Label>\n </Col>\n <Col xs=\"12\" md=\"3\">\n <Input\n type=\"textarea\"\n name={this.props.name}\n value={this.props.value}\n rows={this.props.rows}\n onChange={(event) => this.props.onChange(event)}\n />\n {this.props.helpText && (\n <FormText color=\"muted\">{this.props.helpText}</FormText>\n )}\n </Col>\n </FormGroup>\n )\n }\n}\n\nclass DeviceInput extends Component {\n constructor(props) {\n super()\n this.state = {\n devices: {},\n }\n }\n\n componentDidMount() {\n fetch(`${window.serverRoutesPrefix}/serialports`, {\n credentials: 'include',\n })\n .then((response) => response.json())\n .then((data) => {\n data.serialports = data.serialports.map((portInfo) => portInfo.path)\n this.setState({\n devices: data,\n })\n })\n }\n\n render() {\n const isManualEntry = !isListedDevice(\n this.props.value.device,\n this.state.devices\n )\n let manualEntryValue = isManualEntry\n ? this.props.value.device === 'Enter manually'\n ? ''\n : this.props.value.device\n : ''\n return (\n <FormGroup row>\n <Col md=\"3\">\n <Label htmlFor=\"serialportselect\">Serial port</Label>\n </Col>\n <Col xs=\"12\" md=\"3\">\n <Input\n type=\"select\"\n name=\"options.device\"\n id=\"serialportselect\"\n onChange={this.props.onChange}\n helpText=\"help me\"\n value={isManualEntry ? 'Enter manually' : this.props.value.device}\n >\n <option key=\"enterManually\">Enter manually</option>\n {serialportListOptions(\n ['byOpenPlotter', 'byId', 'byPath', 'serialports'],\n ['OpenPlotter managed:', 'by-id:', 'by-path:', 'Listed:'],\n this.state.devices\n )}\n </Input>\n </Col>\n <Col xs=\"12\" md=\"3\">\n <Input\n type=\"text\"\n name=\"options.device\"\n disabled={!isManualEntry}\n value={manualEntryValue || ''}\n onChange={(event) => this.props.onChange(event)}\n />\n </Col>\n </FormGroup>\n )\n }\n}\n\nconst isListedDevice = (device, deviceListMap) => {\n const list = Object.keys(deviceListMap).reduce((acc, key) => {\n return acc.concat(deviceListMap[key])\n }, [])\n return list.includes(device)\n}\n\nconst serialportListOptions = (keys, labels, deviceListMap) => {\n return keys.reduce((acc, key, j) => {\n if (deviceListMap[key] && deviceListMap[key].length > 0) {\n acc.push(\n <option disabled=\"true\" key={key}>\n {labels[j]}\n </option>\n )\n deviceListMap[key].forEach((device, i) => {\n acc.push(<option key={`${key}${i}`}>{device}</option>)\n })\n }\n return acc\n }, [])\n}\n\nclass LoggingInput extends Component {\n render() {\n return (\n <FormGroup row>\n <Col xs=\"3\" md=\"3\">\n <Label>Logging</Label>\n </Col>\n <Col xs=\"2\" md=\"3\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"logging\"\n className=\"switch-input\"\n onChange={(event) => this.props.onChange(event)}\n checked={this.props.value.logging}\n />\n <span className=\"switch-label\" data-on=\"Yes\" data-off=\"No\" />\n <span className=\"switch-handle\" />\n </Label>\n </Col>\n </FormGroup>\n )\n }\n}\n\nclass ValidateChecksumInput extends Component {\n constructor(props) {\n super(props)\n this.props.value.validateChecksum =\n typeof this.props.value.validateChecksum === 'undefined' ||\n this.props.value.validateChecksum\n }\n render() {\n return (\n <FormGroup row>\n <Col xs=\"3\" md=\"3\">\n <Label>Validate Checksum</Label>\n </Col>\n <Col xs=\"2\" md=\"3\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"options.validateChecksum\"\n className=\"switch-input\"\n onChange={(event) => {\n this.props.onChange(event)\n if (this.props.value.validateChecksum) {\n this.props.value.appendChecksum = false\n }\n }}\n checked={this.props.value.validateChecksum}\n />\n <span className=\"switch-label\" data-on=\"Yes\" data-off=\"No\" />\n <span className=\"switch-handle\" />\n </Label>\n </Col>\n </FormGroup>\n )\n }\n}\n\nclass RemoveNullsInput extends Component {\n constructor(props) {\n super(props)\n this.props.value.removeNulls = this.props.value.removeNulls\n }\n render() {\n return (\n <FormGroup row>\n <Col xs=\"3\" md=\"3\">\n <Label>Remove NULL characters</Label>\n </Col>\n <Col xs=\"2\" md=\"3\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"options.removeNulls\"\n className=\"switch-input\"\n onChange={(event) => this.props.onChange(event)}\n checked={this.props.value.removeNulls}\n />\n <span className=\"switch-label\" data-on=\"Yes\" data-off=\"No\" />\n <span className=\"switch-handle\" />\n </Label>\n </Col>\n </FormGroup>\n )\n }\n}\n\nclass AppendChecksum extends Component {\n render() {\n return (\n <FormGroup row>\n <Col xs=\"3\" md=\"3\">\n <Label>Append Checksum</Label>\n </Col>\n <Col xs=\"2\" md=\"1\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"options.appendChecksum\"\n className=\"switch-input\"\n onChange={(event) => this.props.onChange(event)}\n checked={\n this.props.value.appendChecksum &&\n !this.props.value.validateChecksum\n }\n disabled={!!this.props.value.validateChecksum}\n />\n <span className=\"switch-label\" data-on=\"Yes\" data-off=\"No\" />\n <span className=\"switch-handle\" />\n </Label>\n </Col>\n <Col xs=\"12\" md=\"6\">\n {this.props.value.validateChecksum && (\n <label className=\"text-muted small\">\n Turn Validate Checksum OFF to enable appending the checksum\n </label>\n )}\n </Col>\n </FormGroup>\n )\n }\n}\n\nclass SentenceEventInput extends Component {\n render() {\n return (\n <TextInput\n title=\"Input Event\"\n name=\"options.sentenceEvent\"\n helpText=\"Additional event name for incoming sentences. Example: nmea1data\"\n value={this.props.value.sentenceEvent}\n onChange={this.props.onChange}\n />\n )\n }\n}\n\nclass DataTypeInput extends Component {\n render() {\n return (\n <FormGroup row>\n <Col md=\"3\">\n <Label htmlFor=\"dataType\">Data Type</Label>\n </Col>\n <Col xs=\"12\" md=\"4\">\n <Input\n type=\"select\"\n value={this.props.value.options.dataType}\n name=\"options.dataType\"\n onChange={(event) => this.props.onChange(event)}\n >\n {!this.props.value.options.dataType && (\n <option value=\"\">Select data type</option>\n )}\n <option value=\"SignalK\">Signal K</option>\n <option value=\"NMEA2000JS\">Actisense NMEA 2000 (canboatjs)</option>\n <option value=\"NMEA2000IK\">iKonvert NMEA 2000 (canboatjs)</option>\n <option value=\"NMEA2000YD\">\n Yacht Devices YDGW-02 NMEA 2000 (canboatjs)\n </option>\n <option value=\"NMEA2000\" disabled={!this.props.hasAnalyzer}>\n NMEA 2000 (canboat)\n </option>\n <option value=\"NMEA0183\">NMEA 0183</option>\n {this.props.value.type === 'FileStream' && (\n <option value=\"Multiplexed\">Multiplexed Log</option>\n )}\n </Input>\n </Col>\n </FormGroup>\n )\n }\n}\n\nclass BaudRateIntput extends Component {\n render() {\n return (\n <TextInput\n title=\"Baud Rate\"\n name=\"options.baudrate\"\n helpText=\"Example: 4800\"\n value={this.props.value.baudrate}\n onChange={(event) => this.props.onChange(event, 'number')}\n />\n )\n }\n}\n\nclass BaudRateIntputCanboat extends Component {\n constructor(props) {\n super(props)\n this.props.value.baudrate =\n this.props.value.baudrate ||\n (this.props.value.type === 'ikonvert-canboatjs' ? 230400 : 115200)\n }\n\n render() {\n return (\n <TextInput\n title=\"Baud Rate\"\n name=\"options.baudrate\"\n value={this.props.value.baudrate}\n onChange={(event) => this.props.onChange(event, 'number')}\n />\n )\n }\n}\n\nclass StdOutInput extends Component {\n constructor(props) {\n super()\n let value = props.value.toStdout\n if (Array.isArray(value)) {\n value = value.join(',')\n }\n this.state = { value }\n this.onChange = this.onChange.bind(this)\n }\n onChange(e) {\n this.setState({ value: e.target.value })\n this.props.onChange({\n target: {\n type: e.target.type,\n name: e.target.name,\n value: e.target.value.split(','),\n },\n })\n }\n render() {\n return (\n <TextInput\n title=\"Output Events\"\n name=\"options.toStdout\"\n helpText=\"Events that should be written as output to this connection. Example: nmea0183,nmea0183out\"\n value={this.state.value}\n onChange={this.onChange}\n />\n )\n }\n}\n\nclass IgnoredSentences extends Component {\n constructor(props) {\n super()\n let value = props.value.ignoredSentences\n if (Array.isArray(value)) {\n value = value.join(',')\n }\n this.state = { value }\n this.onChange = this.onChange.bind(this)\n }\n onChange(e) {\n this.setState({ value: e.target.value })\n this.props.onChange({\n target: {\n type: e.target.type,\n name: e.target.name,\n value: e.target.value.split(','),\n },\n })\n }\n render() {\n return (\n <TextInput\n title=\"Ignored Sentences\"\n name=\"options.ignoredSentences\"\n helpText=\"NMEA0183 sentences to throw away from the input data. Example: RMC,ROT\"\n value={this.state.value}\n onChange={this.onChange}\n />\n )\n }\n}\n\nclass PortInput extends Component {\n render() {\n return (\n <TextInput\n title=\"Port\"\n name=\"options.port\"\n helpText=\"Example: 4123\"\n value={this.props.value.port}\n onChange={this.props.onChange}\n />\n )\n }\n}\n\nclass HostInput extends Component {\n render() {\n return (\n <TextInput\n title=\"Host\"\n name=\"options.host\"\n helpText=\"Example: localhost\"\n value={this.props.value.host}\n onChange={this.props.onChange}\n />\n )\n }\n}\n\nclass NoDataReceivedTimeoutInput extends Component {\n render() {\n return (\n <TextInput\n title=\"No data timeout\"\n name=\"options.noDataReceivedTimeout\"\n helpText=\"Timeout for no data received in seconds. Socket is disconnected and reconnection attempted if timeout is reached. Leave empty or 0 to disable.\"\n value={this.props.value.noDataReceivedTimeout}\n onChange={this.props.onChange}\n />\n )\n }\n}\n\nclass RemoteSelfInput extends Component {\n render() {\n return (\n <TextInput\n title=\"Remote 'self' to use\"\n name=\"options.remoteSelf\"\n helpText=\"like vessels.urn:mrn:signalk:uuid:f6d9f041-4e61-4335-82c0-7a51fb10ae86 OR vessels.urn:mrn:imo:mmsi:230099999\"\n value={this.props.value.remoteSelf}\n onChange={this.props.onChange}\n />\n )\n }\n}\n\nclass Suppress0183Checkbox extends Component {\n constructor(props) {\n super(props)\n }\n render() {\n return (\n <FormGroup row>\n <Col xs=\"3\" md=\"3\">\n <Label>Suppress nmea0183 event</Label>\n </Col>\n <Col xs=\"1\" md=\"1\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"options.suppress0183event\"\n className=\"switch-input\"\n onChange={(event) => this.props.onChange(event)}\n checked={this.props.value.suppress0183event}\n />\n <span className=\"switch-label\" data-on=\"Yes\" data-off=\"No\" />\n <span className=\"switch-handle\" />\n </Label>\n </Col>\n <Col xs=\"12\" md=\"6\">\n <label className=\"text-muted small\">\n Supress sending the default nmea0183 event for incoming sentences\n </label>\n </Col>\n </FormGroup>\n )\n }\n}\n\nclass UseCanNameInput extends Component {\n constructor(props) {\n super(props)\n }\n render() {\n return (\n <FormGroup row>\n <Col xs=\"3\" md=\"3\">\n <Label>Use Can NAME in source data</Label>\n </Col>\n <Col xs=\"2\" md=\"3\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"options.useCanName\"\n className=\"switch-input\"\n onChange={(event) => this.props.onChange(event)}\n checked={this.props.value.useCanName}\n />\n <span className=\"switch-label\" data-on=\"Yes\" data-off=\"No\" />\n <span className=\"switch-handle\" />\n </Label>\n </Col>\n </FormGroup>\n )\n }\n}\n\nclass CollectNetworkStatsInput extends Component {\n constructor(props) {\n super(props)\n /*\n this.props.value.useCanName =\n (typeof this.props.value.useCanName !== 'undefined' &&\n this.props.value.useCanName) || this.props.value.isNew\n */\n }\n render() {\n return (\n <FormGroup row>\n <Col xs=\"3\" md=\"3\">\n <Label>Collect Network Statistics</Label>\n </Col>\n <Col xs=\"2\" md=\"3\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"options.sendNetworkStats\"\n className=\"switch-input\"\n onChange={(event) => this.props.onChange(event)}\n checked={this.props.value.sendNetworkStats}\n />\n <span className=\"switch-label\" data-on=\"Yes\" data-off=\"No\" />\n <span className=\"switch-handle\" />\n </Label>\n </Col>\n </FormGroup>\n )\n }\n}\n\nconst NMEA2000 = (props) => {\n return (\n <div>\n <FormGroup row>\n <Col md=\"3\">\n <Label htmlFor=\"options.type\">NMEA 2000 Source</Label>\n </Col>\n <Col xs=\"12\" md=\"3\">\n <Input\n type=\"select\"\n value={props.value.options.type || 'none'}\n name=\"options.type\"\n onChange={(event) => props.onChange(event)}\n >\n <option value=\"none\">Select a source</option>\n <option value=\"ngt-1-canboatjs\">Actisense NGT-1 (canboatjs)</option>\n <option value=\"ngt-1\" disabled={!props.hasAnalyzer}>\n Actisense NGT-1 (canboat)\n </option>\n <option value=\"ikonvert-canboatjs\">iKonvert (canboatjs)</option>\n <option value=\"navlink2-tcp-canboatjs\">NavLink2 (canboatjs)</option>\n\n <option value=\"ydwg02-canboatjs\">\n Yacht Devices RAW TCP (canboatjs)\n </option>\n <option value=\"ydwg02-udp-canboatjs\">\n Yacht Devices RAW UDP (canboatjs)\n </option>\n <option value=\"ydwg02-usb-canboatjs\">\n Yacht Devices RAW USB (canboatjs)\n </option>\n <option value=\"canbus-canboatjs\">Canbus (canboatjs)</option>\n <option value=\"canbus\" disabled={!props.hasAnalyzer}>\n Canbus (canboat)\n </option>\n </Input>\n </Col>\n </FormGroup>\n {(props.value.options.type === 'ngt-1' ||\n props.value.options.type === 'ngt-1-canboatjs' ||\n props.value.options.type === 'ydwg02-usb-canboatjs' ||\n props.value.options.type === 'ikonvert-canboatjs') && (\n <div>\n <DeviceInput value={props.value.options} onChange={props.onChange} />\n <BaudRateIntputCanboat\n value={props.value.options}\n onChange={props.onChange}\n />\n </div>\n )}\n {props.value.options.type === 'ydwg02-canboatjs' && (\n <div>\n <HostInput value={props.value.options} onChange={props.onChange} />\n <PortInput value={props.value.options} onChange={props.onChange} />\n </div>\n )}\n {props.value.options.type === 'ydwg02-udp-canboatjs' && (\n <div>\n <PortInput value={props.value.options} onChange={props.onChange} />\n </div>\n )}\n {props.value.options.type === 'navlink2-tcp-canboatjs' && (\n <div>\n <HostInput value={props.value.options} onChange={props.onChange} />\n <PortInput value={props.value.options} onChange={props.onChange} />\n </div>\n )}\n {(props.value.options.type === 'canbus' ||\n props.value.options.type === 'canbus-canboatjs') && (\n <TextInput\n title=\"Interface\"\n name=\"options.interface\"\n helpText=\"Example: can0\"\n value={props.value.options.interface}\n onChange={props.onChange}\n />\n )}\n {(props.value.options.type === 'ngt-1-canboatjs' ||\n props.value.options.type === 'ikonvert-canboatjs' ||\n props.value.options.type === 'navlink2-tcp-canboatjs') && (\n <CollectNetworkStatsInput\n value={props.value.options}\n onChange={props.onChange}\n />\n )}\n <UseCanNameInput value={props.value.options} onChange={props.onChange} />\n </div>\n )\n}\n\nconst NMEA0183 = (props) => {\n return (\n <div>\n <FormGroup row>\n <Col md=\"3\">\n <Label htmlFor=\"options.type\">NMEA 0183 Source</Label>\n </Col>\n <Col xs=\"12\" md=\"3\">\n <Input\n type=\"select\"\n value={props.value.options.type}\n name=\"options.type\"\n onChange={(event) => props.onChange(event)}\n >\n <option>Select a source</option>\n <option value=\"serial\">Serial</option>\n <option value=\"tcp\">TCP Client</option>\n <option value=\"tcpserver\">TCP Server on port 10110</option>\n <option value=\"udp\">UDP</option>\n <option value=\"gpsd\">GPSD</option>\n </Input>\n </Col>\n {props.value.options.type === 'serial' && (\n <Col xs=\"12\" md=\"6\">\n Serial ports are bidirectional. Input from the connection is parsed\n as NMEA0183. Configure Output Events below to connect server's\n NMEA0183 data for output.\n </Col>\n )}\n {props.value.options.type === 'tcpserver' && (\n <Col xs=\"12\" md=\"6\">\n Accept input from clients connected to the default TCP/10110\n NMEA0183 server\n </Col>\n )}\n </FormGroup>\n {serialParams(props)}\n {(props.value.options.type === 'tcp' ||\n props.value.options.type === 'gpsd') && (\n <div>\n <HostInput value={props.value.options} onChange={props.onChange} />\n <PortInput value={props.value.options} onChange={props.onChange} />\n <StdOutInput value={props.value.options} onChange={props.onChange} />\n <NoDataReceivedTimeoutInput\n value={props.value.options}\n onChange={props.onChange}\n />\n </div>\n )}\n <div>\n <Suppress0183Checkbox\n value={props.value.options}\n onChange={props.onChange}\n />\n </div>\n {props.value.options.type === 'udp' && (\n <PortInput value={props.value.options} onChange={props.onChange} />\n )}\n <SentenceEventInput\n value={props.value.options}\n onChange={props.onChange}\n />\n <ValidateChecksumInput\n value={props.value.options}\n onChange={props.onChange}\n />\n <AppendChecksum value={props.value.options} onChange={props.onChange} />\n <RemoveNullsInput value={props.value.options} onChange={props.onChange} />\n <IgnoredSentences value={props.value.options} onChange={props.onChange} />\n </div>\n )\n}\n\nconst SignalK = (props) => {\n return (\n <div>\n <FormGroup row>\n <Col md=\"3\">\n <Label htmlFor=\"options.type\">SignalK Source</Label>\n </Col>\n <Col xs=\"12\" md=\"3\">\n <Input\n type=\"select\"\n value={props.value.options.type}\n name=\"options.type\"\n onChange={(event) => props.onChange(event)}\n disabled={props.value.options.useDiscovery}\n helpText=\"afoo\"\n >\n <option>Select a source</option>\n <option value=\"serial\">Serial</option>\n <option value=\"ws\">WebSocket</option>\n <option value=\"wss\">WebSocket SSL</option>\n <option value=\"tcp\">TCP</option>\n <option value=\"udp\">UDP</option>\n </Input>\n </Col>\n </FormGroup>\n {props.value.options.useDiscovery && (\n <p className=\"text-danger\">\n This connection is deprecated, please delete it and recreate it with\n the connection automatically discovered at the top of the page.\n </p>\n )}\n {!props.value.options.useDiscovery &&\n (props.value.options.type === 'ws' ||\n props.value.options.type === 'wss' ||\n props.value.options.type === 'tcp') && (\n <div>\n <HostInput value={props.value.options} onChange={props.onChange} />\n <PortInput value={props.value.options} onChange={props.onChange} />\n {props.value.options.type === 'wss' && (\n <FormGroup row>\n <Col xs=\"0\" md=\"3\">\n <Label>Allow self signed certificates</Label>\n </Col>\n <Col xs=\"12\" md=\"8\">\n <div key={name}>\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n id=\"options.selfsignedcert\"\n name=\"options.selfsignedcert\"\n className=\"switch-input\"\n onChange={props.onChange}\n checked={props.value.options.selfsignedcert}\n disabled={!(props.value.options.type === 'wss')}\n />\n <span\n className=\"switch-label\"\n data-on=\"On\"\n data-off=\"Off\"\n />\n <span className=\"switch-handle\" />\n </Label>\n </div>\n </Col>\n </FormGroup>\n )}\n {(props.value.options.type === 'ws' ||\n props.value.options.type === 'wss') && (\n <div>\n <TextAreaInput\n title=\"Subscription\"\n name=\"options.subscription\"\n rows=\"6\"\n value={props.value.options.subscription}\n onChange={(event) => props.onChange(event, 'jsonstring')}\n helpText=\"Defaults to all. This can be an array of subscriptions.\"\n />\n </div>\n )}\n </div>\n )}\n {props.value.options.type === 'udp' && (\n <PortInput value={props.value.options} onChange={props.onChange} />\n )}\n {serialParams(props)}\n {!props.value.options.useDiscovery && (\n <FormGroup row>\n <Col md=\"3\">\n <Label htmlFor=\"options.type\">'self' handling</Label>\n </Col>\n <Col xs=\"12\" md=\"3\">\n <Input\n type=\"select\"\n value={props.value.options.selfHandling || 'noSelf'}\n name=\"options.selfHandling\"\n onChange={(event) => props.onChange(event)}\n >\n <option value=\"useRemoteSelf\">\n Map remote 'self' to local 'self'\n </option>\n <option value=\"manualSelf\">Manual mapping</option>\n <option value=\"noSelf\">No 'self' mapping</option>\n </Input>\n </Col>\n </FormGroup>\n )}\n {!props.value.options.useDiscovery &&\n props.value.options.selfHandling === 'manualSelf' && (\n <RemoteSelfInput\n value={props.value.options}\n onChange={props.onChange}\n />\n )}\n </div>\n )\n}\n\nconst gpios = [\n 4, 5, 6, 12, 13, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,\n].map((gpio) => `0${gpio}`.slice(-2))\nconst Seatalk = (props) => (\n <span>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"gpio\">GPIO Pin</Label>\n </Col>\n <Col xs=\"12\" md=\"3\">\n <Input\n type=\"select\"\n name=\"options.gpio\"\n id=\"gpio\"\n onChange={props.onChange}\n value={props.value.options.gpio || gpios[0]}\n >\n {gpios.map((gpio) => (\n <option key={gpio}>{`GPIO${gpio}`}</option>\n ))}\n </Input>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"gpioInvert\">Invert signal</Label>\n </Col>\n <Col xs=\"12\" md=\"10\">\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n id=\"gpioInvert\"\n name=\"options.gpioInvert\"\n className=\"switch-input\"\n onChange={props.onChange}\n checked={props.value.options.gpioInvert}\n />\n <span className=\"switch-label\" data-on=\"Yes\" data-off=\"No\" />\n <span className=\"switch-handle\" />\n </Label>\n </Col>\n </FormGroup>\n </span>\n)\n\nconst FileStream = (props) => {\n return (\n <div>\n <DataTypeInput\n hasAnalyzer={props.hasAnalyzer}\n value={props.value}\n onChange={props.onChange}\n />\n <TextInput\n title=\"File Name\"\n name=\"options.filename\"\n value={props.value.options.filename}\n onChange={props.onChange}\n />\n </div>\n )\n}\n\nconst serialParams = (props) =>\n props.value.options.type === 'serial' && (\n <div>\n <DeviceInput value={props.value.options} onChange={props.onChange} />\n <BaudRateIntput value={props.value.options} onChange={props.onChange} />\n <StdOutInput value={props.value.options} onChange={props.onChange} />\n </div>\n )\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Alert,\n Badge,\n Button,\n Card,\n CardHeader,\n CardBody,\n CardFooter,\n Collapse,\n Input,\n Table,\n} from 'reactstrap'\nimport Creatable from 'react-select/creatable'\nimport remove from 'lodash.remove'\n\nexport const SOURCEPRIOS_PRIO_CHANGED = 'SOURCEPRIOS_PPRIO_CHANGED'\nexport const SOURCEPRIOS_PRIO_DELETED = 'SOURCEPRIOS_PRIO_DELETED'\nexport const SOURCEPRIOS_PRIO_MOVED = 'SOURCEPRIOS_PRIO_MOVED'\n\nexport const SOURCEPRIOS_PATH_CHANGED = 'SOURCEPRIOS_PATH_CHANGED'\nexport const SOURCEPRIOS_PATH_DELETED = 'SOURCEPRIOS_PATH_DELETED'\n\nexport const SOURCEPRIOS_SAVING = 'SOURCEPRIOS_SAVING'\nexport const SOURCEPRIOS_SAVED = 'SOURCEPRIOS_SAVED'\nexport const SOURCEPRIOS_SAVE_FAILED = 'SOURCEPRIOS_SAVE_FAILED'\nexport const SOURCEPRIOS_SAVE_FAILED_OVER = 'SOURCEPRIOS_SAVE_FAILED_OVER'\n\nfunction checkTimeouts(sourcePriorities) {\n return sourcePriorities.reduce((acc, prio, i) => {\n const { timeout } = prio\n if (!acc) {\n return acc\n }\n\n if (i === 0) {\n return true\n }\n\n const thisOne = Number(timeout)\n if (Number.isNaN(thisOne) || thisOne <= 0) {\n return false\n }\n if (i === 1) {\n return true\n }\n return thisOne > Number(sourcePriorities[i - 1].timeout)\n }, true)\n}\n\nexport const reduceSourcePriorities = (state, action) => {\n const sourcePriorities = JSON.parse(JSON.stringify(state.sourcePriorities))\n let saveState = { ...state.saveState }\n const { path, index, pathIndex, sourceRef, timeout, change } =\n action.data || {}\n const prios =\n pathIndex !== undefined ? sourcePriorities[pathIndex].priorities : undefined\n\n switch (action.type) {\n case SOURCEPRIOS_PATH_CHANGED:\n if (index === sourcePriorities.length) {\n sourcePriorities.push({ path: '', priorities: [] })\n }\n sourcePriorities[index].path = path\n saveState.dirty = true\n break\n\n case SOURCEPRIOS_PATH_DELETED:\n remove(sourcePriorities, (_, i) => i === index)\n saveState.dirty = true\n break\n\n case SOURCEPRIOS_PRIO_CHANGED:\n if (pathIndex === sourcePriorities.length) {\n sourcePriorities.push({ path: '', priorities: [] })\n }\n if (index === prios.length) {\n prios.push({ sourceRef: '', timeout: '' })\n }\n prios[index] = { sourceRef, timeout }\n saveState.dirty = true\n saveState.timeoutsOk = checkTimeouts(prios)\n break\n\n case SOURCEPRIOS_PRIO_DELETED:\n remove(prios, (_, i) => i === index)\n saveState.dirty = true\n break\n\n case SOURCEPRIOS_PRIO_MOVED:\n const tmp = prios[index]\n prios[index] = prios[index + change]\n prios[index + change] = tmp\n saveState.dirty = true\n saveState.timeoutsOk = checkTimeouts(prios)\n break\n\n case SOURCEPRIOS_SAVING:\n saveState = {\n ...saveState,\n isSaving: true,\n saveFailed: false,\n }\n break\n\n case SOURCEPRIOS_SAVED:\n saveState = {\n ...saveState,\n dirty: false,\n isSaving: false,\n saveFailed: false,\n }\n break\n\n case SOURCEPRIOS_SAVE_FAILED:\n saveState = {\n ...saveState,\n isSaving: false,\n saveFailed: true,\n }\n break\n\n case SOURCEPRIOS_SAVE_FAILED_OVER:\n saveState = {\n ...saveState,\n saveFailed: false,\n }\n break\n\n default:\n return state\n }\n // common return statement\n return { sourcePriorities, saveState }\n}\n\nfunction fetchSourceRefs(path, cb) {\n fetch(`/signalk/v1/api/vessels/self/${path.replace(/\\./g, '/')}`, {\n credentials: 'include',\n })\n .then((response) => response.json())\n .then((pathResponse) => {\n let sourceRefs = [pathResponse.$source]\n if (pathResponse.values) {\n sourceRefs = sourceRefs.concat(Object.keys(pathResponse.values))\n }\n return _.uniq(sourceRefs)\n })\n .then(cb)\n}\n\nclass PrefsEditor extends Component {\n constructor(props) {\n super(props)\n this.state = { isOpen: false, sourceRefs: [] }\n fetchSourceRefs(this.props.path, (sourceRefs) => {\n this.setState({ sourceRefs })\n })\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.path !== prevProps.path) {\n fetchSourceRefs(this.props.path, (sourceRefs) => {\n this.setState({ sourceRefs })\n })\n }\n }\n\n render() {\n const toggleEditor = () =>\n this.setState((state) => ({ isOpen: !state.isOpen }))\n return (\n <div>\n {!this.state.isOpen && <div onClick={toggleEditor}>...</div>}\n <Collapse isOpen={this.state.isOpen}>\n <Table>\n <thead onClick={toggleEditor}>\n <tr>\n <td style={{ width: '30px' }}>#</td>\n <td>Source Reference (see DataBrowser for details)</td>\n <td style={{ width: '120px' }}>Timeout (ms)</td>\n <td style={{ Width: '80px' }}>Order</td>\n <td></td>\n </tr>\n </thead>\n <tbody>\n {[...this.props.priorities, { sourceRef: '', timeout: '' }].map(\n ({ sourceRef, timeout }, index) => {\n const options = this.state.sourceRefs.map((sourceRef) => ({\n label: sourceRef,\n value: sourceRef,\n }))\n return (\n <tr key={index}>\n <td>{index + 1}.</td>\n <td>\n <Creatable\n menuPortalTarget={document.body}\n options={options}\n value={{ value: sourceRef, label: sourceRef }}\n onChange={(e) => {\n this.props.dispatch({\n type: SOURCEPRIOS_PRIO_CHANGED,\n data: {\n pathIndex: this.props.pathIndex,\n sourceRef: e.value,\n timeout,\n index,\n },\n })\n }}\n />\n </td>\n <td>\n {index > 0 && (\n <Input\n type=\"number\"\n name=\"timeout\"\n onChange={(e) =>\n this.props.dispatch({\n type: SOURCEPRIOS_PRIO_CHANGED,\n data: {\n pathIndex: this.props.pathIndex,\n sourceRef,\n timeout: e.target.value,\n index,\n },\n })\n }\n value={timeout}\n />\n )}\n </td>\n <td>\n {index > 0 && index < this.props.priorities.length && (\n <button\n onClick={() =>\n !this.props.isSaving &&\n this.props.dispatch({\n type: SOURCEPRIOS_PRIO_MOVED,\n data: {\n pathIndex: this.props.pathIndex,\n index,\n change: -1,\n },\n })\n }\n >\n <i className=\"fas fa-arrow-up\" />\n </button>\n )}\n {index < this.props.priorities.length - 1 && (\n <button\n onClick={() =>\n !this.props.isSaving &&\n this.props.dispatch({\n type: SOURCEPRIOS_PRIO_MOVED,\n data: {\n pathIndex: this.props.pathIndex,\n index,\n change: 1,\n },\n })\n }\n >\n <i className=\"fas fa-arrow-down\" />\n </button>\n )}\n </td>\n <td>\n {index < this.props.priorities.length && (\n <i\n className=\"fas fa-trash\"\n onClick={() =>\n !this.props.isSaving &&\n this.props.dispatch({\n type: SOURCEPRIOS_PRIO_DELETED,\n data: {\n pathIndex: this.props.pathIndex,\n index,\n },\n })\n }\n />\n )}\n </td>\n </tr>\n )\n }\n )}\n </tbody>\n </Table>\n </Collapse>\n </div>\n )\n }\n}\n\nconst sourcePrioritySave = (sourcePriorities) => (dispatch) => {\n dispatch({\n type: SOURCEPRIOS_SAVING,\n })\n fetch(`${window.serverRoutesPrefix}/sourcePriorities`, {\n method: 'PUT',\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(\n sourcePriorities.reduce((acc, pathPriority) => {\n acc[pathPriority.path] = pathPriority.priorities\n return acc\n }, {})\n ),\n })\n .then((response) => {\n if (response.status === 200) {\n dispatch({\n type: SOURCEPRIOS_SAVED,\n })\n } else {\n throw new Error()\n }\n })\n .catch((err) => {\n dispatch({\n type: SOURCEPRIOS_SAVE_FAILED,\n })\n setTimeout(\n () => dispatch({ type: SOURCEPRIOS_SAVE_FAILED_OVER }),\n 5 * 1000\n )\n })\n}\n\nfunction fetchAvailablePaths(cb) {\n fetch(`${window.serverRoutesPrefix}/availablePaths`, {\n credentials: 'include',\n })\n .then((response) => response.json())\n .then(cb)\n}\n\nclass SourcePriorities extends Component {\n constructor(props) {\n super(props)\n this.state = {\n availablePaths: [],\n }\n fetchAvailablePaths((pathsArray) => {\n this.setState({\n availablePaths: pathsArray.map((path) => ({\n value: path,\n label: path,\n })),\n })\n })\n }\n\n render() {\n const sourcePriorities = [].concat(this.props.sourcePriorities)\n sourcePriorities.push({ path: '', priorities: [] })\n return (\n <Card>\n <CardHeader>Source Priorities Settings</CardHeader>\n <CardBody>\n <Alert>\n <p>\n Use Source Priorities to filter incoming data so that data from\n lower priority sources is discarded when there is fresh data from\n some higher priority source.\n </p>\n <p>\n Incoming data is not handled if the{' '}\n <b>\n latest value for a path is from a higher priority source and it\n is not older than the timeout\n </b>{' '}\n specified for the source of the incoming data. Timeout for data\n from unlisted sources is 10 seconds.\n </p>\n <p>\n You can debug the settings by saving them and activating debug key{' '}\n <b>signalk-server:sourcepriorities</b> in{' '}\n <a href=\"./#/serverConfiguration/log\">Server Log</a>\n </p>\n </Alert>\n <Table responsive bordered striped size=\"sm\">\n <thead>\n <tr>\n <th style={{ width: '40%' }}>Path</th>\n <th>Priorities</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n {sourcePriorities.map(({ path, priorities }, index) => {\n return (\n <tr key={index}>\n <td>\n <Creatable\n menuPortalTarget={document.body}\n options={this.state.availablePaths}\n value={{ value: path, label: path }}\n onChange={(e) => {\n this.props.dispatch({\n type: SOURCEPRIOS_PATH_CHANGED,\n data: { path: e.value, index },\n })\n }}\n />\n </td>\n <td>\n <PrefsEditor\n key={path}\n path={path}\n priorities={priorities}\n dispatch={this.props.dispatch}\n isSaving={this.props.saveState.isSaving}\n pathIndex={index}\n />\n </td>\n <td style={{ border: 'none' }}>\n {index < this.props.sourcePriorities.length && (\n <i\n className=\"fas fa-trash\"\n onClick={() =>\n this.props.dispatch({\n type: SOURCEPRIOS_PATH_DELETED,\n data: {\n index,\n },\n })\n }\n />\n )}\n </td>\n </tr>\n )\n })}\n </tbody>\n </Table>\n </CardBody>\n <CardFooter>\n <Button\n size=\"sm\"\n color=\"primary\"\n disabled={\n !this.props.saveState.dirty ||\n this.props.saveState.isSaving ||\n !this.props.saveState.timeoutsOk\n }\n onClick={(e) => {\n e.preventDefault()\n this.props.dispatch(\n sourcePrioritySave(this.props.sourcePriorities)\n )\n }}\n >\n <i className=\"fa fa-save\" /> Save\n </Button>\n {this.props.saveState.saveFailed &&\n 'Saving priorities settings failed!'}\n {!this.props.saveState.timeoutsOk && (\n <span style={{ paddingLeft: '10px' }}>\n <Badge color=\"danger\">Error</Badge>\n {\n 'The timeout values need to be numbers in ascending order, please fix.'\n }\n </span>\n )}\n </CardFooter>\n </Card>\n )\n }\n}\n\nconst mapStateToProps = ({ sourcePrioritiesData }) => ({\n sourcePriorities: sourcePrioritiesData.sourcePriorities,\n saveState: sourcePrioritiesData.saveState,\n})\n\nexport default connect(mapStateToProps)(SourcePriorities)\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport classnames from 'classnames'\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n CardFooter,\n InputGroup,\n InputGroupAddon,\n Input,\n Form,\n Col,\n Label,\n FormGroup,\n FormText,\n Table,\n Nav,\n NavItem,\n NavLink,\n TabContent,\n TabPane,\n Row,\n} from 'reactstrap'\n\nimport BasicProvider from './BasicProvider'\nimport SourcePriorities from './SourcePriorities'\nimport set from 'lodash.set'\n\nfunction fetchProviders() {\n fetch(`${window.serverRoutesPrefix}/providers`, {\n credentials: 'include',\n })\n .then((response) => response.json())\n .then((data) => {\n let selectedProvider = undefined\n let selectedIndex = undefined\n if (this.state.selectedProviderId) {\n selectedProvider = data.find(\n (provider) => provider.id === this.state.selectedProviderId\n )\n selectedIndex = data.findIndex(\n (provider) => provider.id === this.state.selectedProviderId\n )\n }\n if (selectedProvider) {\n selectedProvider.originalId = selectedProvider.id\n }\n this.setState({\n providers: data,\n selectedProvider: selectedProvider\n ? JSON.parse(JSON.stringify(selectedProvider))\n : undefined,\n selectedIndex: selectedIndex,\n })\n })\n}\n\nfunction runDiscovery() {\n fetch(`${window.serverRoutesPrefix}/runDiscovery`, {\n method: 'PUT',\n credentials: 'include',\n })\n}\n\nfunction onRowSelect(row, isSelected, e) {\n // if column index is 2, will not trigger selection\n if (e.target.cellIndex === 2) return false\n}\n\nclass ProvidersConfiguration extends Component {\n constructor(props) {\n super(props)\n this.state = {\n activeTab: '1',\n providers: [],\n selectedProviderId: this.props.match.params.providerId,\n }\n\n this.fetchProviders = fetchProviders.bind(this)\n this.runDiscovery = runDiscovery.bind(this)\n this.handleProviderChange = this.handleProviderChange.bind(this)\n this.handleProviderPropChange = this.handleProviderChange.bind(this)\n this.handleAddProvider = this.handleAddProvider.bind(this)\n this.handleCancel = this.handleCancel.bind(this)\n this.toggle = this.toggle.bind(this)\n this.handleApply = this.handleApply.bind(this)\n this.handleCancel = this.handleCancel.bind(this)\n this.handleDelete = this.handleDelete.bind(this)\n }\n\n componentDidMount() {\n this.fetchProviders()\n this.runDiscovery()\n }\n\n handleProviderChange(event, type) {\n var value =\n event.target.type === 'checkbox'\n ? event.target.checked\n : event.target.value\n if (type === 'number') {\n value = Number(value)\n }\n set(this.state.selectedProvider, event.target.name, value)\n this.setState({\n selectedProvider: this.state.selectedProvider,\n })\n }\n\n handleProviderPropChange(event) {\n this.setState({\n selectedProvider: this.state.selectedProvider,\n })\n }\n\n handleAddProvider(event) {\n var newProvider = {\n type: 'NMEA2000',\n logging: false,\n isNew: true,\n id: '',\n enabled: true,\n options: {},\n editable: true,\n }\n this.setState(\n {\n selectedProvider: JSON.parse(JSON.stringify(newProvider)),\n selectedIndex: this.state.providers.length - 1,\n },\n () => {\n this.refs['selectedProvider'].scrollIntoView()\n }\n )\n }\n\n handleApply(event) {\n var isNew = this.state.selectedProvider.isNew\n var wasDiscovered = this.state.selectedProvider.wasDiscovered\n\n var provider = this.state.selectedProvider\n delete this.state.selectedProvider.json\n\n var id = this.state.selectedProvider.originalId\n\n fetch(`${window.serverRoutesPrefix}/providers/${id && !isNew ? id : ''}`, {\n method: isNew ? 'POST' : 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(this.state.selectedProvider),\n credentials: 'include',\n })\n .then((response) => {\n if (response.ok) {\n var provider = JSON.parse(JSON.stringify(this.state.selectedProvider))\n delete provider.isNew\n delete provider.wasDiscovered\n delete this.state.selectedProvider.isNew\n if (isNew) {\n this.state.providers.push(provider)\n } else {\n this.state.providers[this.state.selectedIndex] = provider\n }\n if (wasDiscovered) {\n this.props.discoveredProviders.splice(this.state.selectedIndex, 1)\n }\n this.setState(\n {\n providers: this.state.providers,\n //discoveredProviders: this.state.discoveredProviders,\n selectedProvider: null,\n selectedIndex: -1,\n },\n () => {\n this.props.history.push('/serverConfiguration/connections/-')\n }\n )\n }\n return response.text()\n })\n .then((text) => {\n alert(text)\n })\n }\n\n handleCancel(event) {\n this.setState({ selectedProvider: null })\n }\n\n handleDelete(event) {\n fetch(\n `${window.serverRoutesPrefix}/providers/${this.state.selectedProvider.id}`,\n {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json',\n },\n credentials: 'include',\n }\n )\n .then((response) => response.text())\n .then((response) => {\n this.state.providers.splice(this.state.selectedIndex, 1)\n this.setState({\n providers: this.state.providers,\n selectedProvider: null,\n selectedIndex: -1,\n })\n alert(response)\n })\n }\n\n providerClicked(provider, index) {\n this.setState(\n {\n selectedProvider: {\n ...JSON.parse(JSON.stringify(provider)),\n originalId: provider.id,\n },\n selectedIndex: index,\n },\n () => {\n this.refs['selectedProvider'].scrollIntoView()\n }\n )\n }\n\n toggle(tab) {\n if (this.state.activeTab !== tab) {\n this.setState({\n activeTab: tab,\n })\n }\n }\n\n render() {\n return (\n <div className=\"animated fadeIn\">\n {this.props.discoveredProviders &&\n this.props.discoveredProviders.length > 0 && (\n <Card>\n <CardHeader>Discovered Connections</CardHeader>\n <CardBody>\n <Table hover responsive bordered striped size=\"sm\">\n <thead>\n <tr>\n <th>ID</th>\n <th>Data Type</th>\n <th>Enabled</th>\n <th>Logging</th>\n </tr>\n </thead>\n <tbody>\n {(this.props.discoveredProviders || []).map(\n (provider, index) => {\n return (\n <tr\n onClick={this.providerClicked.bind(\n this,\n provider,\n index\n )}\n key={provider.id}\n >\n <td>{provider.id}</td>\n <td>\n <ProviderType provider={provider} />\n </td>\n <td>\n <ApplicableStatus\n applicable={provider.editable}\n toggle={provider.enabled}\n />\n </td>\n <td>\n <ApplicableStatus\n applicable={provider.editable}\n toggle={provider.logging}\n />\n </td>\n </tr>\n )\n }\n )}\n </tbody>\n </Table>\n </CardBody>\n </Card>\n )}\n <Card>\n <CardHeader>Connections</CardHeader>\n <CardBody>\n <Table hover responsive bordered striped size=\"sm\">\n <thead>\n <tr>\n <th>ID</th>\n <th>Data Type</th>\n <th>Enabled</th>\n <th>Logging</th>\n </tr>\n </thead>\n <tbody>\n {(this.state.providers || []).map((provider, index) => {\n return (\n <tr\n onClick={this.providerClicked.bind(this, provider, index)}\n key={provider.id}\n >\n <td>{provider.id}</td>\n <td>\n <ProviderType provider={provider} />\n </td>\n <td>\n <ApplicableStatus\n applicable={provider.editable}\n toggle={provider.enabled}\n />\n </td>\n <td>\n <ApplicableStatus\n applicable={provider.editable}\n toggle={provider.logging}\n />\n </td>\n </tr>\n )\n })}\n </tbody>\n </Table>\n </CardBody>\n <CardFooter>\n <Button size=\"sm\" color=\"primary\" onClick={this.handleAddProvider}>\n <i className=\"fa fa-plus-circle\" /> Add\n </Button>\n </CardFooter>\n </Card>\n\n {this.state.selectedProvider && (\n <div ref=\"selectedProvider\" style={{ scrollMarginTop: '54px' }}>\n <Card>\n <CardBody>\n {this.state.selectedProvider.editable ? (\n <BasicProvider\n value={this.state.selectedProvider}\n onChange={this.handleProviderChange}\n onPropChange={this.handleProviderPropChange}\n />\n ) : (\n <Input\n type=\"textarea\"\n name=\"json\"\n id=\"json\"\n rows=\"20\"\n value={this.state.selectedProvider.json}\n readOnly=\"true\"\n />\n )}\n </CardBody>\n <CardFooter>\n {this.state.selectedProvider.editable ? (\n <Row>\n <Col xs=\"4\" md=\"1\">\n <Button\n size=\"sm\"\n color=\"primary\"\n onClick={this.handleApply}\n >\n <i className=\"fa fa-dot-circle-o\" /> Apply\n </Button>\n </Col>\n <Col xs=\"4\" md=\"1\">\n <Button\n size=\"sm\"\n color=\"secondary\"\n onClick={this.handleCancel}\n >\n <i className=\"fa fa-ban\" /> Cancel\n </Button>\n </Col>\n <Col xs=\"4\" md=\"10\" className=\"text-right\">\n <Button\n size=\"sm\"\n color=\"danger\"\n onClick={this.handleDelete}\n >\n <i className=\"fa fa-ban\" /> Delete\n </Button>\n </Col>\n </Row>\n ) : (\n <Row>\n <Col xs=\"4\" md=\"12\" className=\"text-right\">\n <Button\n size=\"sm\"\n color=\"danger\"\n onClick={this.handleDelete}\n >\n <i className=\"fa fa-ban\" /> Delete\n </Button>\n </Col>\n </Row>\n )}\n </CardFooter>\n </Card>\n </div>\n )}\n\n <SourcePriorities />\n </div>\n )\n }\n}\n\nconst ApplicableStatus = (props) => (\n <div>{props.applicable ? (props.toggle ? 'Yes' : 'No') : 'N/A'}</div>\n)\n\nconst ProviderType = (props) => (\n <div>\n {props.provider.type}\n {props.provider.type === 'FileStream'\n ? `/${props.provider.options.dataType}`\n : ''}\n </div>\n)\nconst mapStateToProps = ({ discoveredProviders }) => ({ discoveredProviders })\n\nexport default connect(mapStateToProps)(ProvidersConfiguration)\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Button,\n Card,\n CardHeader,\n CardFooter,\n CardBody,\n Col,\n Row,\n ListGroup,\n ListGroupItem,\n} from 'reactstrap'\n\nfunction fetchLogfileList() {\n const okResponse = fetch(`${window.serverRoutesPrefix}/logfiles/`, {\n credentials: 'include',\n }).then((response) => {\n if (!response.ok) {\n this.setState({ authorized: false })\n return false\n }\n return response\n })\n\n okResponse &&\n okResponse\n .then((response) => response.json())\n .then((logfileslist) => {\n logfileslist.sort()\n this.setState({ logfileslist, hasData: true, authorized: true })\n })\n}\n\nclass Settings extends Component {\n constructor(props) {\n super(props)\n this.state = {\n hasData: false,\n authorized: true,\n }\n\n this.fetchLogfileList = fetchLogfileList.bind(this)\n }\n\n componentDidMount() {\n this.fetchLogfileList()\n }\n\n render() {\n if (!this.state.authorized) {\n return <div className=\"animated fadeIn\">Not Authorized</div>\n }\n\n return (\n this.state.hasData && (\n <div className=\"animated fadeIn\">\n <Row>\n <Col sm=\"12\" xl=\"12\">\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\" />\n <strong>Log files</strong>\n </CardHeader>\n <CardBody>\n <ListGroup>\n {this.logfilesToRows(this.state.logfileslist)}\n </ListGroup>\n </CardBody>\n <CardFooter>\n <small className=\"text-muted\">\n Click button to download each logfile or\n </small>\n <a href={`${window.serverRoutesPrefix}/ziplogs`}>\n <Button className=\"m-2\">\n Get all logs in one ZIP file\n </Button>\n </a>\n </CardFooter>\n </Card>\n </Col>\n </Row>\n </div>\n )\n )\n }\n\n logfilesToRows(logfiles) {\n // skserver-raw_2017-03-04T14.log\n // 012345678901234567890123456789012\n const datesWithHours = logfiles.reduce((acc, logfile) => {\n const date = logfile.substr(13, 10)\n const hour = logfile.substr(24, 2)\n if (!acc[date]) {\n acc[date] = []\n }\n acc[date].push(hour)\n return acc\n }, {})\n\n return Object.keys(datesWithHours).map((date, i) => {\n return (\n <ListGroupItem key={i}>\n {date}\n {datesWithHours[date].map((hour, i) => (\n <span key={i}>\n <a\n href={`${window.serverRoutesPrefix}/logfiles/skserver-raw_${date}T${hour}.log`}\n >\n <Button className=\"m-2\">{hour}</Button>\n </a>\n </span>\n ))}\n </ListGroupItem>\n )\n })\n }\n}\n\nexport default connect()(Settings)\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Badge,\n Button,\n Card,\n CardHeader,\n CardBody,\n CardFooter,\n InputGroup,\n InputGroupAddon,\n Input,\n Form,\n Col,\n Label,\n FormGroup,\n FormText,\n Table,\n Progress,\n} from 'reactstrap'\n\nimport VesselConfiguration from './VesselConfiguration'\nimport LogFiles from './Logging'\n\nfunction fetchSettings() {\n fetch(`${window.serverRoutesPrefix}/settings`, {\n credentials: 'include',\n })\n .then((response) => response.json())\n .then((data) => {\n this.setState({ ...data, hasData: true })\n })\n}\n\nclass ServerSettings extends Component {\n constructor(props) {\n super(props)\n this.state = {\n hasData: false,\n }\n this.fetchSettings = fetchSettings.bind(this)\n this.handleChange = this.handleChange.bind(this)\n this.handleOptionChange = this.handleOptionChange.bind(this)\n this.handleInterfaceChange = this.handleInterfaceChange.bind(this)\n this.handleSaveSettings = this.handleSaveSettings.bind(this)\n }\n\n componentDidMount() {\n this.fetchSettings()\n }\n\n handleChange(event) {\n const value =\n event.target.type === 'checkbox'\n ? event.target.checked\n : event.target.value\n this.setState({ [event.target.name]: value })\n }\n\n handleOptionChange(event) {\n const value =\n event.target.type === 'checkbox'\n ? event.target.checked\n : event.target.value\n this.state.options[event.target.name] = value\n this.setState({ options: this.state.options })\n }\n\n handleInterfaceChange(event) {\n const value =\n event.target.type === 'checkbox'\n ? event.target.checked\n : event.target.value\n this.state.interfaces[event.target.name] = value\n this.setState({ interfaces: this.state.interfaces })\n }\n\n handleSaveSettings() {\n fetch(`${window.serverRoutesPrefix}/settings`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(this.state),\n credentials: 'include',\n })\n .then((response) => response.text())\n .then((response) => {\n alert(response)\n })\n }\n\n render() {\n const fieldColWidthMd = 10\n return (\n this.state.hasData && (\n <div className=\"animated fadeIn\">\n <Card>\n <CardHeader>\n <i className=\"fa fa-align-justify\" />\n <strong>Server Settings</strong>\n </CardHeader>\n <CardBody>\n <Form\n action=\"\"\n method=\"post\"\n encType=\"multipart/form-data\"\n className=\"form-horizontal\"\n >\n {!this.state.runFromSystemd && (\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"port\">HTTP Port</Label>\n </Col>\n <Col xs=\"12\" md={fieldColWidthMd}>\n <Input\n size=\"5\"\n style={{ width: 'auto' }}\n type=\"text\"\n name=\"port\"\n onChange={this.handleChange}\n value={this.state.port}\n />\n <FormText color=\"muted\">\n Saving a new value here will not have effect if\n overridden by environment variable PORT\n </FormText>\n </Col>\n </FormGroup>\n )}\n {this.state.runFromSystemd && (\n <FormGroup row>\n <Col xs=\"12\" md={fieldColWidthMd}>\n <FormText>\n The server was started by systemd, run\n signalk-server-setup to change ports and ssl\n configuration.\n </FormText>\n </Col>\n </FormGroup>\n )}\n {this.state.options.ssl && !this.state.runFromSystemd && (\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"sslport\">SSL Port</Label>\n </Col>\n <Col xs=\"12\" md={fieldColWidthMd}>\n <Input\n size=\"5\"\n style={{ width: 'auto' }}\n type=\"text\"\n name=\"sslport\"\n onChange={this.handleChange}\n value={this.state.sslport}\n />\n <FormText color=\"muted\">\n Saving a new value here will not have effect if\n overridden by environment variable SSLPORT\n </FormText>\n </Col>\n </FormGroup>\n )}\n <FormGroup row>\n <Col md=\"2\">\n <Label>Options</Label>\n </Col>\n <Col md={fieldColWidthMd}>\n <FormGroup check>\n {Object.keys(this.state.options).map((name) => {\n return (\n <div key={name}>\n <Label\n style={{ marginRight: '15px' }}\n className=\"switch switch-text switch-primary\"\n >\n <Input\n type=\"checkbox\"\n id={name}\n name={name}\n className=\"switch-input\"\n onChange={this.handleOptionChange}\n checked={this.state.options[name]}\n />\n <span\n className=\"switch-label\"\n data-on=\"On\"\n data-off=\"Off\"\n />\n <span className=\"switch-handle\" />\n </Label>\n <span style={{ lineHeight: '23px' }}>{name}</span>\n </div>\n )\n })}\n </FormGroup>\n </Col>\n </FormGroup>\n\n <FormGroup row>\n <Col md=\"2\">\n <Label>Interfaces</Label>\n </Col>\n <Col md={fieldColWidthMd}>\n <FormGroup check>\n {Object.keys(SettableInterfaces).map((name) => {\n return (\n <div key={name}>\n <Label\n style={{ marginRight: '15px' }}\n className=\"switch switch-text switch-primary\"\n >\n <Input\n type=\"checkbox\"\n id={name}\n name={name}\n className=\"switch-input\"\n onChange={this.handleInterfaceChange}\n checked={this.state.interfaces[name]}\n />\n <span\n className=\"switch-label\"\n data-on=\"On\"\n data-off=\"Off\"\n />\n <span className=\"switch-handle\" />\n </Label>\n <span style={{ lineHeight: '24px' }}>\n {SettableInterfaces[name]}\n </span>\n </div>\n )\n })}\n </FormGroup>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"pruneContextsMinutes\">\n Maximum age of inactive vessels' data\n </Label>\n </Col>\n <Col xs=\"12\" md={fieldColWidthMd}>\n <Input\n type=\"text\"\n name=\"pruneContextsMinutes\"\n onChange={this.handleChange}\n value={this.state.pruneContextsMinutes}\n />\n <FormText color=\"muted\">\n Vessels that have not been updated after this many minutes\n will be removed\n </FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label htmlFor=\"loggingDirectory\">\n Data Logging Directory\n </Label>\n </Col>\n <Col xs=\"12\" md={fieldColWidthMd}>\n <Input\n type=\"text\"\n name=\"loggingDirectory\"\n onChange={this.handleChange}\n value={this.state.loggingDirectory}\n />\n <FormText color=\"muted\">\n Connections that have logging enabled create hourly log\n files in Multiplexed format in this directory\n </FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col md=\"2\">\n <Label>Keep only most recent logs</Label>\n </Col>\n <Col>\n <FormGroup check>\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"keepMostRecentLogsOnly\"\n id=\"keepMostRecentLogsOnly\"\n className=\"switch-input\"\n onChange={this.handleChange}\n checked={this.state.keepMostRecentLogsOnly}\n />\n <span\n className=\"switch-label\"\n data-on=\"On\"\n data-off=\"Off\"\n />\n <span className=\"switch-handle\" />\n </Label>\n </FormGroup>\n </Col>\n <Col>\n <Input\n type=\"text\"\n name=\"logCountToKeep\"\n onChange={this.handleChange}\n value={this.state.logCountToKeep}\n />\n <FormText color=\"muted\">\n How many hourly files to keep\n </FormText>\n </Col>\n </FormGroup>\n </Form>\n </CardBody>\n <CardFooter>\n <Button\n size=\"sm\"\n color=\"primary\"\n onClick={this.handleSaveSettings}\n >\n <i className=\"fa fa-dot-circle-o\" /> Save\n </Button>{' '}\n <Badge color=\"danger\" className=\"float-right\">\n Restart Required\n </Badge>\n </CardFooter>\n </Card>\n </div>\n )\n )\n }\n}\n\nconst SettableInterfaces = {\n applicationData: 'Application Data Storage',\n logfiles: 'Data log files access',\n 'nmea-tcp': 'NMEA 0183 over TCP (10110)',\n tcp: 'Signal K over TCP (8375)',\n}\n\nconst ReduxedSettings = connect()(ServerSettings)\n\nclass Settings extends Component {\n render() {\n return (\n <div>\n <VesselConfiguration />\n <ReduxedSettings />\n <LogFiles />\n </div>\n )\n }\n}\n\nexport default Settings\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport {\n Button,\n Card,\n CardHeader,\n CardBody,\n CardFooter,\n Input,\n Form,\n Col,\n Label,\n FormGroup,\n FormText,\n Progress,\n} from 'reactstrap'\n\nimport { restart } from '../../actions'\n\nconst RESTORE_NONE = 0\nconst RESTORE_VALIDATING = 1\nconst RESTORE_CONFIRM = 2\nconst RESTORE_RUNNING = 3\n\nclass BackupRestore extends Component {\n constructor(props) {\n super(props)\n this.state = {\n restoreFile: null,\n restoreState: RESTORE_NONE,\n includePlugins: false,\n }\n this.fileChanged = this.fileChanged.bind(this)\n this.handleRestoreFileChange = this.handleRestoreFileChange.bind(this)\n this.includePluginsChange = this.includePluginsChange.bind(this)\n this.backup = this.backup.bind(this)\n this.validate = this.validate.bind(this)\n this.restore = this.restore.bind(this)\n this.restart = this.restart.bind(this)\n this.cancelRestore = this.cancelRestore.bind(this)\n }\n\n cancelRestore(event) {\n this.setState({ restoreState: RESTORE_NONE })\n }\n\n fileChanged(event) {\n this.setState({ ...this.state, restoreFile: event.target.files[0] })\n }\n\n backup() {\n const url = `${window.serverRoutesPrefix}/backup?includePlugins=${this.state.includePlugins}`\n //const url = `/backup`\n window.location = url\n }\n\n restore() {\n fetch(`${window.serverRoutesPrefix}/restore`, {\n credentials: 'include',\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(this.state.restoreContents),\n })\n .then((response) => {\n if (!response.ok) {\n return response.text()\n }\n })\n .then((res) => {\n if (typeof res === 'string') {\n alert(res)\n this.setState({ restoreState: RESTORE_NONE, restoreFile: null })\n } else {\n this.setState({ restoreState: RESTORE_RUNNING })\n }\n })\n .catch((error) => {\n alert(error.message)\n })\n }\n\n restart() {\n this.props.restart()\n this.setState({ restoreState: RESTORE_NONE })\n window.location = '/admin/#/dashboard'\n }\n\n validate() {\n if (!this.state.restoreFile) {\n alert('Please choose a file')\n return\n }\n\n const data = new FormData()\n data.append('file', this.state.restoreFile)\n\n this.setState({ restoreState: RESTORE_VALIDATING })\n fetch(`${window.serverRoutesPrefix}/validateBackup`, {\n credentials: 'include',\n method: 'POST',\n headers: {\n Accept: 'application/json',\n },\n body: data,\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n } else {\n return response.text()\n }\n })\n .then((res) => {\n if (typeof res === 'string') {\n alert(res)\n this.setState({ restoreState: RESTORE_NONE, restoreFile: null })\n } else {\n const restoreContents = {}\n res.forEach((filename) => {\n restoreContents[filename] = true\n })\n this.setState({ restoreState: RESTORE_CONFIRM, restoreContents })\n }\n })\n .catch((error) => {\n alert(error.message)\n })\n }\n\n handleRestoreFileChange(event) {\n const value =\n event.target.type === 'checkbox'\n ? event.target.checked\n : event.target.value\n this.state.restoreContents[event.target.name] = value\n this.setState({ restoreContents: this.state.restoreContents })\n }\n\n includePluginsChange(event) {\n this.state.includePlugins = event.target.checked\n this.setState({ includePlugins: this.state.includePlugins })\n }\n\n render() {\n const fieldColWidthMd = 10\n return (\n <div>\n {this.state.restoreState === RESTORE_NONE &&\n !this.props.restoreStatus.state && (\n <Card>\n <CardHeader>Backup Settings</CardHeader>\n <CardBody>\n <Form\n action=\"\"\n method=\"post\"\n encType=\"multipart/form-data\"\n className=\"form-horizontal\"\n >\n <FormText color=\"muted\">\n This will backup your server and plugin settings.\n </FormText>\n <br />\n <FormGroup row>\n <Col xs=\"3\" md=\"2\">\n <Label>Include Plugins</Label>\n </Col>\n <Col xs=\"2\" md={fieldColWidthMd}>\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n name=\"enabled\"\n className=\"switch-input\"\n onChange={(event) => this.includePluginsChange(event)}\n checked={this.state.includePlugins}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n />\n <span className=\"switch-handle\" />\n </Label>\n <FormText color=\"muted\">\n Selecting Yes will increase the size of the backup, but\n will allow for offline restore.\n </FormText>\n </Col>\n </FormGroup>\n </Form>\n </CardBody>\n <CardFooter>\n <Button size=\"sm\" color=\"primary\" onClick={this.backup}>\n <i className=\"fa fa-dot-circle-o\" /> Backup\n </Button>{' '}\n </CardFooter>\n </Card>\n )}\n <Card>\n <CardHeader>Restore Settings</CardHeader>\n <CardBody>\n <Form\n action=\"\"\n method=\"post\"\n encType=\"multipart/form-data\"\n className=\"form-horizontal\"\n >\n {this.state.restoreState === RESTORE_NONE &&\n !this.props.restoreStatus.state && (\n <div>\n <FormText color=\"muted\">\n Please select the backup file from your device to use in\n restoring the settings. Your existing settings will be\n overwritten.\n </FormText>\n <br />\n <FormGroup row>\n <Col xs=\"12\" md={fieldColWidthMd}>\n <Input\n type=\"file\"\n name=\"backupFile\"\n onChange={this.fileChanged}\n />\n </Col>\n </FormGroup>\n </div>\n )}\n {this.state.restoreState === RESTORE_CONFIRM && (\n <FormGroup check>\n <Col xs=\"12\" md={fieldColWidthMd}>\n {_.keys(this.state.restoreContents).map((name) => {\n return (\n <div key={name}>\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n id={name}\n name={name}\n className=\"switch-input\"\n onChange={this.handleRestoreFileChange}\n checked={this.state.restoreContents[name]}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n />\n <span className=\"switch-handle\" />\n </Label>{' '}\n {name}\n </div>\n )\n })}\n </Col>\n </FormGroup>\n )}\n {this.props.restoreStatus &&\n this.props.restoreStatus.state &&\n this.props.restoreStatus.state !== 'Complete' && (\n <div>\n <FormGroup row>\n <Col xs=\"12\" md={fieldColWidthMd}>\n <FormText>\n {this.props.restoreStatus.state} :{' '}\n {this.props.restoreStatus.message}\n </FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col xs=\"12\" md={fieldColWidthMd}>\n <Progress\n animated\n color=\"success\"\n value={this.props.restoreStatus.percentComplete}\n />\n </Col>\n </FormGroup>\n </div>\n )}\n {this.props.restoreStatus.state &&\n this.props.restoreStatus.state === 'Complete' && (\n <div>\n <FormGroup row>\n <Col xs=\"12\" md={fieldColWidthMd}>\n <FormText>Please Restart</FormText>\n </Col>\n </FormGroup>\n <FormGroup row>\n <Col xs=\"12\" md={fieldColWidthMd}>\n <Button size=\"sm\" color=\"danger\" onClick={this.restart}>\n {this.props.restarting ? (\n <i className=\"fa fa-circle-o-notch fa-spin\" />\n ) : (\n <i className=\"fa fa-circle-o-notch\" />\n )}{' '}\n Restart\n </Button>\n </Col>\n </FormGroup>\n </div>\n )}\n </Form>\n </CardBody>\n <CardFooter>\n {this.state.restoreState === RESTORE_NONE &&\n !this.props.restoreStatus.state && (\n <div>\n <Button\n size=\"sm\"\n color=\"danger\"\n onClick={this.validate}\n disabled={this.state.restoreFile === null}\n >\n <i className=\"fa fa-dot-circle-o\" /> Restore\n </Button>{' '}\n </div>\n )}\n {this.state.restoreState === RESTORE_CONFIRM && (\n <div>\n <Button size=\"sm\" color=\"primary\" onClick={this.cancelRestore}>\n <i className=\"fa fa-dot-circle-o\" /> Cancel\n </Button>{' '}\n <Button size=\"sm\" color=\"danger\" onClick={this.restore}>\n <i className=\"fa fa-dot-circle-o\" /> Confirm\n </Button>\n </div>\n )}\n </CardFooter>\n </Card>\n </div>\n )\n }\n}\n\nexport default connect(\n ({ restoreStatus, restarting }) => ({ restoreStatus, restarting }),\n { restart }\n)(BackupRestore)\n","import React, { Component } from 'react'\nimport ReactHtmlParser from 'react-html-parser'\nimport { connect } from 'react-redux'\nimport {\n Card,\n CardBody,\n Input,\n Form,\n Col,\n Label,\n FormGroup,\n FormText,\n} from 'reactstrap'\n\nclass ServerLogs extends Component {\n constructor(props) {\n super(props)\n this.state = {\n hasData: true,\n webSocket: null,\n didSubScribe: false,\n pause: false,\n debugKeys: [],\n }\n\n this.handleDebug = this.handleDebug.bind(this)\n this.handlePause = this.handlePause.bind(this)\n this.fetchDebugKeys = this.fetchDebugKeys.bind(this)\n }\n\n subscribeToLogsIfNeeded() {\n if (\n !this.state.pause &&\n this.props.webSocket &&\n (this.props.webSocket != this.state.webSocket ||\n this.state.didSubScribe === false)\n ) {\n const sub = { context: 'vessels.self', subscribe: [{ path: 'log' }] }\n this.props.webSocket.send(JSON.stringify(sub))\n this.state.webSocket = this.props.webSocket\n this.state.didSubScribe = true\n }\n }\n\n unsubscribeToLogs() {\n if (this.props.webSocket) {\n const sub = { context: 'vessels.self', unsubscribe: [{ path: 'log' }] }\n this.props.webSocket.send(JSON.stringify(sub))\n this.state.didSubScribe = false\n }\n }\n\n fetchDebugKeys() {\n fetch(`${window.serverRoutesPrefix}/debugKeys`, {\n credentials: 'include',\n })\n .then((response) => response.json())\n .then((debugKeys) => {\n this.setState({ debugKeys: debugKeys.sort() })\n })\n }\n\n componentDidMount() {\n this.subscribeToLogsIfNeeded()\n this.fetchDebugKeys()\n }\n\n componentDidUpdate() {\n this.subscribeToLogsIfNeeded()\n }\n\n componentWillUnmount() {\n this.unsubscribeToLogs()\n }\n\n handleDebug(event) {\n this.doHandleDebug(event.target.value)\n }\n\n handleDebugCheckbox(value, enabled) {\n const keysToSend =\n this.props.log.debugEnabled.length > 0\n ? this.props.log.debugEnabled.split(',')\n : []\n if (enabled) {\n keysToSend.push(value)\n } else {\n _.remove(keysToSend, (v) => v === value)\n }\n this.doHandleDebug(keysToSend.toString())\n }\n\n doHandleDebug(value) {\n fetch(`${window.serverRoutesPrefix}/debug`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ value }),\n credentials: 'include',\n }).then((response) => response.text())\n }\n\n handleRememberDebug(event) {\n fetch(`${window.serverRoutesPrefix}/rememberDebug`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ value: event.target.checked }),\n credentials: 'include',\n }).then((response) => response.text())\n }\n\n handlePause(event) {\n this.state.pause = event.target.checked\n this.setState(this.state)\n if (this.state.pause) {\n this.unsubscribeToLogs()\n } else {\n this.subscribeToLogsIfNeeded()\n }\n }\n\n render() {\n const activeDebugKeys = this.props.log.debugEnabled.split(',')\n return (\n this.state.hasData && (\n <div className=\"animated fadeIn\">\n <Card>\n <CardBody>\n <Form\n action=\"\"\n method=\"post\"\n encType=\"multipart/form-data\"\n className=\"form-horizontal\"\n onSubmit={(e) => {\n e.preventDefault()\n }}\n >\n <FormGroup row>\n <Col xs=\"1\" md=\"1\">\n <Label htmlFor=\"select\">Debug</Label>\n </Col>\n\n <Col xs=\"6\" md=\"6\">\n <Input\n type=\"text\"\n name=\"debug\"\n onChange={this.handleDebug}\n value={this.props.log.debugEnabled}\n />\n <FormText color=\"muted\" style={{ marginBottom: '15px' }}>\n Enter the appropriate debug keys to enable debug logging.\n Multiple entries should be separated by a comma. For\n example: <code>signalk-server*,signalk-provider-tcp</code>\n . You can also activate individual debug keys on the\n right.\n </FormText>\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n id=\"Enabled\"\n name=\"debug\"\n className=\"switch-input\"\n onChange={this.handleRememberDebug}\n checked={this.props.log.rememberDebug}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n />\n <span className=\"switch-handle\" />\n </Label>{' '}\n Remember debug setting\n </Col>\n\n <Col xs=\"5\" md=\"5\">\n <div\n style={{\n overflow: 'scroll',\n maxHeight: '30vh',\n borderStyle: 'solid',\n borderWidth: '0.5px',\n borderColor: 'lightgray',\n padding: '8px',\n }}\n >\n {this.state.debugKeys.map((key, i) => (\n <div key={i}>\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n id={key}\n name={key}\n className=\"switch-input\"\n onChange={(e) => {\n this.handleDebugCheckbox(\n key,\n activeDebugKeys.indexOf(key) === -1\n )\n }}\n checked={activeDebugKeys.indexOf(key) >= 0}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n />\n <span className=\"switch-handle\" />\n </Label>{' '}\n {key}\n </div>\n ))}\n </div>\n </Col>\n </FormGroup>\n\n <div>\n Pause the log window\n <Label className=\"switch switch-text switch-primary\">\n <Input\n type=\"checkbox\"\n id=\"Pause\"\n name=\"pause\"\n className=\"switch-input\"\n onChange={this.handlePause}\n checked={this.state.pause}\n />\n <span\n className=\"switch-label\"\n data-on=\"Yes\"\n data-off=\"No\"\n />\n <span className=\"switch-handle\" />\n </Label>\n </div>\n\n <LogList value={this.props.log} />\n </Form>\n </CardBody>\n </Card>\n </div>\n )\n )\n }\n}\n\nclass LogList extends Component {\n componentDidMount() {\n this.end.scrollIntoView()\n }\n\n render() {\n return (\n <div\n style={{\n overflowY: 'scroll',\n maxHeight: '60vh',\n border: '1px solid',\n padding: '5px',\n fontFamily: 'monospace',\n }}\n >\n {this.props.value.entries &&\n this.props.value.entries.map((logEntry, index) => {\n return <PureLogRow key={logEntry.i} log={logEntry.d} />\n })}\n <div\n ref={(el) => {\n this.end = el\n }}\n >\n \n </div>\n </div>\n )\n }\n}\n\nclass PureLogRow extends React.PureComponent {\n render() {\n return (\n <span>\n {ReactHtmlParser(this.props.log)}\n <br />\n </span>\n )\n }\n}\n\nexport default connect(({ log, webSocket }) => ({ log, webSocket }))(ServerLogs)\n","import React, { Component } from 'react'\nimport { Alert, Button, Card, CardHeader, CardBody } from 'reactstrap'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\n\nclass ServerUpdate extends Component {\n constructor(props) {\n super(props)\n this.state = {\n chanelog: null,\n }\n\n this.handleUpdate = this.handleUpdate.bind(this)\n this.fetchChangelog = this.fetchChangelog.bind(this)\n this.fetchChangelog()\n }\n\n fetchChangelog(version) {\n fetch(\n `https://raw.githubusercontent.com/SignalK/signalk-server-node/master/CHANGELOG.md`\n )\n .then((response) => response.text())\n .then((data) => {\n this.setState({ changelog: data })\n })\n }\n\n handleUpdate() {\n console.log('handleUpdate')\n if (confirm(`Are you sure you want to update the server?'`)) {\n this.props.history.push('/appstore/updates')\n fetch(\n `${window.serverRoutesPrefix}/appstore/install/signalk-server/${this.props.appStore.serverUpdate}`,\n {\n method: 'POST',\n credentials: 'include',\n }\n ).then(() => {\n this.history.pushState(null, 'appstore/updates')\n })\n }\n }\n\n render() {\n if (!this.props.appStore.storeAvailable) {\n return (\n <div className=\"animated fadeIn\">\n <Card>\n <CardHeader>Waiting for App store data to load...</CardHeader>\n </Card>\n </div>\n )\n }\n let isInstalling = false\n let isInstalled = false\n let info = this.props.appStore.installing.find(\n (p) => p.name == 'signalk-server'\n )\n if (info) {\n if (info.isWaiting || info.isInstalling) {\n isInstalling = true\n } else {\n isInstalled = true\n }\n }\n return (\n <div className=\"animated fadeIn\">\n {!this.props.appStore.canUpdateServer && (\n <Card className=\"border-warning\">\n <CardHeader>Server Update</CardHeader>\n <CardBody>\n This installation is not updatable from the admin user interface.\n </CardBody>\n </Card>\n )}\n {this.props.appStore.isInDocker && (\n <Card className=\"border-warning\">\n <CardHeader>Running as a Docker container</CardHeader>\n <CardBody>\n The server is running as a Docker container. You need to pull a\n new server version from{' '}\n <a href=\"https://hub.docker.com/r/signalk/signalk-server/tags\">\n Docker Hub\n </a>{' '}\n to update.\n </CardBody>\n </Card>\n )}\n {this.props.appStore.canUpdateServer &&\n this.props.appStore.serverUpdate &&\n !isInstalling &&\n !isInstalled && (\n <Card>\n <CardHeader>\n Server version {this.props.appStore.serverUpdate} is available\n </CardHeader>\n <CardBody>\n <a href=\"https://github.com/SignalK/signalk-server/releases/\">\n Release Notes for latest releases.\n </a>\n <br />\n <br />\n <Button\n className=\"btn btn-danger\"\n size=\"sm\"\n color=\"primary\"\n onClick={this.handleUpdate}\n >\n Update\n </Button>\n </CardBody>\n </Card>\n )}\n {isInstalling && (\n <Card>\n <CardHeader>Server Update</CardHeader>\n <CardBody>The update is being installed</CardBody>\n </Card>\n )}\n {isInstalled && (\n <Card>\n <CardHeader>Server Update</CardHeader>\n <CardBody>\n The update has been installed, please restart the Signal K server.\n </CardBody>\n </Card>\n )}\n {this.props.appStore.canUpdateServer &&\n !this.props.appStore.serverUpdate && (\n <Card>\n <CardHeader>Server Update</CardHeader>\n <CardBody>Your server is up to date.</CardBody>\n </Card>\n )}\n </div>\n )\n }\n}\n\nexport default connect(({ appStore }) => ({ appStore }))(\n withRouter(ServerUpdate)\n)\n","import React, { Component } from 'react'\nimport { Switch, Route, Redirect, withRouter, History } from 'react-router-dom'\nimport { Container } from 'reactstrap'\nimport { connect } from 'react-redux'\n\nimport Header from '../../components/Header/Header'\nimport Sidebar from '../../components/Sidebar/Sidebar'\nimport Aside from '../../components/Aside/Aside'\nimport Footer from '../../components/Footer/Footer'\n\nimport Dashboard from '../../views/Dashboard/Dashboard'\nimport Embedded from '../../views/Webapps/Embedded'\nimport Webapps from '../../views/Webapps/Webapps'\nimport DataBrowser from '../../views/DataBrowser'\nimport Playground from '../../views/Playground'\nimport Apps from '../../views/appstore/Apps/Apps'\nimport Configuration from '../../views/Configuration/Configuration'\nimport Login from '../../views/security/Login'\nimport SecuritySettings from '../../views/security/Settings'\nimport Users from '../../views/security/Users'\nimport Devices from '../../views/security/Devices'\nimport Register from '../../views/security/Register'\nimport AccessRequests from '../../views/security/AccessRequests'\nimport VesselConfiguration from '../../views/ServerConfig/VesselConfiguration'\nimport ProvidersConfiguration from '../../views/ServerConfig/ProvidersConfiguration'\nimport Settings from '../../views/ServerConfig/Settings'\nimport BackupRestore from '../../views/ServerConfig/BackupRestore'\nimport Logging from '../../views/ServerConfig/Logging'\nimport ServerLog from '../../views/ServerConfig/ServerLog'\nimport ServerUpdate from '../../views/ServerConfig/ServerUpdate'\n\nimport {\n fetchLoginStatus,\n fetchAllData,\n openServerEventsConnection,\n} from '../../actions'\n\nclass Full extends Component {\n componentDidMount() {\n const { dispatch } = this.props\n fetchAllData(dispatch)\n openServerEventsConnection(dispatch)\n }\n\n render() {\n const suppressPadding =\n this.props.location.pathname.indexOf('/e/') === 0\n ? { padding: '0px' }\n : {}\n return (\n <div className=\"app\">\n <Header />\n <div className=\"app-body\">\n <Sidebar {...this.props} />\n <main className=\"main\">\n <Container fluid style={suppressPadding}>\n <Switch>\n <Route\n path=\"/dashboard\"\n name=\"Dashboard\"\n component={loginOrOriginal(Dashboard, true)}\n />\n <Route\n path=\"/webapps\"\n name=\"Webapps\"\n component={loginOrOriginal(Webapps, true)}\n />\n <Route\n path=\"/e/:moduleId\"\n name=\"Embedded Webapps\"\n component={loginOrOriginal(Embedded, true)}\n />\n <Route\n path=\"/databrowser\"\n name=\"DataBrowser\"\n component={loginOrOriginal(DataBrowser, true)}\n />\n <Route\n path=\"/serverConfiguration/datafiddler\"\n name=\"DataFiddler\"\n component={loginOrOriginal(Playground, true)}\n />\n <Route\n path=\"/appstore/:view\"\n component={loginOrOriginal(Apps)}\n />\n <Route\n path=\"/serverConfiguration/plugins/:pluginid\"\n component={loginOrOriginal(Configuration)}\n />\n <Route\n path=\"/serverConfiguration/settings\"\n component={loginOrOriginal(Settings)}\n />\n <Route\n path=\"/serverConfiguration/backuprestore\"\n component={loginOrOriginal(BackupRestore)}\n />\n <Route\n path=\"/serverConfiguration/connections/:providerId\"\n component={loginOrOriginal(ProvidersConfiguration)}\n />\n <Route\n path=\"/serverConfiguration/log\"\n component={loginOrOriginal(ServerLog)}\n />\n <Route\n path=\"/serverConfiguration/update\"\n component={loginOrOriginal(ServerUpdate)}\n />\n <Route\n path=\"/security/settings\"\n component={loginOrOriginal(SecuritySettings)}\n />\n <Route\n path=\"/security/users\"\n component={loginOrOriginal(Users)}\n />\n <Route\n path=\"/security/devices\"\n component={loginOrOriginal(Devices)}\n />\n <Route\n path=\"/security/access/requests\"\n component={loginOrOriginal(AccessRequests)}\n />\n <Route path=\"/login\" component={Login} />\n <Route path=\"/register\" component={Register} />\n <Redirect from=\"/\" to=\"/dashboard\" />\n </Switch>\n </Container>\n </main>\n <Aside />\n </div>\n <Footer />\n </div>\n )\n }\n}\n\nexport default connect()(Full)\n\nconst loginOrOriginal = (BaseComponent, componentSupportsReadOnly) => {\n class Restricted extends Component {\n constructor(props) {\n super(props)\n this.state = { hasError: false }\n }\n\n static getDerivedStateFromError(error) {\n return { hasError: true }\n }\n\n render() {\n if (loginRequired(this.props.loginStatus, componentSupportsReadOnly)) {\n return <Login />\n } else if (this.state.hasError) {\n return <span>Something went wrong.</span>\n } else {\n return <BaseComponent {...this.props} />\n }\n }\n }\n return connect(({ loginStatus }) => ({ loginStatus }))(withRouter(Restricted))\n}\n\nfunction loginRequired(loginStatus, componentSupportsReadOnly) {\n // component works with read only access and\n // server loginStatus allows read only access\n if (componentSupportsReadOnly && loginStatus.readOnlyAccess) {\n return false\n }\n\n // require login when server requires authentication AND\n // user is not logged\n return (\n loginStatus.authenticationRequired && loginStatus.status === 'notLoggedIn'\n )\n}\n","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport { HashRouter, Route, Switch } from 'react-router-dom'\nimport { Provider } from 'react-redux'\nimport { createStore, applyMiddleware } from 'redux'\nimport thunk from 'redux-thunk'\n\n// Styles\n// Import Font Awesome Icons Set\nimport 'font-awesome/css/font-awesome.min.css'\nimport '@fortawesome/fontawesome-free/css/all.min.css'\n// Import Simple Line Icons Set\nimport 'simple-line-icons/css/simple-line-icons.css'\n// Import Main styles for this application\nimport '../scss/style.scss'\n// Temp fix for reactstrap\nimport '../scss/core/_dropdown-menu-right.scss'\n\n// Containers\nimport Full from './containers/Full/Full'\n\nimport { openServerEventsConnection } from './actions'\n\nimport { reduceSourcePriorities } from './views/ServerConfig/SourcePriorities'\n\nimport escape from 'escape-html'\nimport Convert from 'ansi-to-html'\n\nconst convert = new Convert()\nconst entries = []\n\nlet logEntryCount = 0\n\nfor (let i = 0; i < 100; i++) {\n entries[i] = {\n i: logEntryCount++,\n d: '',\n }\n}\n\nconst state = {\n plugins: [],\n webapps: [],\n addons: [],\n appStore: {\n updates: [],\n installed: [],\n available: [],\n installing: [],\n },\n loginStatus: {},\n serverSpecification: {},\n websocketStatus: 'initial',\n webSocket: null,\n restarting: false,\n accessRequests: [],\n discoveredProviders: [],\n log: {\n entries,\n debugEnabled: '',\n rememberDebug: false,\n },\n restoreStatus: {},\n vesselInfo: {},\n sourcePrioritiesData: {\n sourcePriorities: [],\n saveState: {\n dirty: false,\n timeoutsOk: true,\n },\n },\n}\n\nlet store = createStore(\n (state, action) => {\n let newState = {}\n if (action.type === 'RECEIVE_PLUGIN_LIST') {\n return {\n ...state,\n plugins: action.data,\n }\n }\n if (action.type === 'RECEIVE_WEBAPPS_LIST') {\n return {\n ...state,\n webapps: action.data,\n }\n }\n if (action.type === 'RECEIVE_ADDONS_LIST') {\n return {\n ...state,\n addons: action.data,\n }\n }\n if (\n action.type === 'RECEIVE_APPSTORE_LIST' ||\n action.type === 'APP_STORE_CHANGED'\n ) {\n var apps = action.data\n\n apps.installing.sort(nameCollator)\n apps.available.sort(nameCollator)\n apps.installed.sort(nameCollator)\n apps.updates.sort(nameCollator)\n\n return {\n ...state,\n appStore: apps,\n }\n }\n if (action.type === 'SERVERSTATISTICS') {\n return {\n ...state,\n serverStatistics: action.data,\n }\n }\n if (action.type === 'PROVIDERSTATUS') {\n action.data.sort((l, r) => {\n return l.id > r.id\n })\n return {\n ...state,\n providerStatus: action.data,\n }\n }\n if (action.type === 'RECEIVE_LOGIN_STATUS') {\n return {\n ...state,\n loginStatus: action.data,\n }\n }\n if (action.type === 'RECEIVE_SERVER_SPEC') {\n return {\n ...state,\n serverSpecification: action.data,\n }\n }\n if (action.type === 'WEBSOCKET_CONNECTED') {\n return {\n ...state,\n websocketStatus: 'connected',\n }\n }\n if (action.type === 'WEBSOCKET_OPEN') {\n if (state.webSocketTimer) {\n clearInterval(state.webSocketTimer)\n delete state.webSocketTimer\n }\n if (state.restarting) {\n state.restarting = false\n }\n return {\n ...state,\n websocketStatus: 'open',\n webSocket: action.data,\n }\n }\n if (action.type === 'VESSEL_INFO') {\n if (action.data.name) {\n document.title = action.data.name\n }\n return {\n ...state,\n vesselInfo: action.data,\n }\n }\n if (action.type === 'WEBSOCKET_ERROR') {\n return {\n ...state,\n websocketStatus: 'error',\n }\n }\n if (action.type === 'WEBSOCKET_CLOSE') {\n if (!state.webSocketTimer) {\n state.webSocketTimer = setInterval(() => {\n console.log(`retry...`)\n openServerEventsConnection(store.dispatch, true)\n }, 5 * 1000)\n }\n return {\n ...state,\n websocketStatus: 'closed',\n webSocket: null,\n }\n }\n if (action.type === 'LOGIN_SUCCESS') {\n if (state.webSocket) {\n // since we're closing manually, don't let the reconnect timer start\n state.webSocket.onclose = undefined\n state.webSocket.close()\n }\n openServerEventsConnection(store.dispatch)\n return state\n }\n if (action.type === 'SERVER_RESTART') {\n return {\n ...state,\n restarting: true,\n }\n }\n if (action.data === 'SERVER_UP') {\n return {\n ...state,\n restarting: false,\n }\n }\n if (action.type === 'LOGOUT_REQUESTED') {\n if (state.webSocket) {\n state.webSocket.close()\n }\n }\n if (action.type === 'ACCESS_REQUEST') {\n return {\n ...state,\n accessRequests: action.data,\n }\n }\n if (action.type === 'DISCOVERY_CHANGED') {\n return {\n ...state,\n discoveredProviders: action.data,\n }\n }\n if (action.type === 'DEBUG_SETTINGS') {\n return {\n ...state,\n log: { ...state.log, ...action.data },\n }\n }\n if (action.type === 'LOG') {\n const style = action.data.isError ? 'color:red' : 'font-weight:lighter'\n const html =\n `<span style=\"${style}\">` +\n action.data.ts +\n '</span> ' +\n convert.toHtml(escape(action.data.row))\n state.log.entries.push({\n i: logEntryCount++,\n d: html,\n })\n if (state.log.entries.length > 100) {\n state.log.entries.shift()\n }\n return {\n ...state,\n log: {\n ...state.log,\n entries: state.log.entries,\n },\n }\n }\n if (action.type === 'RESTORESTATUS') {\n return {\n ...state,\n restoreStatus: action.data,\n }\n }\n if (action.type === 'SOURCEPRIORITIES') {\n const sourcePrioritiesMap = action.data\n const sourcePriorities = Object.keys(sourcePrioritiesMap).map(\n (key, i) => ({ path: key, priorities: sourcePrioritiesMap[key] })\n )\n sourcePriorities.state = {}\n\n return {\n ...state,\n sourcePrioritiesData: {\n sourcePriorities,\n saveState: {\n dirty: false,\n timeoutsOk: true,\n },\n },\n }\n }\n return {\n ...state,\n sourcePrioritiesData: reduceSourcePriorities(\n state.sourcePrioritiesData,\n action\n ),\n }\n },\n state,\n applyMiddleware(thunk)\n)\n\nfunction nameCollator(left, right) {\n if (left.name < right.name) {\n return -1\n } else if (left.name > right.name) {\n return 1\n } else {\n return 0\n }\n}\n\nwindow.serverRoutesPrefix = '/skServer'\n\n__webpack_init_sharing__('default')\n\nReactDOM.render(\n <HashRouter>\n <Switch>\n <Provider store={store}>\n <Route path=\"/\" name=\"Home\" component={Full} />\n </Provider>\n </Switch>\n </HashRouter>,\n document.getElementById('root')\n)\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".app-header .navbar-nav .dropdown-menu-right{right:auto}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./scss/core/_dropdown-menu-right.scss\"],\"names\":[],\"mappings\":\"AACA,6CAGM,UAAW\",\"sourcesContent\":[\"// Temp fix for reactstrap\\n.app-header {\\n .navbar-nav {\\n .dropdown-menu-right {\\n right: auto;\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../node_modules/css-loader/dist/runtime/getUrl.js\";\nimport ___CSS_LOADER_URL_IMPORT_0___ from \"../public_src/img/signal-k-logo-image-text.svg\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*!\\n * CoreUI - Open Source Bootstrap Admin Template\\n * @version v1.0.6\\n * @link http://coreui.io\\n * Copyright (c) 2017 creativeLabs Łukasz Holeczek\\n * @license MIT\\n *//*!\\n * Bootstrap v4.6.1 (https://getbootstrap.com/)\\n * Copyright 2011-2021 The Bootstrap Authors\\n * Copyright 2011-2021 Twitter, Inc.\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\\n */:root{--blue: #039;--indigo: #6610f2;--purple: #6f42c1;--pink: #e83e8c;--red: #f86c6b;--orange: #f8cb00;--yellow: #fc0;--green: #4dbd74;--teal: #20c997;--cyan: #63c2de;--white: #fff;--gray: #536c79;--gray-dark: #29363d;--blue: #039;--indigo: #6610f2;--purple: #6f42c1;--pink: #e83e8c;--red: #f86c6b;--orange: #f8cb00;--#ff0: #fc0;--green: #4dbd74;--teal: #20c997;--cyan: #63c2de;--#fff: #fff;--gray: #536c79;--primary: #039;--secondary: #a4b7c1;--success: #4dbd74;--info: #63c2de;--warning: #fc0;--danger: #f86c6b;--light: #f0f3f5;--dark: #29363d;--breakpoint-xs: 0;--breakpoint-sm: 576px;--breakpoint-md: 768px;--breakpoint-lg: 992px;--breakpoint-xl: 1200px;--font-family-sans-serif: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, \\\"Helvetica Neue\\\", Arial, \\\"Noto Sans\\\", \\\"Liberation Sans\\\", sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\";--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace}*,*::before,*::after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,\\\"Helvetica Neue\\\",Arial,\\\"Noto Sans\\\",\\\"Liberation Sans\\\",sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"Noto Color Emoji\\\";font-size:.875rem;font-weight:400;line-height:1.5;color:#151b1e;text-align:left;background-color:#e4e5e6}[tabindex=\\\"-1\\\"]:focus:not(:focus-visible){outline:0 !important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-original-title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#039;text-decoration:none;background-color:transparent}a:hover{color:#001a4d;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#536c79;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=\\\"button\\\"]{cursor:pointer}select{word-wrap:normal}button,[type=\\\"button\\\"],[type=\\\"reset\\\"],[type=\\\"submit\\\"]{-webkit-appearance:button}button:not(:disabled),[type=\\\"button\\\"]:not(:disabled),[type=\\\"reset\\\"]:not(:disabled),[type=\\\"submit\\\"]:not(:disabled){cursor:pointer}button::-moz-focus-inner,[type=\\\"button\\\"]::-moz-focus-inner,[type=\\\"reset\\\"]::-moz-focus-inner,[type=\\\"submit\\\"]::-moz-focus-inner{padding:0;border-style:none}input[type=\\\"radio\\\"],input[type=\\\"checkbox\\\"]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=\\\"number\\\"]::-webkit-inner-spin-button,[type=\\\"number\\\"]::-webkit-outer-spin-button{height:auto}[type=\\\"search\\\"]{outline-offset:-2px;-webkit-appearance:none}[type=\\\"search\\\"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none !important}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}h1,.h1{font-size:2.1875rem}h2,.h2{font-size:1.75rem}h3,.h3{font-size:1.53125rem}h4,.h4{font-size:1.3125rem}h5,.h5{font-size:1.09375rem}h6,.h6{font-size:.875rem}.lead{font-size:1.09375rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,0.1)}small,.small{font-size:80%;font-weight:400}mark,.mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.09375rem}.blockquote-footer{display:block;font-size:80%;color:#536c79}.blockquote-footer::before{content:\\\"\\\\2014\\\\00A0\\\"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#e4e5e6;border:1px solid #a4b7c1;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#536c79}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#151b1e}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#151b1e}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-sm,.container-md,.container-lg,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width: 576px){.container,.container-sm{max-width:540px}}@media (min-width: 768px){.container,.container-sm,.container-md{max-width:720px}}@media (min-width: 992px){.container,.container-sm,.container-md,.container-lg{max-width:960px}}@media (min-width: 1200px){.container,.container-sm,.container-md,.container-lg,.container-xl{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=\\\"col-\\\"]{padding-right:0;padding-left:0}.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col,.col-auto,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm,.col-sm-auto,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md,.col-md-auto,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg,.col-lg-auto,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.33333%;max-width:8.33333%}.col-2{flex:0 0 16.66667%;max-width:16.66667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.33333%;max-width:33.33333%}.col-5{flex:0 0 41.66667%;max-width:41.66667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.33333%;max-width:58.33333%}.col-8{flex:0 0 66.66667%;max-width:66.66667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.33333%;max-width:83.33333%}.col-11{flex:0 0 91.66667%;max-width:91.66667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}@media (min-width: 576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.33333%;max-width:8.33333%}.col-sm-2{flex:0 0 16.66667%;max-width:16.66667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.33333%;max-width:33.33333%}.col-sm-5{flex:0 0 41.66667%;max-width:41.66667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.33333%;max-width:58.33333%}.col-sm-8{flex:0 0 66.66667%;max-width:66.66667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.33333%;max-width:83.33333%}.col-sm-11{flex:0 0 91.66667%;max-width:91.66667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}}@media (min-width: 768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.33333%;max-width:8.33333%}.col-md-2{flex:0 0 16.66667%;max-width:16.66667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.33333%;max-width:33.33333%}.col-md-5{flex:0 0 41.66667%;max-width:41.66667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.33333%;max-width:58.33333%}.col-md-8{flex:0 0 66.66667%;max-width:66.66667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.33333%;max-width:83.33333%}.col-md-11{flex:0 0 91.66667%;max-width:91.66667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}}@media (min-width: 992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.33333%;max-width:8.33333%}.col-lg-2{flex:0 0 16.66667%;max-width:16.66667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.33333%;max-width:33.33333%}.col-lg-5{flex:0 0 41.66667%;max-width:41.66667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}.col-lg-8{flex:0 0 66.66667%;max-width:66.66667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.33333%;max-width:83.33333%}.col-lg-11{flex:0 0 91.66667%;max-width:91.66667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}}@media (min-width: 1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.33333%;max-width:8.33333%}.col-xl-2{flex:0 0 16.66667%;max-width:16.66667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.33333%;max-width:33.33333%}.col-xl-5{flex:0 0 41.66667%;max-width:41.66667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.33333%;max-width:58.33333%}.col-xl-8{flex:0 0 66.66667%;max-width:66.66667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.33333%;max-width:83.33333%}.col-xl-11{flex:0 0 91.66667%;max-width:91.66667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}}.table{width:100%;margin-bottom:1rem;color:#151b1e}.table th,.table td{padding:.75rem;vertical-align:top;border-top:1px solid #a4b7c1}.table thead th{vertical-align:bottom;border-bottom:2px solid #a4b7c1}.table tbody+tbody{border-top:2px solid #a4b7c1}.table-sm th,.table-sm td{padding:.3rem}.table-bordered{border:1px solid #a4b7c1}.table-bordered th,.table-bordered td{border:1px solid #a4b7c1}.table-bordered thead th,.table-bordered thead td{border-bottom-width:2px}.table-borderless th,.table-borderless td,.table-borderless thead th,.table-borderless tbody+tbody{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,0.05)}.table-hover tbody tr:hover{color:#151b1e;background-color:rgba(0,0,0,0.075)}.table-primary,.table-primary>th,.table-primary>td{background-color:#b8c6e2}.table-primary th,.table-primary td,.table-primary thead th,.table-primary tbody+tbody{border-color:#7a95ca}.table-hover .table-primary:hover{background-color:#a6b7db}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#a6b7db}.table-secondary,.table-secondary>th,.table-secondary>td{background-color:#e6ebee}.table-secondary th,.table-secondary td,.table-secondary thead th,.table-secondary tbody+tbody{border-color:#d0dadf}.table-hover .table-secondary:hover{background-color:#d7dfe4}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#d7dfe4}.table-success,.table-success>th,.table-success>td{background-color:#cdedd8}.table-success th,.table-success td,.table-success thead th,.table-success tbody+tbody{border-color:#a2ddb7}.table-hover .table-success:hover{background-color:#bae6c9}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#bae6c9}.table-info,.table-info>th,.table-info>td{background-color:#d3eef6}.table-info th,.table-info td,.table-info thead th,.table-info tbody+tbody{border-color:#aedfee}.table-hover .table-info:hover{background-color:#bee6f2}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#bee6f2}.table-warning,.table-warning>th,.table-warning>td{background-color:#fff1b8}.table-warning th,.table-warning td,.table-warning thead th,.table-warning tbody+tbody{border-color:#ffe47a}.table-hover .table-warning:hover{background-color:#ffec9f}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffec9f}.table-danger,.table-danger>th,.table-danger>td{background-color:#fdd6d6}.table-danger th,.table-danger td,.table-danger thead th,.table-danger tbody+tbody{border-color:#fbb3b2}.table-hover .table-danger:hover{background-color:#fcbebe}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#fcbebe}.table-light,.table-light>th,.table-light>td{background-color:#fbfcfc}.table-light th,.table-light td,.table-light thead th,.table-light tbody+tbody{border-color:#f7f9fa}.table-hover .table-light:hover{background-color:#ecf1f1}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ecf1f1}.table-dark,.table-dark>th,.table-dark>td{background-color:#c3c7c9}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{border-color:#90969a}.table-hover .table-dark:hover{background-color:#b6babd}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b6babd}.table-active,.table-active>th,.table-active>td{background-color:rgba(0,0,0,0.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,0.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,0.075)}.table .thead-dark th{color:#fff;background-color:#29363d;border-color:#384a54}.table .thead-light th{color:#3e515b;background-color:#c2cfd6;border-color:#a4b7c1}.table-dark{color:#fff;background-color:#29363d}.table-dark th,.table-dark td,.table-dark thead th{border-color:#384a54}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,0.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,0.075)}@media (max-width: 575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width: 767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width: 991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width: 1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:.875rem;font-weight:400;line-height:1.5;color:#3e515b;background-color:#fff;background-clip:padding-box;border:1px solid #c2cfd6;border-radius:0;transition:border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#3e515b;background-color:#fff;border-color:#1a66ff;outline:0;box-shadow:0 0 0 .2rem rgba(0,51,153,0.25)}.form-control::placeholder{color:#536c79;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#c2cfd6;opacity:1}input[type=\\\"date\\\"].form-control,input[type=\\\"time\\\"].form-control,input[type=\\\"datetime-local\\\"].form-control,input[type=\\\"month\\\"].form-control{appearance:none}select.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #3e515b}select.form-control:focus::-ms-value{color:#3e515b;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.09375rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.76563rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:.875rem;line-height:1.5;color:#151b1e;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.76563rem;line-height:1.5}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.09375rem;line-height:1.5}select.form-control[size],select.form-control[multiple]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=\\\"col-\\\"]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input[disabled] ~ .form-check-label,.form-check-input:disabled ~ .form-check-label{color:#536c79}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#4dbd74}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.76563rem;line-height:1.5;color:#fff;background-color:rgba(77,189,116,0.9)}.form-row>.col>.valid-tooltip,.form-row>[class*=\\\"col-\\\"]>.valid-tooltip{left:5px}.was-validated :valid ~ .valid-feedback,.was-validated :valid ~ .valid-tooltip,.is-valid ~ .valid-feedback,.is-valid ~ .valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#4dbd74;padding-right:calc(1.5em + .75rem) !important;background-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%234dbd74' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\\\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#4dbd74;box-shadow:0 0 0 .2rem rgba(77,189,116,0.25)}.was-validated select.form-control:valid,select.form-control.is-valid{padding-right:3rem !important;background-position:right 1.5rem center}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .custom-select:valid,.custom-select.is-valid{border-color:#4dbd74;padding-right:calc(.75em + 2.3125rem) !important;background:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%2329363d' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\\\") right .75rem center/8px 10px no-repeat,#fff url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%234dbd74' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\\\") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.was-validated .custom-select:valid:focus,.custom-select.is-valid:focus{border-color:#4dbd74;box-shadow:0 0 0 .2rem rgba(77,189,116,0.25)}.was-validated .form-check-input:valid ~ .form-check-label,.form-check-input.is-valid ~ .form-check-label{color:#4dbd74}.was-validated .form-check-input:valid ~ .valid-feedback,.was-validated .form-check-input:valid ~ .valid-tooltip,.form-check-input.is-valid ~ .valid-feedback,.form-check-input.is-valid ~ .valid-tooltip{display:block}.was-validated .custom-control-input:valid ~ .custom-control-label,.custom-control-input.is-valid ~ .custom-control-label{color:#4dbd74}.was-validated .custom-control-input:valid ~ .custom-control-label::before,.custom-control-input.is-valid ~ .custom-control-label::before{border-color:#4dbd74}.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before,.custom-control-input.is-valid:checked ~ .custom-control-label::before{border-color:#72cb91;background-color:#72cb91}.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before,.custom-control-input.is-valid:focus ~ .custom-control-label::before{box-shadow:0 0 0 .2rem rgba(77,189,116,0.25)}.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before,.custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before{border-color:#4dbd74}.was-validated .custom-file-input:valid ~ .custom-file-label,.custom-file-input.is-valid ~ .custom-file-label{border-color:#4dbd74}.was-validated .custom-file-input:valid:focus ~ .custom-file-label,.custom-file-input.is-valid:focus ~ .custom-file-label{border-color:#4dbd74;box-shadow:0 0 0 .2rem rgba(77,189,116,0.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#f86c6b}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.76563rem;line-height:1.5;color:#fff;background-color:rgba(248,108,107,0.9)}.form-row>.col>.invalid-tooltip,.form-row>[class*=\\\"col-\\\"]>.invalid-tooltip{left:5px}.was-validated :invalid ~ .invalid-feedback,.was-validated :invalid ~ .invalid-tooltip,.is-invalid ~ .invalid-feedback,.is-invalid ~ .invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#f86c6b;padding-right:calc(1.5em + .75rem) !important;background-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23f86c6b' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23f86c6b' stroke='none'/%3e%3c/svg%3e\\\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#f86c6b;box-shadow:0 0 0 .2rem rgba(248,108,107,0.25)}.was-validated select.form-control:invalid,select.form-control.is-invalid{padding-right:3rem !important;background-position:right 1.5rem center}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .custom-select:invalid,.custom-select.is-invalid{border-color:#f86c6b;padding-right:calc(.75em + 2.3125rem) !important;background:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%2329363d' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\\\") right .75rem center/8px 10px no-repeat,#fff url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23f86c6b' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23f86c6b' stroke='none'/%3e%3c/svg%3e\\\") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.was-validated .custom-select:invalid:focus,.custom-select.is-invalid:focus{border-color:#f86c6b;box-shadow:0 0 0 .2rem rgba(248,108,107,0.25)}.was-validated .form-check-input:invalid ~ .form-check-label,.form-check-input.is-invalid ~ .form-check-label{color:#f86c6b}.was-validated .form-check-input:invalid ~ .invalid-feedback,.was-validated .form-check-input:invalid ~ .invalid-tooltip,.form-check-input.is-invalid ~ .invalid-feedback,.form-check-input.is-invalid ~ .invalid-tooltip{display:block}.was-validated .custom-control-input:invalid ~ .custom-control-label,.custom-control-input.is-invalid ~ .custom-control-label{color:#f86c6b}.was-validated .custom-control-input:invalid ~ .custom-control-label::before,.custom-control-input.is-invalid ~ .custom-control-label::before{border-color:#f86c6b}.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before,.custom-control-input.is-invalid:checked ~ .custom-control-label::before{border-color:#fa9c9c;background-color:#fa9c9c}.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before,.custom-control-input.is-invalid:focus ~ .custom-control-label::before{box-shadow:0 0 0 .2rem rgba(248,108,107,0.25)}.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before,.custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before{border-color:#f86c6b}.was-validated .custom-file-input:invalid ~ .custom-file-label,.custom-file-input.is-invalid ~ .custom-file-label{border-color:#f86c6b}.was-validated .custom-file-input:invalid:focus ~ .custom-file-label,.custom-file-input.is-invalid:focus ~ .custom-file-label{border-color:#f86c6b;box-shadow:0 0 0 .2rem rgba(248,108,107,0.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width: 576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .input-group,.form-inline .custom-select{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#151b1e;text-align:center;vertical-align:middle;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:.875rem;line-height:1.5;border-radius:0;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:#151b1e;text-decoration:none}.btn:focus,.btn.focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,51,153,0.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#039;border-color:#039}.btn-primary:hover{color:#fff;background-color:#002673;border-color:#026}.btn-primary:focus,.btn-primary.focus{color:#fff;background-color:#002673;border-color:#026;box-shadow:0 0 0 .2rem rgba(38,82,168,0.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#039;border-color:#039}.btn-primary:not(:disabled):not(.disabled):active,.btn-primary:not(:disabled):not(.disabled).active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#026;border-color:#001e59}.btn-primary:not(:disabled):not(.disabled):active:focus,.btn-primary:not(:disabled):not(.disabled).active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,82,168,0.5)}.btn-secondary{color:#151b1e;background-color:#a4b7c1;border-color:#a4b7c1}.btn-secondary:hover{color:#151b1e;background-color:#8da5b2;border-color:#869fac}.btn-secondary:focus,.btn-secondary.focus{color:#151b1e;background-color:#8da5b2;border-color:#869fac;box-shadow:0 0 0 .2rem rgba(143,160,169,0.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#151b1e;background-color:#a4b7c1;border-color:#a4b7c1}.btn-secondary:not(:disabled):not(.disabled):active,.btn-secondary:not(:disabled):not(.disabled).active,.show>.btn-secondary.dropdown-toggle{color:#151b1e;background-color:#869fac;border-color:#7e99a7}.btn-secondary:not(:disabled):not(.disabled):active:focus,.btn-secondary:not(:disabled):not(.disabled).active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(143,160,169,0.5)}.btn-success{color:#fff;background-color:#4dbd74;border-color:#4dbd74}.btn-success:hover{color:#fff;background-color:#3ea662;border-color:#3a9d5d}.btn-success:focus,.btn-success.focus{color:#fff;background-color:#3ea662;border-color:#3a9d5d;box-shadow:0 0 0 .2rem rgba(104,199,137,0.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#4dbd74;border-color:#4dbd74}.btn-success:not(:disabled):not(.disabled):active,.btn-success:not(:disabled):not(.disabled).active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#3a9d5d;border-color:#379457}.btn-success:not(:disabled):not(.disabled):active:focus,.btn-success:not(:disabled):not(.disabled).active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(104,199,137,0.5)}.btn-info{color:#151b1e;background-color:#63c2de;border-color:#63c2de}.btn-info:hover{color:#151b1e;background-color:#43b6d7;border-color:#39b2d5}.btn-info:focus,.btn-info.focus{color:#151b1e;background-color:#43b6d7;border-color:#39b2d5;box-shadow:0 0 0 .2rem rgba(87,169,193,0.5)}.btn-info.disabled,.btn-info:disabled{color:#151b1e;background-color:#63c2de;border-color:#63c2de}.btn-info:not(:disabled):not(.disabled):active,.btn-info:not(:disabled):not(.disabled).active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#39b2d5;border-color:#2eadd3}.btn-info:not(:disabled):not(.disabled):active:focus,.btn-info:not(:disabled):not(.disabled).active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(87,169,193,0.5)}.btn-warning{color:#151b1e;background-color:#fc0;border-color:#fc0}.btn-warning:hover{color:#151b1e;background-color:#d9ad00;border-color:#cca300}.btn-warning:focus,.btn-warning.focus{color:#151b1e;background-color:#d9ad00;border-color:#cca300;box-shadow:0 0 0 .2rem rgba(220,177,5,0.5)}.btn-warning.disabled,.btn-warning:disabled{color:#151b1e;background-color:#fc0;border-color:#fc0}.btn-warning:not(:disabled):not(.disabled):active,.btn-warning:not(:disabled):not(.disabled).active,.show>.btn-warning.dropdown-toggle{color:#151b1e;background-color:#cca300;border-color:#bf9900}.btn-warning:not(:disabled):not(.disabled):active:focus,.btn-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,177,5,0.5)}.btn-danger{color:#fff;background-color:#f86c6b;border-color:#f86c6b}.btn-danger:hover{color:#fff;background-color:#f64846;border-color:#f63c3a}.btn-danger:focus,.btn-danger.focus{color:#fff;background-color:#f64846;border-color:#f63c3a;box-shadow:0 0 0 .2rem rgba(249,130,129,0.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#f86c6b;border-color:#f86c6b}.btn-danger:not(:disabled):not(.disabled):active,.btn-danger:not(:disabled):not(.disabled).active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#f63c3a;border-color:#f5302e}.btn-danger:not(:disabled):not(.disabled):active:focus,.btn-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(249,130,129,0.5)}.btn-light{color:#151b1e;background-color:#f0f3f5;border-color:#f0f3f5}.btn-light:hover{color:#151b1e;background-color:#d9e1e6;border-color:#d1dbe1}.btn-light:focus,.btn-light.focus{color:#151b1e;background-color:#d9e1e6;border-color:#d1dbe1;box-shadow:0 0 0 .2rem rgba(207,211,213,0.5)}.btn-light.disabled,.btn-light:disabled{color:#151b1e;background-color:#f0f3f5;border-color:#f0f3f5}.btn-light:not(:disabled):not(.disabled):active,.btn-light:not(:disabled):not(.disabled).active,.show>.btn-light.dropdown-toggle{color:#151b1e;background-color:#d1dbe1;border-color:#cad4dc}.btn-light:not(:disabled):not(.disabled):active:focus,.btn-light:not(:disabled):not(.disabled).active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(207,211,213,0.5)}.btn-dark{color:#fff;background-color:#29363d;border-color:#29363d}.btn-dark:hover{color:#fff;background-color:#1a2226;border-color:#151b1f}.btn-dark:focus,.btn-dark.focus{color:#fff;background-color:#1a2226;border-color:#151b1f;box-shadow:0 0 0 .2rem rgba(73,84,90,0.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#29363d;border-color:#29363d}.btn-dark:not(:disabled):not(.disabled):active,.btn-dark:not(:disabled):not(.disabled).active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#151b1f;border-color:#0f1417}.btn-dark:not(:disabled):not(.disabled):active:focus,.btn-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(73,84,90,0.5)}.btn-outline-primary{color:#039;border-color:#039}.btn-outline-primary:hover{color:#fff;background-color:#039;border-color:#039}.btn-outline-primary:focus,.btn-outline-primary.focus{box-shadow:0 0 0 .2rem rgba(0,51,153,0.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#039;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled):active,.btn-outline-primary:not(:disabled):not(.disabled).active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#039;border-color:#039}.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,51,153,0.5)}.btn-outline-secondary{color:#a4b7c1;border-color:#a4b7c1}.btn-outline-secondary:hover{color:#151b1e;background-color:#a4b7c1;border-color:#a4b7c1}.btn-outline-secondary:focus,.btn-outline-secondary.focus{box-shadow:0 0 0 .2rem rgba(164,183,193,0.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#a4b7c1;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled):active,.btn-outline-secondary:not(:disabled):not(.disabled).active,.show>.btn-outline-secondary.dropdown-toggle{color:#151b1e;background-color:#a4b7c1;border-color:#a4b7c1}.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(164,183,193,0.5)}.btn-outline-success{color:#4dbd74;border-color:#4dbd74}.btn-outline-success:hover{color:#fff;background-color:#4dbd74;border-color:#4dbd74}.btn-outline-success:focus,.btn-outline-success.focus{box-shadow:0 0 0 .2rem rgba(77,189,116,0.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#4dbd74;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled):active,.btn-outline-success:not(:disabled):not(.disabled).active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#4dbd74;border-color:#4dbd74}.btn-outline-success:not(:disabled):not(.disabled):active:focus,.btn-outline-success:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(77,189,116,0.5)}.btn-outline-info{color:#63c2de;border-color:#63c2de}.btn-outline-info:hover{color:#151b1e;background-color:#63c2de;border-color:#63c2de}.btn-outline-info:focus,.btn-outline-info.focus{box-shadow:0 0 0 .2rem rgba(99,194,222,0.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#63c2de;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled):active,.btn-outline-info:not(:disabled):not(.disabled).active,.show>.btn-outline-info.dropdown-toggle{color:#151b1e;background-color:#63c2de;border-color:#63c2de}.btn-outline-info:not(:disabled):not(.disabled):active:focus,.btn-outline-info:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(99,194,222,0.5)}.btn-outline-warning{color:#fc0;border-color:#fc0}.btn-outline-warning:hover{color:#151b1e;background-color:#fc0;border-color:#fc0}.btn-outline-warning:focus,.btn-outline-warning.focus{box-shadow:0 0 0 .2rem rgba(255,204,0,0.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#fc0;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled):active,.btn-outline-warning:not(:disabled):not(.disabled).active,.show>.btn-outline-warning.dropdown-toggle{color:#151b1e;background-color:#fc0;border-color:#fc0}.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,204,0,0.5)}.btn-outline-danger{color:#f86c6b;border-color:#f86c6b}.btn-outline-danger:hover{color:#fff;background-color:#f86c6b;border-color:#f86c6b}.btn-outline-danger:focus,.btn-outline-danger.focus{box-shadow:0 0 0 .2rem rgba(248,108,107,0.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#f86c6b;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled):active,.btn-outline-danger:not(:disabled):not(.disabled).active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#f86c6b;border-color:#f86c6b}.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,108,107,0.5)}.btn-outline-light{color:#f0f3f5;border-color:#f0f3f5}.btn-outline-light:hover{color:#151b1e;background-color:#f0f3f5;border-color:#f0f3f5}.btn-outline-light:focus,.btn-outline-light.focus{box-shadow:0 0 0 .2rem rgba(240,243,245,0.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f0f3f5;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled):active,.btn-outline-light:not(:disabled):not(.disabled).active,.show>.btn-outline-light.dropdown-toggle{color:#151b1e;background-color:#f0f3f5;border-color:#f0f3f5}.btn-outline-light:not(:disabled):not(.disabled):active:focus,.btn-outline-light:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(240,243,245,0.5)}.btn-outline-dark{color:#29363d;border-color:#29363d}.btn-outline-dark:hover{color:#fff;background-color:#29363d;border-color:#29363d}.btn-outline-dark:focus,.btn-outline-dark.focus{box-shadow:0 0 0 .2rem rgba(41,54,61,0.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#29363d;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled):active,.btn-outline-dark:not(:disabled):not(.disabled).active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#29363d;border-color:#29363d}.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(41,54,61,0.5)}.btn-link{font-weight:400;color:#039;text-decoration:none}.btn-link:hover{color:#001a4d;text-decoration:underline}.btn-link:focus,.btn-link.focus{text-decoration:underline}.btn-link:disabled,.btn-link.disabled{color:#536c79;pointer-events:none}.btn-lg,.btn-group-lg>.btn{padding:.5rem 1rem;font-size:1.09375rem;line-height:1.5;border-radius:0}.btn-sm,.btn-group-sm>.btn{padding:.25rem .5rem;font-size:.76563rem;line-height:1.5;border-radius:0}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=\\\"submit\\\"].btn-block,input[type=\\\"reset\\\"].btn-block,input[type=\\\"button\\\"].btn-block{width:100%}.fade{transition:opacity 0.15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height 0.35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.dropup,.dropright,.dropdown,.dropleft{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:0 0;margin:.125rem 0 0;font-size:.875rem;color:#151b1e;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid #c2cfd6}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width: 576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width: 768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width: 992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width: 1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\"}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=\\\"top\\\"],.dropdown-menu[x-placement^=\\\"right\\\"],.dropdown-menu[x-placement^=\\\"bottom\\\"],.dropdown-menu[x-placement^=\\\"left\\\"]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #f0f3f5}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#151b1e;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:hover,.dropdown-item:focus{color:#0b0e0f;text-decoration:none;background-color:#c2cfd6}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#039}.dropdown-item.disabled,.dropdown-item:disabled{color:#678898;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:0 1.5rem;margin-bottom:0;font-size:.76563rem;color:#536c79;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#151b1e}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover{z-index:1}.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-left:-1px}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=\\\"radio\\\"],.btn-group-toggle>.btn input[type=\\\"checkbox\\\"],.btn-group-toggle>.btn-group>.btn input[type=\\\"radio\\\"],.btn-group-toggle>.btn-group>.btn input[type=\\\"checkbox\\\"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-control-plaintext,.input-group>.custom-select,.input-group>.custom-file{position:relative;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.form-control+.form-control,.input-group>.form-control+.custom-select,.input-group>.form-control+.custom-file,.input-group>.form-control-plaintext+.form-control,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.custom-file,.input-group>.custom-select+.form-control,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.custom-file,.input-group>.custom-file+.form-control,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.custom-file{margin-left:-1px}.input-group>.form-control:focus,.input-group>.custom-select:focus,.input-group>.custom-file .custom-file-input:focus ~ .custom-file-label{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-file{display:flex;align-items:center}.input-group-prepend,.input-group-append{display:flex}.input-group-prepend .btn,.input-group-append .btn{position:relative;z-index:2}.input-group-prepend .btn:focus,.input-group-append .btn:focus{z-index:3}.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.input-group-text,.input-group-append .input-group-text+.btn{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:.875rem;font-weight:400;line-height:1.5;color:#3e515b;text-align:center;white-space:nowrap;background-color:#f0f3f5;border:1px solid #c2cfd6}.input-group-text input[type=\\\"radio\\\"],.input-group-text input[type=\\\"checkbox\\\"]{margin-top:0}.input-group-lg>.form-control:not(textarea),.input-group-lg>.custom-select{height:calc(1.5em + 1rem + 2px)}.input-group-lg>.form-control,.input-group-lg>.custom-select,.input-group-lg>.input-group-prepend>.input-group-text,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-append>.btn{padding:.5rem 1rem;font-size:1.09375rem;line-height:1.5}.input-group-sm>.form-control:not(textarea),.input-group-sm>.custom-select{height:calc(1.5em + .5rem + 2px)}.input-group-sm>.form-control,.input-group-sm>.custom-select,.input-group-sm>.input-group-prepend>.input-group-text,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-append>.btn{padding:.25rem .5rem;font-size:.76563rem;line-height:1.5}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.custom-control{position:relative;z-index:1;display:block;min-height:1.3125rem;padding-left:1.5rem;color-adjust:exact}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.15625rem;opacity:0}.custom-control-input:checked ~ .custom-control-label::before{color:#fff;border-color:#039;background-color:#039}.custom-control-input:focus ~ .custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,51,153,0.25)}.custom-control-input:focus:not(:checked) ~ .custom-control-label::before{border-color:#1a66ff}.custom-control-input:not(:disabled):active ~ .custom-control-label::before{color:#fff;background-color:#4d88ff;border-color:#4d88ff}.custom-control-input[disabled] ~ .custom-control-label,.custom-control-input:disabled ~ .custom-control-label{color:#536c79}.custom-control-input[disabled] ~ .custom-control-label::before,.custom-control-input:disabled ~ .custom-control-label::before{background-color:#c2cfd6}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.15625rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:\\\"\\\";background-color:#fff;border:#678898 solid 1px}.custom-control-label::after{position:absolute;top:.15625rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\\\"\\\";background:50% / 50% 50% no-repeat}.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after{background-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\\\")}.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before{border-color:#039;background-color:#039}.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after{background-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\\\")}.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before{background-color:rgba(0,51,153,0.5)}.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before{background-color:rgba(0,51,153,0.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked ~ .custom-control-label::after{background-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\\\")}.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before{background-color:rgba(0,51,153,0.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.15625rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#678898;border-radius:.5rem;transition:transform 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked ~ .custom-control-label::after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before{background-color:rgba(0,51,153,0.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:.875rem;font-weight:400;line-height:1.5;color:#3e515b;vertical-align:middle;background:#fff url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%2329363d' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\\\") right .75rem center/8px 10px no-repeat;border:1px solid #c2cfd6;border-radius:0;appearance:none}.custom-select:focus{border-color:#1a66ff;outline:0;box-shadow:0 0 0 .2rem rgba(0,51,153,0.25)}.custom-select:focus::-ms-value{color:#3e515b;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\\\"1\\\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#536c79;background-color:#c2cfd6}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #3e515b}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.76563rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.09375rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;overflow:hidden;opacity:0}.custom-file-input:focus ~ .custom-file-label{border-color:#1a66ff;box-shadow:0 0 0 .2rem rgba(0,51,153,0.25)}.custom-file-input[disabled] ~ .custom-file-label,.custom-file-input:disabled ~ .custom-file-label{background-color:#c2cfd6}.custom-file-input:lang(en) ~ .custom-file-label::after{content:\\\"Browse\\\"}.custom-file-input ~ .custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;overflow:hidden;font-weight:400;line-height:1.5;color:#3e515b;background-color:#fff;border:1px solid #c2cfd6}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#3e515b;content:\\\"Browse\\\";background-color:#f0f3f5;border-left:inherit}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #e4e5e6,0 0 0 .2rem rgba(0,51,153,0.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #e4e5e6,0 0 0 .2rem rgba(0,51,153,0.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #e4e5e6,0 0 0 .2rem rgba(0,51,153,0.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#039;border:0;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#4d88ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#a4b7c1;border-color:transparent}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#039;border:0;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#4d88ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#a4b7c1;border-color:transparent}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#039;border:0;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#4d88ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#a4b7c1}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#a4b7c1}.custom-range:disabled::-webkit-slider-thumb{background-color:#678898}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#678898}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#678898}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link,.navbar .dropdown-toggle{display:block;padding:.5rem 1rem}.nav-link:hover,.navbar .dropdown-toggle:hover,.nav-link:focus,.navbar .dropdown-toggle:focus{text-decoration:none}.nav-link.disabled,.navbar .disabled.dropdown-toggle{color:#536c79;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #a4b7c1}.nav-tabs .nav-link,.nav-tabs .navbar .dropdown-toggle,.navbar .nav-tabs .dropdown-toggle{margin-bottom:-1px;border:1px solid transparent}.nav-tabs .nav-link:hover,.nav-tabs .navbar .dropdown-toggle:hover,.navbar .nav-tabs .dropdown-toggle:hover,.nav-tabs .nav-link:focus,.nav-tabs .navbar .dropdown-toggle:focus,.navbar .nav-tabs .dropdown-toggle:focus{border-color:#c2cfd6 #c2cfd6 #a4b7c1}.nav-tabs .nav-link.disabled,.nav-tabs .navbar .disabled.dropdown-toggle,.navbar .nav-tabs .disabled.dropdown-toggle{color:#536c79;background-color:transparent;border-color:transparent}.nav-tabs .nav-link.active,.nav-tabs .navbar .active.dropdown-toggle,.navbar .nav-tabs .active.dropdown-toggle,.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-item.show .navbar .dropdown-toggle,.navbar .nav-tabs .nav-item.show .dropdown-toggle{color:#3e515b;background-color:#e4e5e6;border-color:#a4b7c1 #a4b7c1 #e4e5e6}.nav-tabs .dropdown-menu{margin-top:-1px}.nav-pills .nav-link.active,.nav-pills .navbar .active.dropdown-toggle,.navbar .nav-pills .active.dropdown-toggle,.nav-pills .show>.nav-link,.nav-pills .navbar .show>.dropdown-toggle,.navbar .nav-pills .show>.dropdown-toggle{color:#fff;background-color:#039}.nav-fill>.nav-link,.navbar .nav-fill>.dropdown-toggle,.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.navbar .nav-justified>.dropdown-toggle,.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-sm,.navbar .container-md,.navbar .container-lg,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.33594rem;padding-bottom:.33594rem;margin-right:1rem;font-size:1.09375rem;line-height:inherit;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link,.navbar-nav .navbar .dropdown-toggle,.navbar .navbar-nav .dropdown-toggle{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.09375rem;line-height:1;background-color:transparent;border:1px solid transparent}.navbar-toggler:hover,.navbar-toggler:focus{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\\\"\\\";background:50% / 100% 100% no-repeat}.navbar-nav-scroll{max-height:75vh;overflow-y:auto}@media (max-width: 575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width: 576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link,.navbar-expand-sm .navbar-nav .navbar .dropdown-toggle,.navbar .navbar-expand-sm .navbar-nav .dropdown-toggle{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width: 767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-md,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width: 768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link,.navbar-expand-md .navbar-nav .navbar .dropdown-toggle,.navbar .navbar-expand-md .navbar-nav .dropdown-toggle{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-md,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width: 991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width: 992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link,.navbar-expand-lg .navbar-nav .navbar .dropdown-toggle,.navbar .navbar-expand-lg .navbar-nav .dropdown-toggle{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width: 1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width: 1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link,.navbar-expand-xl .navbar-nav .navbar .dropdown-toggle,.navbar .navbar-expand-xl .navbar-nav .dropdown-toggle{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-sm,.navbar-expand>.container-md,.navbar-expand>.container-lg,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link,.navbar-expand .navbar-nav .navbar .dropdown-toggle,.navbar .navbar-expand .navbar-nav .dropdown-toggle{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-sm,.navbar-expand>.container-md,.navbar-expand>.container-lg,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,0.9)}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:rgba(0,0,0,0.9)}.navbar-light .navbar-nav .nav-link,.navbar-light .navbar-nav .navbar .dropdown-toggle,.navbar .navbar-light .navbar-nav .dropdown-toggle{color:rgba(0,0,0,0.5)}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .navbar .dropdown-toggle:hover,.navbar .navbar-light .navbar-nav .dropdown-toggle:hover,.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .navbar .dropdown-toggle:focus,.navbar .navbar-light .navbar-nav .dropdown-toggle:focus{color:rgba(0,0,0,0.7)}.navbar-light .navbar-nav .nav-link.disabled,.navbar-light .navbar-nav .navbar .disabled.dropdown-toggle,.navbar .navbar-light .navbar-nav .disabled.dropdown-toggle{color:rgba(0,0,0,0.3)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .navbar .show>.dropdown-toggle,.navbar .navbar-light .navbar-nav .show>.dropdown-toggle,.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .navbar .active>.dropdown-toggle,.navbar .navbar-light .navbar-nav .active>.dropdown-toggle,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .navbar .show.dropdown-toggle,.navbar .navbar-light .navbar-nav .show.dropdown-toggle,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .navbar .active.dropdown-toggle,.navbar .navbar-light .navbar-nav .active.dropdown-toggle{color:rgba(0,0,0,0.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,0.5);border-color:rgba(0,0,0,0.1)}.navbar-light .navbar-toggler-icon{background-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280,0,0,0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\\\")}.navbar-light .navbar-text{color:rgba(0,0,0,0.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,0.9)}.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:rgba(0,0,0,0.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#fff}.navbar-dark .navbar-nav .nav-link,.navbar-dark .navbar-nav .navbar .dropdown-toggle,.navbar .navbar-dark .navbar-nav .dropdown-toggle{color:rgba(255,255,255,0.5)}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .navbar .dropdown-toggle:hover,.navbar .navbar-dark .navbar-nav .dropdown-toggle:hover,.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .navbar .dropdown-toggle:focus,.navbar .navbar-dark .navbar-nav .dropdown-toggle:focus{color:rgba(255,255,255,0.75)}.navbar-dark .navbar-nav .nav-link.disabled,.navbar-dark .navbar-nav .navbar .disabled.dropdown-toggle,.navbar .navbar-dark .navbar-nav .disabled.dropdown-toggle{color:rgba(255,255,255,0.25)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .navbar .show>.dropdown-toggle,.navbar .navbar-dark .navbar-nav .show>.dropdown-toggle,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .navbar .active>.dropdown-toggle,.navbar .navbar-dark .navbar-nav .active>.dropdown-toggle,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .navbar .show.dropdown-toggle,.navbar .navbar-dark .navbar-nav .show.dropdown-toggle,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .navbar .active.dropdown-toggle,.navbar .navbar-dark .navbar-nav .active.dropdown-toggle{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,0.5);border-color:rgba(255,255,255,0.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\\\")}.navbar-dark .navbar-text{color:rgba(255,255,255,0.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid #c2cfd6}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0}.card>.list-group:last-child{border-bottom-width:0}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body,.card-block{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:#f0f3f5;border-bottom:1px solid #c2cfd6}.card-footer{padding:.75rem 1.25rem;background-color:#f0f3f5;border-top:1px solid #c2cfd6}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-top,.card-img-bottom{flex-shrink:0;width:100%}.card-deck .card{margin-bottom:15px}@media (min-width: 576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width: 576px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0}.accordion>.card>.card-header{margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1.5rem;list-style:none;background-color:#fff}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#536c79;content:\\\"/\\\"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#536c79}.pagination{display:flex;padding-left:0;list-style:none}.page-link,.pagination-datatables li a,.pagination li a{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#039;background-color:#fff;border:1px solid #a4b7c1}.page-link:hover,.pagination-datatables li a:hover,.pagination li a:hover{z-index:2;color:#001a4d;text-decoration:none;background-color:#c2cfd6;border-color:#a4b7c1}.page-link:focus,.pagination-datatables li a:focus,.pagination li a:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,51,153,0.25)}.page-item:first-child .page-link,.pagination-datatables li:first-child .page-link,.pagination li:first-child .page-link,.page-item:first-child .pagination-datatables li a,.pagination-datatables li .page-item:first-child a,.pagination-datatables li:first-child a,.page-item:first-child .pagination li a,.pagination li .page-item:first-child a,.pagination li:first-child a{margin-left:0}.page-item.active .page-link,.pagination-datatables li.active .page-link,.pagination li.active .page-link,.page-item.active .pagination-datatables li a,.pagination-datatables li .page-item.active a,.pagination-datatables li.active a,.page-item.active .pagination li a,.pagination li .page-item.active a,.pagination li.active a{z-index:3;color:#fff;background-color:#039;border-color:#039}.page-item.disabled .page-link,.pagination-datatables li.disabled .page-link,.pagination li.disabled .page-link,.page-item.disabled .pagination-datatables li a,.pagination-datatables li .page-item.disabled a,.pagination-datatables li.disabled a,.page-item.disabled .pagination li a,.pagination li .page-item.disabled a,.pagination li.disabled a{color:#536c79;pointer-events:none;cursor:auto;background-color:#fff;border-color:#a4b7c1}.pagination-lg .page-link,.pagination-lg .pagination-datatables li a,.pagination-datatables li .pagination-lg a,.pagination-lg .pagination li a,.pagination li .pagination-lg a{padding:.75rem 1.5rem;font-size:1.09375rem;line-height:1.5}.pagination-sm .page-link,.pagination-sm .pagination-datatables li a,.pagination-datatables li .pagination-sm a,.pagination-sm .pagination li a,.pagination li .pagination-sm a{padding:.25rem .5rem;font-size:.76563rem;line-height:1.5}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.badge{transition:none}}a.badge:hover,a.badge:focus{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em}.badge-primary{color:#fff;background-color:#039}a.badge-primary:hover,a.badge-primary:focus{color:#fff;background-color:#026}a.badge-primary:focus,a.badge-primary.focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,51,153,0.5)}.badge-secondary{color:#151b1e;background-color:#a4b7c1}a.badge-secondary:hover,a.badge-secondary:focus{color:#151b1e;background-color:#869fac}a.badge-secondary:focus,a.badge-secondary.focus{outline:0;box-shadow:0 0 0 .2rem rgba(164,183,193,0.5)}.badge-success{color:#fff;background-color:#4dbd74}a.badge-success:hover,a.badge-success:focus{color:#fff;background-color:#3a9d5d}a.badge-success:focus,a.badge-success.focus{outline:0;box-shadow:0 0 0 .2rem rgba(77,189,116,0.5)}.badge-info{color:#151b1e;background-color:#63c2de}a.badge-info:hover,a.badge-info:focus{color:#151b1e;background-color:#39b2d5}a.badge-info:focus,a.badge-info.focus{outline:0;box-shadow:0 0 0 .2rem rgba(99,194,222,0.5)}.badge-warning{color:#151b1e;background-color:#fc0}a.badge-warning:hover,a.badge-warning:focus{color:#151b1e;background-color:#cca300}a.badge-warning:focus,a.badge-warning.focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,204,0,0.5)}.badge-danger{color:#fff;background-color:#f86c6b}a.badge-danger:hover,a.badge-danger:focus{color:#fff;background-color:#f63c3a}a.badge-danger:focus,a.badge-danger.focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,108,107,0.5)}.badge-light{color:#151b1e;background-color:#f0f3f5}a.badge-light:hover,a.badge-light:focus{color:#151b1e;background-color:#d1dbe1}a.badge-light:focus,a.badge-light.focus{outline:0;box-shadow:0 0 0 .2rem rgba(240,243,245,0.5)}.badge-dark{color:#fff;background-color:#29363d}a.badge-dark:hover,a.badge-dark:focus{color:#fff;background-color:#151b1f}a.badge-dark:focus,a.badge-dark.focus{outline:0;box-shadow:0 0 0 .2rem rgba(41,54,61,0.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#c2cfd6}@media (min-width: 576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3.8125rem}.alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#001b50;background-color:#ccd6eb;border-color:#b8c6e2}.alert-primary hr{border-top-color:#a6b7db}.alert-primary .alert-link{color:#000a1d}.alert-secondary{color:#555f64;background-color:#edf1f3;border-color:#e6ebee}.alert-secondary hr{border-top-color:#d7dfe4}.alert-secondary .alert-link{color:#3e4548}.alert-success{color:#28623c;background-color:#dbf2e3;border-color:#cdedd8}.alert-success hr{border-top-color:#bae6c9}.alert-success .alert-link{color:#193e26}.alert-info{color:#336573;background-color:#e0f3f8;border-color:#d3eef6}.alert-info hr{border-top-color:#bee6f2}.alert-info .alert-link{color:#234650}.alert-warning{color:#856a00;background-color:#fff5cc;border-color:#fff1b8}.alert-warning hr{border-top-color:#ffec9f}.alert-warning .alert-link{color:#524100}.alert-danger{color:#813838;background-color:#fee2e1;border-color:#fdd6d6}.alert-danger hr{border-top-color:#fcbebe}.alert-danger .alert-link{color:#5d2929}.alert-light{color:#7d7e7f;background-color:#fcfdfd;border-color:#fbfcfc}.alert-light hr{border-top-color:#ecf1f1}.alert-light .alert-link{color:#646565}.alert-dark{color:#151c20;background-color:#d4d7d8;border-color:#c3c7c9}.alert-dark hr{border-top-color:#b6babd}.alert-dark .alert-link{color:#010101}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;overflow:hidden;line-height:0;font-size:.65625rem;background-color:#f0f3f5}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#039;transition:width 0.6s ease}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:1rem 1rem}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#3e515b;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:#3e515b;text-decoration:none;background-color:#f0f3f5}.list-group-item-action:active{color:#151b1e;background-color:#c2cfd6}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,0.125)}.list-group-item.disabled,.list-group-item:disabled{color:#536c79;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#039;border-color:#039}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width: 576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#001b50;background-color:#b8c6e2}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#001b50;background-color:#a6b7db}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#001b50;border-color:#001b50}.list-group-item-secondary{color:#555f64;background-color:#e6ebee}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#555f64;background-color:#d7dfe4}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#555f64;border-color:#555f64}.list-group-item-success{color:#28623c;background-color:#cdedd8}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#28623c;background-color:#bae6c9}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#28623c;border-color:#28623c}.list-group-item-info{color:#336573;background-color:#d3eef6}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#336573;background-color:#bee6f2}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#336573;border-color:#336573}.list-group-item-warning{color:#856a00;background-color:#fff1b8}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#856a00;background-color:#ffec9f}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856a00;border-color:#856a00}.list-group-item-danger{color:#813838;background-color:#fdd6d6}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#813838;background-color:#fcbebe}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#813838;border-color:#813838}.list-group-item-light{color:#7d7e7f;background-color:#fbfcfc}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#7d7e7f;background-color:#ecf1f1}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#7d7e7f;border-color:#7d7e7f}.list-group-item-dark{color:#151c20;background-color:#c3c7c9}.list-group-item-dark.list-group-item-action:hover,.list-group-item-dark.list-group-item-action:focus{color:#151c20;background-color:#b6babd}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#151c20;border-color:#151c20}.close{float:right;font-size:1.3125rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):hover,.close:not(:disabled):not(.disabled):focus{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{flex-basis:350px;max-width:350px;font-size:.875rem;background-color:rgba(255,255,255,0.85);background-clip:padding-box;border:1px solid rgba(0,0,0,0.1);box-shadow:0 0.25rem 0.75rem rgba(0,0,0,0.1);opacity:0}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#536c79;background-color:rgba(255,255,255,0.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,0.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform 0.3s ease-out;transform:translate(0, -50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-header,.modal-dialog-scrollable .modal-footer{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);height:min-content;content:\\\"\\\"}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2);outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #a4b7c1}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #a4b7c1}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width: 576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem);height:min-content}.modal-sm{max-width:300px}}@media (min-width: 992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width: 1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,\\\"Helvetica Neue\\\",Arial,\\\"Noto Sans\\\",\\\"Liberation Sans\\\",sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"Noto Color Emoji\\\";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.76563rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:\\\"\\\";border-color:transparent;border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^=\\\"top\\\"]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^=\\\"top\\\"] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^=\\\"top\\\"] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^=\\\"right\\\"]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^=\\\"right\\\"] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^=\\\"right\\\"] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^=\\\"bottom\\\"]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^=\\\"bottom\\\"] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^=\\\"bottom\\\"] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^=\\\"left\\\"]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^=\\\"left\\\"] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^=\\\"left\\\"] .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,\\\"Helvetica Neue\\\",Arial,\\\"Noto Sans\\\",\\\"Liberation Sans\\\",sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"Noto Color Emoji\\\";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.76563rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2)}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::before,.popover .arrow::after{position:absolute;display:block;content:\\\"\\\";border-color:transparent;border-style:solid}.bs-popover-top,.bs-popover-auto[x-placement^=\\\"top\\\"]{margin-bottom:.5rem}.bs-popover-top>.arrow,.bs-popover-auto[x-placement^=\\\"top\\\"]>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-top>.arrow::before,.bs-popover-auto[x-placement^=\\\"top\\\"]>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,0.25)}.bs-popover-top>.arrow::after,.bs-popover-auto[x-placement^=\\\"top\\\"]>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-right,.bs-popover-auto[x-placement^=\\\"right\\\"]{margin-left:.5rem}.bs-popover-right>.arrow,.bs-popover-auto[x-placement^=\\\"right\\\"]>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-right>.arrow::before,.bs-popover-auto[x-placement^=\\\"right\\\"]>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,0.25)}.bs-popover-right>.arrow::after,.bs-popover-auto[x-placement^=\\\"right\\\"]>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-bottom,.bs-popover-auto[x-placement^=\\\"bottom\\\"]{margin-top:.5rem}.bs-popover-bottom>.arrow,.bs-popover-auto[x-placement^=\\\"bottom\\\"]>.arrow{top:calc(-.5rem - 1px)}.bs-popover-bottom>.arrow::before,.bs-popover-auto[x-placement^=\\\"bottom\\\"]>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,0.25)}.bs-popover-bottom>.arrow::after,.bs-popover-auto[x-placement^=\\\"bottom\\\"]>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-bottom .popover-header::before,.bs-popover-auto[x-placement^=\\\"bottom\\\"] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\\\"\\\";border-bottom:1px solid #f7f7f7}.bs-popover-left,.bs-popover-auto[x-placement^=\\\"left\\\"]{margin-right:.5rem}.bs-popover-left>.arrow,.bs-popover-auto[x-placement^=\\\"left\\\"]>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-left>.arrow::before,.bs-popover-auto[x-placement^=\\\"left\\\"]>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,0.25)}.bs-popover-left>.arrow::after,.bs-popover-auto[x-placement^=\\\"left\\\"]>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:.875rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#151b1e}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:\\\"\\\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-left),.active.carousel-item-right{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-right),.active.carousel-item-left{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity 0.15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:20px;height:20px;background:50% / 100% 100% no-repeat}.carousel-control-prev-icon{background-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\\\")}.carousel-control-next-icon{background-image:url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\\\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity 0.6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{animation-duration:1.5s}}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.bg-primary{background-color:#039 !important}a.bg-primary:hover,a.bg-primary:focus,button.bg-primary:hover,button.bg-primary:focus{background-color:#026 !important}.bg-secondary{background-color:#a4b7c1 !important}a.bg-secondary:hover,a.bg-secondary:focus,button.bg-secondary:hover,button.bg-secondary:focus{background-color:#869fac !important}.bg-success{background-color:#4dbd74 !important}a.bg-success:hover,a.bg-success:focus,button.bg-success:hover,button.bg-success:focus{background-color:#3a9d5d !important}.bg-info{background-color:#63c2de !important}a.bg-info:hover,a.bg-info:focus,button.bg-info:hover,button.bg-info:focus{background-color:#39b2d5 !important}.bg-warning{background-color:#fc0 !important}a.bg-warning:hover,a.bg-warning:focus,button.bg-warning:hover,button.bg-warning:focus{background-color:#cca300 !important}.bg-danger{background-color:#f86c6b !important}a.bg-danger:hover,a.bg-danger:focus,button.bg-danger:hover,button.bg-danger:focus{background-color:#f63c3a !important}.bg-light{background-color:#f0f3f5 !important}a.bg-light:hover,a.bg-light:focus,button.bg-light:hover,button.bg-light:focus{background-color:#d1dbe1 !important}.bg-dark{background-color:#29363d !important}a.bg-dark:hover,a.bg-dark:focus,button.bg-dark:hover,button.bg-dark:focus{background-color:#151b1f !important}.bg-white{background-color:#fff !important}.bg-transparent{background-color:transparent !important}.border{border:1px solid #a4b7c1 !important}.border-top{border-top:1px solid #a4b7c1 !important}.border-right{border-right:1px solid #a4b7c1 !important}.border-bottom{border-bottom:1px solid #a4b7c1 !important}.border-left{border-left:1px solid #a4b7c1 !important}.border-0{border:0 !important}.border-top-0{border-top:0 !important}.border-right-0{border-right:0 !important}.border-bottom-0{border-bottom:0 !important}.border-left-0{border-left:0 !important}.border-primary{border-color:#039 !important}.border-secondary{border-color:#a4b7c1 !important}.border-success{border-color:#4dbd74 !important}.border-info{border-color:#63c2de !important}.border-warning{border-color:#fc0 !important}.border-danger{border-color:#f86c6b !important}.border-light{border-color:#f0f3f5 !important}.border-dark{border-color:#29363d !important}.border-white{border-color:#fff !important}.rounded-sm{border-radius:.2rem !important}.rounded{border-radius:.25rem !important}.rounded-top{border-top-left-radius:.25rem !important;border-top-right-radius:.25rem !important}.rounded-right{border-top-right-radius:.25rem !important;border-bottom-right-radius:.25rem !important}.rounded-bottom{border-bottom-right-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-left{border-top-left-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-lg{border-radius:.3rem !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:50rem !important}.rounded-0{border-radius:0 !important}.clearfix::after{display:block;clear:both;content:\\\"\\\"}.d-none{display:none !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}@media (min-width: 576px){.d-sm-none{display:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}}@media (min-width: 768px){.d-md-none{display:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}}@media (min-width: 992px){.d-lg-none{display:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}}@media (min-width: 1200px){.d-xl-none{display:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}}@media print{.d-print-none{display:none !important}.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:\\\"\\\"}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.85714%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-fill{flex:1 1 auto !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}@media (min-width: 576px){.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}}@media (min-width: 768px){.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}}@media (min-width: 992px){.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}}@media (min-width: 1200px){.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}}.float-left{float:left !important}.float-right{float:right !important}.float-none{float:none !important}@media (min-width: 576px){.float-sm-left{float:left !important}.float-sm-right{float:right !important}.float-sm-none{float:none !important}}@media (min-width: 768px){.float-md-left{float:left !important}.float-md-right{float:right !important}.float-md-none{float:none !important}}@media (min-width: 992px){.float-lg-left{float:left !important}.float-lg-right{float:right !important}.float-lg-none{float:none !important}}@media (min-width: 1200px){.float-xl-left{float:left !important}.float-xl-right{float:right !important}.float-xl-none{float:none !important}}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports (position: sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.075) !important}.shadow{box-shadow:0 0.5rem 1rem rgba(0,0,0,0.15) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,0.175) !important}.shadow-none{box-shadow:none !important}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mw-100{max-width:100% !important}.mh-100{max-height:100% !important}.min-vw-100{min-width:100vw !important}.min-vh-100{min-height:100vh !important}.vw-100{width:100vw !important}.vh-100{height:100vh !important}.m-0{margin:0 !important}.mt-0,.my-0{margin-top:0 !important}.mr-0,.mx-0{margin-right:0 !important}.mb-0,.my-0{margin-bottom:0 !important}.ml-0,.mx-0{margin-left:0 !important}.m-1{margin:.25rem !important}.mt-1,.my-1{margin-top:.25rem !important}.mr-1,.mx-1{margin-right:.25rem !important}.mb-1,.my-1{margin-bottom:.25rem !important}.ml-1,.mx-1{margin-left:.25rem !important}.m-2{margin:.5rem !important}.mt-2,.my-2{margin-top:.5rem !important}.mr-2,.mx-2{margin-right:.5rem !important}.mb-2,.my-2{margin-bottom:.5rem !important}.ml-2,.mx-2{margin-left:.5rem !important}.m-3{margin:1rem !important}.mt-3,.my-3{margin-top:1rem !important}.mr-3,.mx-3{margin-right:1rem !important}.mb-3,.my-3{margin-bottom:1rem !important}.ml-3,.mx-3{margin-left:1rem !important}.m-4{margin:1.5rem !important}.mt-4,.my-4{margin-top:1.5rem !important}.mr-4,.mx-4{margin-right:1.5rem !important}.mb-4,.my-4{margin-bottom:1.5rem !important}.ml-4,.mx-4{margin-left:1.5rem !important}.m-5{margin:3rem !important}.mt-5,.my-5{margin-top:3rem !important}.mr-5,.mx-5{margin-right:3rem !important}.mb-5,.my-5{margin-bottom:3rem !important}.ml-5,.mx-5{margin-left:3rem !important}.p-0{padding:0 !important}.pt-0,.py-0{padding-top:0 !important}.pr-0,.px-0{padding-right:0 !important}.pb-0,.py-0{padding-bottom:0 !important}.pl-0,.px-0{padding-left:0 !important}.p-1{padding:.25rem !important}.pt-1,.py-1{padding-top:.25rem !important}.pr-1,.px-1{padding-right:.25rem !important}.pb-1,.py-1{padding-bottom:.25rem !important}.pl-1,.px-1{padding-left:.25rem !important}.p-2{padding:.5rem !important}.pt-2,.py-2{padding-top:.5rem !important}.pr-2,.px-2{padding-right:.5rem !important}.pb-2,.py-2{padding-bottom:.5rem !important}.pl-2,.px-2{padding-left:.5rem !important}.p-3{padding:1rem !important}.pt-3,.py-3{padding-top:1rem !important}.pr-3,.px-3{padding-right:1rem !important}.pb-3,.py-3{padding-bottom:1rem !important}.pl-3,.px-3{padding-left:1rem !important}.p-4{padding:1.5rem !important}.pt-4,.py-4{padding-top:1.5rem !important}.pr-4,.px-4{padding-right:1.5rem !important}.pb-4,.py-4{padding-bottom:1.5rem !important}.pl-4,.px-4{padding-left:1.5rem !important}.p-5{padding:3rem !important}.pt-5,.py-5{padding-top:3rem !important}.pr-5,.px-5{padding-right:3rem !important}.pb-5,.py-5{padding-bottom:3rem !important}.pl-5,.px-5{padding-left:3rem !important}.m-n1{margin:-.25rem !important}.mt-n1,.my-n1{margin-top:-.25rem !important}.mr-n1,.mx-n1{margin-right:-.25rem !important}.mb-n1,.my-n1{margin-bottom:-.25rem !important}.ml-n1,.mx-n1{margin-left:-.25rem !important}.m-n2{margin:-.5rem !important}.mt-n2,.my-n2{margin-top:-.5rem !important}.mr-n2,.mx-n2{margin-right:-.5rem !important}.mb-n2,.my-n2{margin-bottom:-.5rem !important}.ml-n2,.mx-n2{margin-left:-.5rem !important}.m-n3{margin:-1rem !important}.mt-n3,.my-n3{margin-top:-1rem !important}.mr-n3,.mx-n3{margin-right:-1rem !important}.mb-n3,.my-n3{margin-bottom:-1rem !important}.ml-n3,.mx-n3{margin-left:-1rem !important}.m-n4{margin:-1.5rem !important}.mt-n4,.my-n4{margin-top:-1.5rem !important}.mr-n4,.mx-n4{margin-right:-1.5rem !important}.mb-n4,.my-n4{margin-bottom:-1.5rem !important}.ml-n4,.mx-n4{margin-left:-1.5rem !important}.m-n5{margin:-3rem !important}.mt-n5,.my-n5{margin-top:-3rem !important}.mr-n5,.mx-n5{margin-right:-3rem !important}.mb-n5,.my-n5{margin-bottom:-3rem !important}.ml-n5,.mx-n5{margin-left:-3rem !important}.m-auto{margin:auto !important}.mt-auto,.my-auto{margin-top:auto !important}.mr-auto,.mx-auto{margin-right:auto !important}.mb-auto,.my-auto{margin-bottom:auto !important}.ml-auto,.mx-auto{margin-left:auto !important}@media (min-width: 576px){.m-sm-0{margin:0 !important}.mt-sm-0,.my-sm-0{margin-top:0 !important}.mr-sm-0,.mx-sm-0{margin-right:0 !important}.mb-sm-0,.my-sm-0{margin-bottom:0 !important}.ml-sm-0,.mx-sm-0{margin-left:0 !important}.m-sm-1{margin:.25rem !important}.mt-sm-1,.my-sm-1{margin-top:.25rem !important}.mr-sm-1,.mx-sm-1{margin-right:.25rem !important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem !important}.ml-sm-1,.mx-sm-1{margin-left:.25rem !important}.m-sm-2{margin:.5rem !important}.mt-sm-2,.my-sm-2{margin-top:.5rem !important}.mr-sm-2,.mx-sm-2{margin-right:.5rem !important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem !important}.ml-sm-2,.mx-sm-2{margin-left:.5rem !important}.m-sm-3{margin:1rem !important}.mt-sm-3,.my-sm-3{margin-top:1rem !important}.mr-sm-3,.mx-sm-3{margin-right:1rem !important}.mb-sm-3,.my-sm-3{margin-bottom:1rem !important}.ml-sm-3,.mx-sm-3{margin-left:1rem !important}.m-sm-4{margin:1.5rem !important}.mt-sm-4,.my-sm-4{margin-top:1.5rem !important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem !important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem !important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem !important}.m-sm-5{margin:3rem !important}.mt-sm-5,.my-sm-5{margin-top:3rem !important}.mr-sm-5,.mx-sm-5{margin-right:3rem !important}.mb-sm-5,.my-sm-5{margin-bottom:3rem !important}.ml-sm-5,.mx-sm-5{margin-left:3rem !important}.p-sm-0{padding:0 !important}.pt-sm-0,.py-sm-0{padding-top:0 !important}.pr-sm-0,.px-sm-0{padding-right:0 !important}.pb-sm-0,.py-sm-0{padding-bottom:0 !important}.pl-sm-0,.px-sm-0{padding-left:0 !important}.p-sm-1{padding:.25rem !important}.pt-sm-1,.py-sm-1{padding-top:.25rem !important}.pr-sm-1,.px-sm-1{padding-right:.25rem !important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem !important}.pl-sm-1,.px-sm-1{padding-left:.25rem !important}.p-sm-2{padding:.5rem !important}.pt-sm-2,.py-sm-2{padding-top:.5rem !important}.pr-sm-2,.px-sm-2{padding-right:.5rem !important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem !important}.pl-sm-2,.px-sm-2{padding-left:.5rem !important}.p-sm-3{padding:1rem !important}.pt-sm-3,.py-sm-3{padding-top:1rem !important}.pr-sm-3,.px-sm-3{padding-right:1rem !important}.pb-sm-3,.py-sm-3{padding-bottom:1rem !important}.pl-sm-3,.px-sm-3{padding-left:1rem !important}.p-sm-4{padding:1.5rem !important}.pt-sm-4,.py-sm-4{padding-top:1.5rem !important}.pr-sm-4,.px-sm-4{padding-right:1.5rem !important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem !important}.pl-sm-4,.px-sm-4{padding-left:1.5rem !important}.p-sm-5{padding:3rem !important}.pt-sm-5,.py-sm-5{padding-top:3rem !important}.pr-sm-5,.px-sm-5{padding-right:3rem !important}.pb-sm-5,.py-sm-5{padding-bottom:3rem !important}.pl-sm-5,.px-sm-5{padding-left:3rem !important}.m-sm-n1{margin:-.25rem !important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem !important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem !important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem !important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem !important}.m-sm-n2{margin:-.5rem !important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem !important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem !important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem !important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem !important}.m-sm-n3{margin:-1rem !important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem !important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem !important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem !important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem !important}.m-sm-n4{margin:-1.5rem !important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem !important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem !important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem !important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem !important}.m-sm-n5{margin:-3rem !important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem !important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem !important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem !important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem !important}.m-sm-auto{margin:auto !important}.mt-sm-auto,.my-sm-auto{margin-top:auto !important}.mr-sm-auto,.mx-sm-auto{margin-right:auto !important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto !important}.ml-sm-auto,.mx-sm-auto{margin-left:auto !important}}@media (min-width: 768px){.m-md-0{margin:0 !important}.mt-md-0,.my-md-0{margin-top:0 !important}.mr-md-0,.mx-md-0{margin-right:0 !important}.mb-md-0,.my-md-0{margin-bottom:0 !important}.ml-md-0,.mx-md-0{margin-left:0 !important}.m-md-1{margin:.25rem !important}.mt-md-1,.my-md-1{margin-top:.25rem !important}.mr-md-1,.mx-md-1{margin-right:.25rem !important}.mb-md-1,.my-md-1{margin-bottom:.25rem !important}.ml-md-1,.mx-md-1{margin-left:.25rem !important}.m-md-2{margin:.5rem !important}.mt-md-2,.my-md-2{margin-top:.5rem !important}.mr-md-2,.mx-md-2{margin-right:.5rem !important}.mb-md-2,.my-md-2{margin-bottom:.5rem !important}.ml-md-2,.mx-md-2{margin-left:.5rem !important}.m-md-3{margin:1rem !important}.mt-md-3,.my-md-3{margin-top:1rem !important}.mr-md-3,.mx-md-3{margin-right:1rem !important}.mb-md-3,.my-md-3{margin-bottom:1rem !important}.ml-md-3,.mx-md-3{margin-left:1rem !important}.m-md-4{margin:1.5rem !important}.mt-md-4,.my-md-4{margin-top:1.5rem !important}.mr-md-4,.mx-md-4{margin-right:1.5rem !important}.mb-md-4,.my-md-4{margin-bottom:1.5rem !important}.ml-md-4,.mx-md-4{margin-left:1.5rem !important}.m-md-5{margin:3rem !important}.mt-md-5,.my-md-5{margin-top:3rem !important}.mr-md-5,.mx-md-5{margin-right:3rem !important}.mb-md-5,.my-md-5{margin-bottom:3rem !important}.ml-md-5,.mx-md-5{margin-left:3rem !important}.p-md-0{padding:0 !important}.pt-md-0,.py-md-0{padding-top:0 !important}.pr-md-0,.px-md-0{padding-right:0 !important}.pb-md-0,.py-md-0{padding-bottom:0 !important}.pl-md-0,.px-md-0{padding-left:0 !important}.p-md-1{padding:.25rem !important}.pt-md-1,.py-md-1{padding-top:.25rem !important}.pr-md-1,.px-md-1{padding-right:.25rem !important}.pb-md-1,.py-md-1{padding-bottom:.25rem !important}.pl-md-1,.px-md-1{padding-left:.25rem !important}.p-md-2{padding:.5rem !important}.pt-md-2,.py-md-2{padding-top:.5rem !important}.pr-md-2,.px-md-2{padding-right:.5rem !important}.pb-md-2,.py-md-2{padding-bottom:.5rem !important}.pl-md-2,.px-md-2{padding-left:.5rem !important}.p-md-3{padding:1rem !important}.pt-md-3,.py-md-3{padding-top:1rem !important}.pr-md-3,.px-md-3{padding-right:1rem !important}.pb-md-3,.py-md-3{padding-bottom:1rem !important}.pl-md-3,.px-md-3{padding-left:1rem !important}.p-md-4{padding:1.5rem !important}.pt-md-4,.py-md-4{padding-top:1.5rem !important}.pr-md-4,.px-md-4{padding-right:1.5rem !important}.pb-md-4,.py-md-4{padding-bottom:1.5rem !important}.pl-md-4,.px-md-4{padding-left:1.5rem !important}.p-md-5{padding:3rem !important}.pt-md-5,.py-md-5{padding-top:3rem !important}.pr-md-5,.px-md-5{padding-right:3rem !important}.pb-md-5,.py-md-5{padding-bottom:3rem !important}.pl-md-5,.px-md-5{padding-left:3rem !important}.m-md-n1{margin:-.25rem !important}.mt-md-n1,.my-md-n1{margin-top:-.25rem !important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem !important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem !important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem !important}.m-md-n2{margin:-.5rem !important}.mt-md-n2,.my-md-n2{margin-top:-.5rem !important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem !important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem !important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem !important}.m-md-n3{margin:-1rem !important}.mt-md-n3,.my-md-n3{margin-top:-1rem !important}.mr-md-n3,.mx-md-n3{margin-right:-1rem !important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem !important}.ml-md-n3,.mx-md-n3{margin-left:-1rem !important}.m-md-n4{margin:-1.5rem !important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem !important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem !important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem !important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem !important}.m-md-n5{margin:-3rem !important}.mt-md-n5,.my-md-n5{margin-top:-3rem !important}.mr-md-n5,.mx-md-n5{margin-right:-3rem !important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem !important}.ml-md-n5,.mx-md-n5{margin-left:-3rem !important}.m-md-auto{margin:auto !important}.mt-md-auto,.my-md-auto{margin-top:auto !important}.mr-md-auto,.mx-md-auto{margin-right:auto !important}.mb-md-auto,.my-md-auto{margin-bottom:auto !important}.ml-md-auto,.mx-md-auto{margin-left:auto !important}}@media (min-width: 992px){.m-lg-0{margin:0 !important}.mt-lg-0,.my-lg-0{margin-top:0 !important}.mr-lg-0,.mx-lg-0{margin-right:0 !important}.mb-lg-0,.my-lg-0{margin-bottom:0 !important}.ml-lg-0,.mx-lg-0{margin-left:0 !important}.m-lg-1{margin:.25rem !important}.mt-lg-1,.my-lg-1{margin-top:.25rem !important}.mr-lg-1,.mx-lg-1{margin-right:.25rem !important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem !important}.ml-lg-1,.mx-lg-1{margin-left:.25rem !important}.m-lg-2{margin:.5rem !important}.mt-lg-2,.my-lg-2{margin-top:.5rem !important}.mr-lg-2,.mx-lg-2{margin-right:.5rem !important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem !important}.ml-lg-2,.mx-lg-2{margin-left:.5rem !important}.m-lg-3{margin:1rem !important}.mt-lg-3,.my-lg-3{margin-top:1rem !important}.mr-lg-3,.mx-lg-3{margin-right:1rem !important}.mb-lg-3,.my-lg-3{margin-bottom:1rem !important}.ml-lg-3,.mx-lg-3{margin-left:1rem !important}.m-lg-4{margin:1.5rem !important}.mt-lg-4,.my-lg-4{margin-top:1.5rem !important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem !important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem !important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem !important}.m-lg-5{margin:3rem !important}.mt-lg-5,.my-lg-5{margin-top:3rem !important}.mr-lg-5,.mx-lg-5{margin-right:3rem !important}.mb-lg-5,.my-lg-5{margin-bottom:3rem !important}.ml-lg-5,.mx-lg-5{margin-left:3rem !important}.p-lg-0{padding:0 !important}.pt-lg-0,.py-lg-0{padding-top:0 !important}.pr-lg-0,.px-lg-0{padding-right:0 !important}.pb-lg-0,.py-lg-0{padding-bottom:0 !important}.pl-lg-0,.px-lg-0{padding-left:0 !important}.p-lg-1{padding:.25rem !important}.pt-lg-1,.py-lg-1{padding-top:.25rem !important}.pr-lg-1,.px-lg-1{padding-right:.25rem !important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem !important}.pl-lg-1,.px-lg-1{padding-left:.25rem !important}.p-lg-2{padding:.5rem !important}.pt-lg-2,.py-lg-2{padding-top:.5rem !important}.pr-lg-2,.px-lg-2{padding-right:.5rem !important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem !important}.pl-lg-2,.px-lg-2{padding-left:.5rem !important}.p-lg-3{padding:1rem !important}.pt-lg-3,.py-lg-3{padding-top:1rem !important}.pr-lg-3,.px-lg-3{padding-right:1rem !important}.pb-lg-3,.py-lg-3{padding-bottom:1rem !important}.pl-lg-3,.px-lg-3{padding-left:1rem !important}.p-lg-4{padding:1.5rem !important}.pt-lg-4,.py-lg-4{padding-top:1.5rem !important}.pr-lg-4,.px-lg-4{padding-right:1.5rem !important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem !important}.pl-lg-4,.px-lg-4{padding-left:1.5rem !important}.p-lg-5{padding:3rem !important}.pt-lg-5,.py-lg-5{padding-top:3rem !important}.pr-lg-5,.px-lg-5{padding-right:3rem !important}.pb-lg-5,.py-lg-5{padding-bottom:3rem !important}.pl-lg-5,.px-lg-5{padding-left:3rem !important}.m-lg-n1{margin:-.25rem !important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem !important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem !important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem !important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem !important}.m-lg-n2{margin:-.5rem !important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem !important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem !important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem !important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem !important}.m-lg-n3{margin:-1rem !important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem !important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem !important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem !important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem !important}.m-lg-n4{margin:-1.5rem !important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem !important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem !important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem !important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem !important}.m-lg-n5{margin:-3rem !important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem !important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem !important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem !important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem !important}.m-lg-auto{margin:auto !important}.mt-lg-auto,.my-lg-auto{margin-top:auto !important}.mr-lg-auto,.mx-lg-auto{margin-right:auto !important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto !important}.ml-lg-auto,.mx-lg-auto{margin-left:auto !important}}@media (min-width: 1200px){.m-xl-0{margin:0 !important}.mt-xl-0,.my-xl-0{margin-top:0 !important}.mr-xl-0,.mx-xl-0{margin-right:0 !important}.mb-xl-0,.my-xl-0{margin-bottom:0 !important}.ml-xl-0,.mx-xl-0{margin-left:0 !important}.m-xl-1{margin:.25rem !important}.mt-xl-1,.my-xl-1{margin-top:.25rem !important}.mr-xl-1,.mx-xl-1{margin-right:.25rem !important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem !important}.ml-xl-1,.mx-xl-1{margin-left:.25rem !important}.m-xl-2{margin:.5rem !important}.mt-xl-2,.my-xl-2{margin-top:.5rem !important}.mr-xl-2,.mx-xl-2{margin-right:.5rem !important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem !important}.ml-xl-2,.mx-xl-2{margin-left:.5rem !important}.m-xl-3{margin:1rem !important}.mt-xl-3,.my-xl-3{margin-top:1rem !important}.mr-xl-3,.mx-xl-3{margin-right:1rem !important}.mb-xl-3,.my-xl-3{margin-bottom:1rem !important}.ml-xl-3,.mx-xl-3{margin-left:1rem !important}.m-xl-4{margin:1.5rem !important}.mt-xl-4,.my-xl-4{margin-top:1.5rem !important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem !important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem !important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem !important}.m-xl-5{margin:3rem !important}.mt-xl-5,.my-xl-5{margin-top:3rem !important}.mr-xl-5,.mx-xl-5{margin-right:3rem !important}.mb-xl-5,.my-xl-5{margin-bottom:3rem !important}.ml-xl-5,.mx-xl-5{margin-left:3rem !important}.p-xl-0{padding:0 !important}.pt-xl-0,.py-xl-0{padding-top:0 !important}.pr-xl-0,.px-xl-0{padding-right:0 !important}.pb-xl-0,.py-xl-0{padding-bottom:0 !important}.pl-xl-0,.px-xl-0{padding-left:0 !important}.p-xl-1{padding:.25rem !important}.pt-xl-1,.py-xl-1{padding-top:.25rem !important}.pr-xl-1,.px-xl-1{padding-right:.25rem !important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem !important}.pl-xl-1,.px-xl-1{padding-left:.25rem !important}.p-xl-2{padding:.5rem !important}.pt-xl-2,.py-xl-2{padding-top:.5rem !important}.pr-xl-2,.px-xl-2{padding-right:.5rem !important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem !important}.pl-xl-2,.px-xl-2{padding-left:.5rem !important}.p-xl-3{padding:1rem !important}.pt-xl-3,.py-xl-3{padding-top:1rem !important}.pr-xl-3,.px-xl-3{padding-right:1rem !important}.pb-xl-3,.py-xl-3{padding-bottom:1rem !important}.pl-xl-3,.px-xl-3{padding-left:1rem !important}.p-xl-4{padding:1.5rem !important}.pt-xl-4,.py-xl-4{padding-top:1.5rem !important}.pr-xl-4,.px-xl-4{padding-right:1.5rem !important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem !important}.pl-xl-4,.px-xl-4{padding-left:1.5rem !important}.p-xl-5{padding:3rem !important}.pt-xl-5,.py-xl-5{padding-top:3rem !important}.pr-xl-5,.px-xl-5{padding-right:3rem !important}.pb-xl-5,.py-xl-5{padding-bottom:3rem !important}.pl-xl-5,.px-xl-5{padding-left:3rem !important}.m-xl-n1{margin:-.25rem !important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem !important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem !important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem !important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem !important}.m-xl-n2{margin:-.5rem !important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem !important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem !important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem !important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem !important}.m-xl-n3{margin:-1rem !important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem !important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem !important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem !important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem !important}.m-xl-n4{margin:-1.5rem !important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem !important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem !important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem !important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem !important}.m-xl-n5{margin:-3rem !important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem !important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem !important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem !important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem !important}.m-xl-auto{margin:auto !important}.mt-xl-auto,.my-xl-auto{margin-top:auto !important}.mr-xl-auto,.mx-xl-auto{margin-right:auto !important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto !important}.ml-xl-auto,.mx-xl-auto{margin-left:auto !important}}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:\\\"\\\";background-color:rgba(0,0,0,0)}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace !important}.text-justify{text-align:justify !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left !important}.text-right{text-align:right !important}.text-center{text-align:center !important}@media (min-width: 576px){.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}.text-sm-center{text-align:center !important}}@media (min-width: 768px){.text-md-left{text-align:left !important}.text-md-right{text-align:right !important}.text-md-center{text-align:center !important}}@media (min-width: 992px){.text-lg-left{text-align:left !important}.text-lg-right{text-align:right !important}.text-lg-center{text-align:center !important}}@media (min-width: 1200px){.text-xl-left{text-align:left !important}.text-xl-right{text-align:right !important}.text-xl-center{text-align:center !important}}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.font-weight-light{font-weight:300 !important}.font-weight-lighter{font-weight:lighter !important}.font-weight-normal{font-weight:400 !important}.font-weight-bold{font-weight:700 !important}.font-weight-bolder{font-weight:bolder !important}.font-italic{font-style:italic !important}.text-white{color:#fff !important}.text-primary{color:#039 !important}a.text-primary:hover,a.text-primary:focus{color:#001a4d !important}.text-secondary{color:#a4b7c1 !important}a.text-secondary:hover,a.text-secondary:focus{color:#7793a2 !important}.text-success{color:#4dbd74 !important}a.text-success:hover,a.text-success:focus{color:#338a52 !important}.text-info{color:#63c2de !important}a.text-info:hover,a.text-info:focus{color:#2ba6ca !important}.text-warning{color:#fc0 !important}a.text-warning:hover,a.text-warning:focus{color:#b38f00 !important}.text-danger{color:#f86c6b !important}a.text-danger:hover,a.text-danger:focus{color:#f52322 !important}.text-light{color:#f0f3f5 !important}a.text-light:hover,a.text-light:focus{color:#c2ced6 !important}.text-dark{color:#29363d !important}a.text-dark:hover,a.text-dark:focus{color:#0a0e0f !important}.text-body{color:#151b1e !important}.text-muted{color:#536c79 !important}.text-black-50{color:rgba(0,0,0,0.5) !important}.text-white-50{color:rgba(255,255,255,0.5) !important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none !important}.text-break{word-break:break-word !important;word-wrap:break-word !important}.text-reset{color:inherit !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}@media print{*,*::before,*::after{text-shadow:none !important;box-shadow:none !important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:\\\" (\\\" attr(title) \\\")\\\"}pre{white-space:pre-wrap !important}pre,blockquote{border:1px solid #678898;page-break-inside:avoid}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px !important}.container{min-width:992px !important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #a4b7c1 !important}.table-dark{color:inherit}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{border-color:#a4b7c1}.table .thead-dark th{color:inherit;border-color:#a4b7c1}}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}.font-xs{font-size:.75rem !important}.font-sm{font-size:.85rem !important}.font-lg{font-size:1rem !important}.font-xl{font-size:1.25rem !important}.font-2xl{font-size:1.5rem !important}.font-3xl{font-size:1.75rem !important}.font-4xl{font-size:2rem !important}.font-5xl{font-size:2.5rem !important}.animated{animation-duration:1s}.animated.infinite{animation-iteration-count:infinite}.animated.hinge{animation-duration:2s}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.fadeIn{animation-name:fadeIn}.aside-menu{z-index:1019;width:250px;color:#29363d;background:#fff;border-left:1px solid #a4b7c1}.aside-menu .nav-tabs{border-color:#a4b7c1}.aside-menu .nav-tabs .nav-link,.aside-menu .nav-tabs .navbar .dropdown-toggle,.navbar .aside-menu .nav-tabs .dropdown-toggle{padding:.75rem 1rem;color:#151b1e;border-top:0}.aside-menu .nav-tabs .nav-link.active,.aside-menu .nav-tabs .navbar .active.dropdown-toggle,.navbar .aside-menu .nav-tabs .active.dropdown-toggle{color:#039;border-right-color:#a4b7c1;border-left-color:#a4b7c1}.aside-menu .nav-tabs .nav-item:first-child .nav-link,.aside-menu .nav-tabs .nav-item:first-child .navbar .dropdown-toggle,.navbar .aside-menu .nav-tabs .nav-item:first-child .dropdown-toggle{border-left:0}.aside-menu .tab-content{position:relative;overflow-x:hidden;overflow-y:auto;border:0;border-top:1px solid #a4b7c1;-ms-overflow-style:-ms-autohiding-scrollbar}.aside-menu .tab-content::-webkit-scrollbar{width:10px;margin-left:-10px;-webkit-appearance:none}.aside-menu .tab-content::-webkit-scrollbar-track{background-color:#fff;border-right:1px solid #f2f2f2;border-left:1px solid #f2f2f2}.aside-menu .tab-content::-webkit-scrollbar-thumb{height:50px;background-color:#e6e6e6;background-clip:content-box;border-color:transparent;border-style:solid;border-width:1px 2px}.aside-menu .tab-content .tab-pane{padding:0}.img-avatar{border-radius:50em}.avatar{position:relative;display:inline-block;width:36px}.avatar .img-avatar{width:36px;height:36px}.avatar .avatar-status{position:absolute;right:0;bottom:0;display:block;width:10px;height:10px;border:1px solid #fff;border-radius:50em}.avatar.avatar-xs{position:relative;display:inline-block;width:20px}.avatar.avatar-xs .img-avatar{width:20px;height:20px}.avatar.avatar-xs .avatar-status{position:absolute;right:0;bottom:0;display:block;width:8px;height:8px;border:1px solid #fff;border-radius:50em}.avatar.avatar-sm{position:relative;display:inline-block;width:24px}.avatar.avatar-sm .img-avatar{width:24px;height:24px}.avatar.avatar-sm .avatar-status{position:absolute;right:0;bottom:0;display:block;width:8px;height:8px;border:1px solid #fff;border-radius:50em}.avatar.avatar-lg{position:relative;display:inline-block;width:72px}.avatar.avatar-lg .img-avatar{width:72px;height:72px}.avatar.avatar-lg .avatar-status{position:absolute;right:0;bottom:0;display:block;width:12px;height:12px;border:1px solid #fff;border-radius:50em}.avatars-stack .avatar.avatar-xs{margin-right:-10px}.avatars-stack .avatar{margin-right:-15px;transition:margin-left .25s,margin-right .25s}.avatars-stack .avatar:hover{margin-right:0 !important}.badge-pill{border-radius:10rem}.breadcrumb-menu{margin-left:auto}.breadcrumb-menu::before{display:none}.breadcrumb-menu .btn-group{vertical-align:top}.breadcrumb-menu .btn{padding:0 .75rem;color:#536c79;vertical-align:top;border:0}.breadcrumb-menu .btn:hover,.breadcrumb-menu .btn.active{color:#151b1e;background:transparent}.breadcrumb-menu .open .btn{color:#151b1e;background:transparent}.breadcrumb-menu .dropdown-menu{min-width:180px;line-height:1.5}.breadcrumb{position:relative;border-bottom:1px solid #a4b7c1}button{cursor:pointer}.btn .badge{position:absolute;top:2px;right:6px;font-size:9px}.btn-transparent{color:#fff;background-color:transparent;border-color:transparent}.btn [class^=\\\"icon-\\\"],.btn [class*=\\\" icon-\\\"]{display:inline-block;margin-top:-2px;vertical-align:middle}.btn-facebook,.btn-twitter,.btn-linkedin,.btn-flickr,.btn-tumblr,.btn-xing,.btn-github,.btn-html5,.btn-openid,.btn-stack-overflow,.btn-youtube,.btn-css3,.btn-dribbble,.btn-google-plus,.btn-instagram,.btn-pinterest,.btn-vk,.btn-yahoo,.btn-behance,.btn-dropbox,.btn-reddit,.btn-spotify,.btn-vine,.btn-foursquare,.btn-vimeo{position:relative;overflow:hidden;color:#fff !important;text-align:center;padding:.375rem .75rem;font-size:.875rem;line-height:1.5;border:0}.btn-facebook::before,.btn-twitter::before,.btn-linkedin::before,.btn-flickr::before,.btn-tumblr::before,.btn-xing::before,.btn-github::before,.btn-html5::before,.btn-openid::before,.btn-stack-overflow::before,.btn-youtube::before,.btn-css3::before,.btn-dribbble::before,.btn-google-plus::before,.btn-instagram::before,.btn-pinterest::before,.btn-vk::before,.btn-yahoo::before,.btn-behance::before,.btn-dropbox::before,.btn-reddit::before,.btn-spotify::before,.btn-vine::before,.btn-foursquare::before,.btn-vimeo::before{position:absolute;top:0;left:0;display:block;font-family:\\\"FontAwesome\\\";font-style:normal;font-weight:normal;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}.btn-facebook:hover,.btn-twitter:hover,.btn-linkedin:hover,.btn-flickr:hover,.btn-tumblr:hover,.btn-xing:hover,.btn-github:hover,.btn-html5:hover,.btn-openid:hover,.btn-stack-overflow:hover,.btn-youtube:hover,.btn-css3:hover,.btn-dribbble:hover,.btn-google-plus:hover,.btn-instagram:hover,.btn-pinterest:hover,.btn-vk:hover,.btn-yahoo:hover,.btn-behance:hover,.btn-dropbox:hover,.btn-reddit:hover,.btn-spotify:hover,.btn-vine:hover,.btn-foursquare:hover,.btn-vimeo:hover{color:#fff}.btn-facebook.icon span,.btn-twitter.icon span,.btn-linkedin.icon span,.btn-flickr.icon span,.btn-tumblr.icon span,.btn-xing.icon span,.btn-github.icon span,.btn-html5.icon span,.btn-openid.icon span,.btn-stack-overflow.icon span,.btn-youtube.icon span,.btn-css3.icon span,.btn-dribbble.icon span,.btn-google-plus.icon span,.btn-instagram.icon span,.btn-pinterest.icon span,.btn-vk.icon span,.btn-yahoo.icon span,.btn-behance.icon span,.btn-dropbox.icon span,.btn-reddit.icon span,.btn-spotify.icon span,.btn-vine.icon span,.btn-foursquare.icon span,.btn-vimeo.icon span{display:none}.btn-facebook.text::before,.btn-twitter.text::before,.btn-linkedin.text::before,.btn-flickr.text::before,.btn-tumblr.text::before,.btn-xing.text::before,.btn-github.text::before,.btn-html5.text::before,.btn-openid.text::before,.btn-stack-overflow.text::before,.btn-youtube.text::before,.btn-css3.text::before,.btn-dribbble.text::before,.btn-google-plus.text::before,.btn-instagram.text::before,.btn-pinterest.text::before,.btn-vk.text::before,.btn-yahoo.text::before,.btn-behance.text::before,.btn-dropbox.text::before,.btn-reddit.text::before,.btn-spotify.text::before,.btn-vine.text::before,.btn-foursquare.text::before,.btn-vimeo.text::before{display:none}.btn-facebook.text span,.btn-twitter.text span,.btn-linkedin.text span,.btn-flickr.text span,.btn-tumblr.text span,.btn-xing.text span,.btn-github.text span,.btn-html5.text span,.btn-openid.text span,.btn-stack-overflow.text span,.btn-youtube.text span,.btn-css3.text span,.btn-dribbble.text span,.btn-google-plus.text span,.btn-instagram.text span,.btn-pinterest.text span,.btn-vk.text span,.btn-yahoo.text span,.btn-behance.text span,.btn-dropbox.text span,.btn-reddit.text span,.btn-spotify.text span,.btn-vine.text span,.btn-foursquare.text span,.btn-vimeo.text span{margin-left:0 !important}.btn-facebook::before,.btn-twitter::before,.btn-linkedin::before,.btn-flickr::before,.btn-tumblr::before,.btn-xing::before,.btn-github::before,.btn-html5::before,.btn-openid::before,.btn-stack-overflow::before,.btn-youtube::before,.btn-css3::before,.btn-dribbble::before,.btn-google-plus::before,.btn-instagram::before,.btn-pinterest::before,.btn-vk::before,.btn-yahoo::before,.btn-behance::before,.btn-dropbox::before,.btn-reddit::before,.btn-spotify::before,.btn-vine::before,.btn-foursquare::before,.btn-vimeo::before{width:2.0625rem;height:2.0625rem;padding:.375rem 0;font-size:.875rem;line-height:1.5}.btn-facebook span,.btn-twitter span,.btn-linkedin span,.btn-flickr span,.btn-tumblr span,.btn-xing span,.btn-github span,.btn-html5 span,.btn-openid span,.btn-stack-overflow span,.btn-youtube span,.btn-css3 span,.btn-dribbble span,.btn-google-plus span,.btn-instagram span,.btn-pinterest span,.btn-vk span,.btn-yahoo span,.btn-behance span,.btn-dropbox span,.btn-reddit span,.btn-spotify span,.btn-vine span,.btn-foursquare span,.btn-vimeo span{margin-left:2.0625rem}.btn-facebook.icon,.btn-twitter.icon,.btn-linkedin.icon,.btn-flickr.icon,.btn-tumblr.icon,.btn-xing.icon,.btn-github.icon,.btn-html5.icon,.btn-openid.icon,.btn-stack-overflow.icon,.btn-youtube.icon,.btn-css3.icon,.btn-dribbble.icon,.btn-google-plus.icon,.btn-instagram.icon,.btn-pinterest.icon,.btn-vk.icon,.btn-yahoo.icon,.btn-behance.icon,.btn-dropbox.icon,.btn-reddit.icon,.btn-spotify.icon,.btn-vine.icon,.btn-foursquare.icon,.btn-vimeo.icon{width:2.0625rem;height:2.0625rem}.btn-facebook.btn-lg,.btn-group-lg>.btn-facebook.btn,.btn-twitter.btn-lg,.btn-group-lg>.btn-twitter.btn,.btn-linkedin.btn-lg,.btn-group-lg>.btn-linkedin.btn,.btn-flickr.btn-lg,.btn-group-lg>.btn-flickr.btn,.btn-tumblr.btn-lg,.btn-group-lg>.btn-tumblr.btn,.btn-xing.btn-lg,.btn-group-lg>.btn-xing.btn,.btn-github.btn-lg,.btn-group-lg>.btn-github.btn,.btn-html5.btn-lg,.btn-group-lg>.btn-html5.btn,.btn-openid.btn-lg,.btn-group-lg>.btn-openid.btn,.btn-stack-overflow.btn-lg,.btn-group-lg>.btn-stack-overflow.btn,.btn-youtube.btn-lg,.btn-group-lg>.btn-youtube.btn,.btn-css3.btn-lg,.btn-group-lg>.btn-css3.btn,.btn-dribbble.btn-lg,.btn-group-lg>.btn-dribbble.btn,.btn-google-plus.btn-lg,.btn-group-lg>.btn-google-plus.btn,.btn-instagram.btn-lg,.btn-group-lg>.btn-instagram.btn,.btn-pinterest.btn-lg,.btn-group-lg>.btn-pinterest.btn,.btn-vk.btn-lg,.btn-group-lg>.btn-vk.btn,.btn-yahoo.btn-lg,.btn-group-lg>.btn-yahoo.btn,.btn-behance.btn-lg,.btn-group-lg>.btn-behance.btn,.btn-dropbox.btn-lg,.btn-group-lg>.btn-dropbox.btn,.btn-reddit.btn-lg,.btn-group-lg>.btn-reddit.btn,.btn-spotify.btn-lg,.btn-group-lg>.btn-spotify.btn,.btn-vine.btn-lg,.btn-group-lg>.btn-vine.btn,.btn-foursquare.btn-lg,.btn-group-lg>.btn-foursquare.btn,.btn-vimeo.btn-lg,.btn-group-lg>.btn-vimeo.btn{padding:.5rem 1rem;font-size:1.09375rem;line-height:1.5;border:0}.btn-facebook.btn-lg::before,.btn-group-lg>.btn-facebook.btn::before,.btn-twitter.btn-lg::before,.btn-group-lg>.btn-twitter.btn::before,.btn-linkedin.btn-lg::before,.btn-group-lg>.btn-linkedin.btn::before,.btn-flickr.btn-lg::before,.btn-group-lg>.btn-flickr.btn::before,.btn-tumblr.btn-lg::before,.btn-group-lg>.btn-tumblr.btn::before,.btn-xing.btn-lg::before,.btn-group-lg>.btn-xing.btn::before,.btn-github.btn-lg::before,.btn-group-lg>.btn-github.btn::before,.btn-html5.btn-lg::before,.btn-group-lg>.btn-html5.btn::before,.btn-openid.btn-lg::before,.btn-group-lg>.btn-openid.btn::before,.btn-stack-overflow.btn-lg::before,.btn-group-lg>.btn-stack-overflow.btn::before,.btn-youtube.btn-lg::before,.btn-group-lg>.btn-youtube.btn::before,.btn-css3.btn-lg::before,.btn-group-lg>.btn-css3.btn::before,.btn-dribbble.btn-lg::before,.btn-group-lg>.btn-dribbble.btn::before,.btn-google-plus.btn-lg::before,.btn-group-lg>.btn-google-plus.btn::before,.btn-instagram.btn-lg::before,.btn-group-lg>.btn-instagram.btn::before,.btn-pinterest.btn-lg::before,.btn-group-lg>.btn-pinterest.btn::before,.btn-vk.btn-lg::before,.btn-group-lg>.btn-vk.btn::before,.btn-yahoo.btn-lg::before,.btn-group-lg>.btn-yahoo.btn::before,.btn-behance.btn-lg::before,.btn-group-lg>.btn-behance.btn::before,.btn-dropbox.btn-lg::before,.btn-group-lg>.btn-dropbox.btn::before,.btn-reddit.btn-lg::before,.btn-group-lg>.btn-reddit.btn::before,.btn-spotify.btn-lg::before,.btn-group-lg>.btn-spotify.btn::before,.btn-vine.btn-lg::before,.btn-group-lg>.btn-vine.btn::before,.btn-foursquare.btn-lg::before,.btn-group-lg>.btn-foursquare.btn::before,.btn-vimeo.btn-lg::before,.btn-group-lg>.btn-vimeo.btn::before{width:2.64062rem;height:2.64062rem;padding:.5rem 0;font-size:1.09375rem;line-height:1.5}.btn-facebook.btn-lg span,.btn-group-lg>.btn-facebook.btn span,.btn-twitter.btn-lg span,.btn-group-lg>.btn-twitter.btn span,.btn-linkedin.btn-lg span,.btn-group-lg>.btn-linkedin.btn span,.btn-flickr.btn-lg span,.btn-group-lg>.btn-flickr.btn span,.btn-tumblr.btn-lg span,.btn-group-lg>.btn-tumblr.btn span,.btn-xing.btn-lg span,.btn-group-lg>.btn-xing.btn span,.btn-github.btn-lg span,.btn-group-lg>.btn-github.btn span,.btn-html5.btn-lg span,.btn-group-lg>.btn-html5.btn span,.btn-openid.btn-lg span,.btn-group-lg>.btn-openid.btn span,.btn-stack-overflow.btn-lg span,.btn-group-lg>.btn-stack-overflow.btn span,.btn-youtube.btn-lg span,.btn-group-lg>.btn-youtube.btn span,.btn-css3.btn-lg span,.btn-group-lg>.btn-css3.btn span,.btn-dribbble.btn-lg span,.btn-group-lg>.btn-dribbble.btn span,.btn-google-plus.btn-lg span,.btn-group-lg>.btn-google-plus.btn span,.btn-instagram.btn-lg span,.btn-group-lg>.btn-instagram.btn span,.btn-pinterest.btn-lg span,.btn-group-lg>.btn-pinterest.btn span,.btn-vk.btn-lg span,.btn-group-lg>.btn-vk.btn span,.btn-yahoo.btn-lg span,.btn-group-lg>.btn-yahoo.btn span,.btn-behance.btn-lg span,.btn-group-lg>.btn-behance.btn span,.btn-dropbox.btn-lg span,.btn-group-lg>.btn-dropbox.btn span,.btn-reddit.btn-lg span,.btn-group-lg>.btn-reddit.btn span,.btn-spotify.btn-lg span,.btn-group-lg>.btn-spotify.btn span,.btn-vine.btn-lg span,.btn-group-lg>.btn-vine.btn span,.btn-foursquare.btn-lg span,.btn-group-lg>.btn-foursquare.btn span,.btn-vimeo.btn-lg span,.btn-group-lg>.btn-vimeo.btn span{margin-left:2.64062rem}.btn-facebook.btn-lg.icon,.btn-group-lg>.btn-facebook.icon.btn,.btn-twitter.btn-lg.icon,.btn-group-lg>.btn-twitter.icon.btn,.btn-linkedin.btn-lg.icon,.btn-group-lg>.btn-linkedin.icon.btn,.btn-flickr.btn-lg.icon,.btn-group-lg>.btn-flickr.icon.btn,.btn-tumblr.btn-lg.icon,.btn-group-lg>.btn-tumblr.icon.btn,.btn-xing.btn-lg.icon,.btn-group-lg>.btn-xing.icon.btn,.btn-github.btn-lg.icon,.btn-group-lg>.btn-github.icon.btn,.btn-html5.btn-lg.icon,.btn-group-lg>.btn-html5.icon.btn,.btn-openid.btn-lg.icon,.btn-group-lg>.btn-openid.icon.btn,.btn-stack-overflow.btn-lg.icon,.btn-group-lg>.btn-stack-overflow.icon.btn,.btn-youtube.btn-lg.icon,.btn-group-lg>.btn-youtube.icon.btn,.btn-css3.btn-lg.icon,.btn-group-lg>.btn-css3.icon.btn,.btn-dribbble.btn-lg.icon,.btn-group-lg>.btn-dribbble.icon.btn,.btn-google-plus.btn-lg.icon,.btn-group-lg>.btn-google-plus.icon.btn,.btn-instagram.btn-lg.icon,.btn-group-lg>.btn-instagram.icon.btn,.btn-pinterest.btn-lg.icon,.btn-group-lg>.btn-pinterest.icon.btn,.btn-vk.btn-lg.icon,.btn-group-lg>.btn-vk.icon.btn,.btn-yahoo.btn-lg.icon,.btn-group-lg>.btn-yahoo.icon.btn,.btn-behance.btn-lg.icon,.btn-group-lg>.btn-behance.icon.btn,.btn-dropbox.btn-lg.icon,.btn-group-lg>.btn-dropbox.icon.btn,.btn-reddit.btn-lg.icon,.btn-group-lg>.btn-reddit.icon.btn,.btn-spotify.btn-lg.icon,.btn-group-lg>.btn-spotify.icon.btn,.btn-vine.btn-lg.icon,.btn-group-lg>.btn-vine.icon.btn,.btn-foursquare.btn-lg.icon,.btn-group-lg>.btn-foursquare.icon.btn,.btn-vimeo.btn-lg.icon,.btn-group-lg>.btn-vimeo.icon.btn{width:2.64062rem;height:2.64062rem}.btn-facebook.btn-sm,.btn-group-sm>.btn-facebook.btn,.btn-twitter.btn-sm,.btn-group-sm>.btn-twitter.btn,.btn-linkedin.btn-sm,.btn-group-sm>.btn-linkedin.btn,.btn-flickr.btn-sm,.btn-group-sm>.btn-flickr.btn,.btn-tumblr.btn-sm,.btn-group-sm>.btn-tumblr.btn,.btn-xing.btn-sm,.btn-group-sm>.btn-xing.btn,.btn-github.btn-sm,.btn-group-sm>.btn-github.btn,.btn-html5.btn-sm,.btn-group-sm>.btn-html5.btn,.btn-openid.btn-sm,.btn-group-sm>.btn-openid.btn,.btn-stack-overflow.btn-sm,.btn-group-sm>.btn-stack-overflow.btn,.btn-youtube.btn-sm,.btn-group-sm>.btn-youtube.btn,.btn-css3.btn-sm,.btn-group-sm>.btn-css3.btn,.btn-dribbble.btn-sm,.btn-group-sm>.btn-dribbble.btn,.btn-google-plus.btn-sm,.btn-group-sm>.btn-google-plus.btn,.btn-instagram.btn-sm,.btn-group-sm>.btn-instagram.btn,.btn-pinterest.btn-sm,.btn-group-sm>.btn-pinterest.btn,.btn-vk.btn-sm,.btn-group-sm>.btn-vk.btn,.btn-yahoo.btn-sm,.btn-group-sm>.btn-yahoo.btn,.btn-behance.btn-sm,.btn-group-sm>.btn-behance.btn,.btn-dropbox.btn-sm,.btn-group-sm>.btn-dropbox.btn,.btn-reddit.btn-sm,.btn-group-sm>.btn-reddit.btn,.btn-spotify.btn-sm,.btn-group-sm>.btn-spotify.btn,.btn-vine.btn-sm,.btn-group-sm>.btn-vine.btn,.btn-foursquare.btn-sm,.btn-group-sm>.btn-foursquare.btn,.btn-vimeo.btn-sm,.btn-group-sm>.btn-vimeo.btn{padding:.25rem .5rem;font-size:.76562rem;line-height:1.5;border:0}.btn-facebook.btn-sm::before,.btn-group-sm>.btn-facebook.btn::before,.btn-twitter.btn-sm::before,.btn-group-sm>.btn-twitter.btn::before,.btn-linkedin.btn-sm::before,.btn-group-sm>.btn-linkedin.btn::before,.btn-flickr.btn-sm::before,.btn-group-sm>.btn-flickr.btn::before,.btn-tumblr.btn-sm::before,.btn-group-sm>.btn-tumblr.btn::before,.btn-xing.btn-sm::before,.btn-group-sm>.btn-xing.btn::before,.btn-github.btn-sm::before,.btn-group-sm>.btn-github.btn::before,.btn-html5.btn-sm::before,.btn-group-sm>.btn-html5.btn::before,.btn-openid.btn-sm::before,.btn-group-sm>.btn-openid.btn::before,.btn-stack-overflow.btn-sm::before,.btn-group-sm>.btn-stack-overflow.btn::before,.btn-youtube.btn-sm::before,.btn-group-sm>.btn-youtube.btn::before,.btn-css3.btn-sm::before,.btn-group-sm>.btn-css3.btn::before,.btn-dribbble.btn-sm::before,.btn-group-sm>.btn-dribbble.btn::before,.btn-google-plus.btn-sm::before,.btn-group-sm>.btn-google-plus.btn::before,.btn-instagram.btn-sm::before,.btn-group-sm>.btn-instagram.btn::before,.btn-pinterest.btn-sm::before,.btn-group-sm>.btn-pinterest.btn::before,.btn-vk.btn-sm::before,.btn-group-sm>.btn-vk.btn::before,.btn-yahoo.btn-sm::before,.btn-group-sm>.btn-yahoo.btn::before,.btn-behance.btn-sm::before,.btn-group-sm>.btn-behance.btn::before,.btn-dropbox.btn-sm::before,.btn-group-sm>.btn-dropbox.btn::before,.btn-reddit.btn-sm::before,.btn-group-sm>.btn-reddit.btn::before,.btn-spotify.btn-sm::before,.btn-group-sm>.btn-spotify.btn::before,.btn-vine.btn-sm::before,.btn-group-sm>.btn-vine.btn::before,.btn-foursquare.btn-sm::before,.btn-group-sm>.btn-foursquare.btn::before,.btn-vimeo.btn-sm::before,.btn-group-sm>.btn-vimeo.btn::before{width:1.64844rem;height:1.64844rem;padding:.25rem 0;font-size:.76562rem;line-height:1.5}.btn-facebook.btn-sm span,.btn-group-sm>.btn-facebook.btn span,.btn-twitter.btn-sm span,.btn-group-sm>.btn-twitter.btn span,.btn-linkedin.btn-sm span,.btn-group-sm>.btn-linkedin.btn span,.btn-flickr.btn-sm span,.btn-group-sm>.btn-flickr.btn span,.btn-tumblr.btn-sm span,.btn-group-sm>.btn-tumblr.btn span,.btn-xing.btn-sm span,.btn-group-sm>.btn-xing.btn span,.btn-github.btn-sm span,.btn-group-sm>.btn-github.btn span,.btn-html5.btn-sm span,.btn-group-sm>.btn-html5.btn span,.btn-openid.btn-sm span,.btn-group-sm>.btn-openid.btn span,.btn-stack-overflow.btn-sm span,.btn-group-sm>.btn-stack-overflow.btn span,.btn-youtube.btn-sm span,.btn-group-sm>.btn-youtube.btn span,.btn-css3.btn-sm span,.btn-group-sm>.btn-css3.btn span,.btn-dribbble.btn-sm span,.btn-group-sm>.btn-dribbble.btn span,.btn-google-plus.btn-sm span,.btn-group-sm>.btn-google-plus.btn span,.btn-instagram.btn-sm span,.btn-group-sm>.btn-instagram.btn span,.btn-pinterest.btn-sm span,.btn-group-sm>.btn-pinterest.btn span,.btn-vk.btn-sm span,.btn-group-sm>.btn-vk.btn span,.btn-yahoo.btn-sm span,.btn-group-sm>.btn-yahoo.btn span,.btn-behance.btn-sm span,.btn-group-sm>.btn-behance.btn span,.btn-dropbox.btn-sm span,.btn-group-sm>.btn-dropbox.btn span,.btn-reddit.btn-sm span,.btn-group-sm>.btn-reddit.btn span,.btn-spotify.btn-sm span,.btn-group-sm>.btn-spotify.btn span,.btn-vine.btn-sm span,.btn-group-sm>.btn-vine.btn span,.btn-foursquare.btn-sm span,.btn-group-sm>.btn-foursquare.btn span,.btn-vimeo.btn-sm span,.btn-group-sm>.btn-vimeo.btn span{margin-left:1.64844rem}.btn-facebook.btn-sm.icon,.btn-group-sm>.btn-facebook.icon.btn,.btn-twitter.btn-sm.icon,.btn-group-sm>.btn-twitter.icon.btn,.btn-linkedin.btn-sm.icon,.btn-group-sm>.btn-linkedin.icon.btn,.btn-flickr.btn-sm.icon,.btn-group-sm>.btn-flickr.icon.btn,.btn-tumblr.btn-sm.icon,.btn-group-sm>.btn-tumblr.icon.btn,.btn-xing.btn-sm.icon,.btn-group-sm>.btn-xing.icon.btn,.btn-github.btn-sm.icon,.btn-group-sm>.btn-github.icon.btn,.btn-html5.btn-sm.icon,.btn-group-sm>.btn-html5.icon.btn,.btn-openid.btn-sm.icon,.btn-group-sm>.btn-openid.icon.btn,.btn-stack-overflow.btn-sm.icon,.btn-group-sm>.btn-stack-overflow.icon.btn,.btn-youtube.btn-sm.icon,.btn-group-sm>.btn-youtube.icon.btn,.btn-css3.btn-sm.icon,.btn-group-sm>.btn-css3.icon.btn,.btn-dribbble.btn-sm.icon,.btn-group-sm>.btn-dribbble.icon.btn,.btn-google-plus.btn-sm.icon,.btn-group-sm>.btn-google-plus.icon.btn,.btn-instagram.btn-sm.icon,.btn-group-sm>.btn-instagram.icon.btn,.btn-pinterest.btn-sm.icon,.btn-group-sm>.btn-pinterest.icon.btn,.btn-vk.btn-sm.icon,.btn-group-sm>.btn-vk.icon.btn,.btn-yahoo.btn-sm.icon,.btn-group-sm>.btn-yahoo.icon.btn,.btn-behance.btn-sm.icon,.btn-group-sm>.btn-behance.icon.btn,.btn-dropbox.btn-sm.icon,.btn-group-sm>.btn-dropbox.icon.btn,.btn-reddit.btn-sm.icon,.btn-group-sm>.btn-reddit.icon.btn,.btn-spotify.btn-sm.icon,.btn-group-sm>.btn-spotify.icon.btn,.btn-vine.btn-sm.icon,.btn-group-sm>.btn-vine.icon.btn,.btn-foursquare.btn-sm.icon,.btn-group-sm>.btn-foursquare.icon.btn,.btn-vimeo.btn-sm.icon,.btn-group-sm>.btn-vimeo.icon.btn{width:1.64844rem;height:1.64844rem}.btn-facebook{background:#3b5998}.btn-facebook::before{content:\\\"\\\\f09a\\\";background:#344e86}.btn-facebook:hover{background:#344e86}.btn-facebook:hover::before{background:#2d4373}.btn-twitter{background:#00aced}.btn-twitter::before{content:\\\"\\\\f099\\\";background:#0099d4}.btn-twitter:hover{background:#0099d4}.btn-twitter:hover::before{background:#0087ba}.btn-linkedin{background:#4875b4}.btn-linkedin::before{content:\\\"\\\\f0e1\\\";background:#4169a2}.btn-linkedin:hover{background:#4169a2}.btn-linkedin:hover::before{background:#395d90}.btn-flickr{background:#ff0084}.btn-flickr::before{content:\\\"\\\\f16e\\\";background:#e60077}.btn-flickr:hover{background:#e60077}.btn-flickr:hover::before{background:#cc006a}.btn-tumblr{background:#32506d}.btn-tumblr::before{content:\\\"\\\\f173\\\";background:#2a435c}.btn-tumblr:hover{background:#2a435c}.btn-tumblr:hover::before{background:#22364a}.btn-xing{background:#026466}.btn-xing::before{content:\\\"\\\\f168\\\";background:#024b4d}.btn-xing:hover{background:#024b4d}.btn-xing:hover::before{background:#013334}.btn-github{background:#4183c4}.btn-github::before{content:\\\"\\\\f09b\\\";background:#3876b4}.btn-github:hover{background:#3876b4}.btn-github:hover::before{background:#3269a0}.btn-html5{background:#e34f26}.btn-html5::before{content:\\\"\\\\f13b\\\";background:#d4431b}.btn-html5:hover{background:#d4431b}.btn-html5:hover::before{background:#be3c18}.btn-openid{background:#f78c40}.btn-openid::before{content:\\\"\\\\f19b\\\";background:#f67d28}.btn-openid:hover{background:#f67d28}.btn-openid:hover::before{background:#f56f0f}.btn-stack-overflow{background:#fe7a15}.btn-stack-overflow::before{content:\\\"\\\\f16c\\\";background:#f86c01}.btn-stack-overflow:hover{background:#f86c01}.btn-stack-overflow:hover::before{background:#df6101}.btn-css3{background:#0170ba}.btn-css3::before{content:\\\"\\\\f13c\\\";background:#0161a1}.btn-css3:hover{background:#0161a1}.btn-css3:hover::before{background:#015187}.btn-youtube{background:#b00}.btn-youtube::before{content:\\\"\\\\f167\\\";background:#a20000}.btn-youtube:hover{background:#a20000}.btn-youtube:hover::before{background:#800}.btn-dribbble{background:#ea4c89}.btn-dribbble::before{content:\\\"\\\\f17d\\\";background:#e7357a}.btn-dribbble:hover{background:#e7357a}.btn-dribbble:hover::before{background:#e51e6b}.btn-google-plus{background:#d34836}.btn-google-plus::before{content:\\\"\\\\f0d5\\\";background:#c43d2b}.btn-google-plus:hover{background:#c43d2b}.btn-google-plus:hover::before{background:#b03626}.btn-instagram{background:#517fa4}.btn-instagram::before{content:\\\"\\\\f16d\\\";background:#497293}.btn-instagram:hover{background:#497293}.btn-instagram:hover::before{background:#406582}.btn-pinterest{background:#cb2027}.btn-pinterest::before{content:\\\"\\\\f0d2\\\";background:#b51d23}.btn-pinterest:hover{background:#b51d23}.btn-pinterest:hover::before{background:#9f191f}.btn-vk{background:#45668e}.btn-vk::before{content:\\\"\\\\f189\\\";background:#3d5a7d}.btn-vk:hover{background:#3d5a7d}.btn-vk:hover::before{background:#344d6c}.btn-yahoo{background:#400191}.btn-yahoo::before{content:\\\"\\\\f19e\\\";background:#350178}.btn-yahoo:hover{background:#350178}.btn-yahoo:hover::before{background:#2a015e}.btn-behance{background:#1769ff}.btn-behance::before{content:\\\"\\\\f1b4\\\";background:#0059fd}.btn-behance:hover{background:#0059fd}.btn-behance:hover::before{background:#0050e3}.btn-dropbox{background:#007ee5}.btn-dropbox::before{content:\\\"\\\\f16b\\\";background:#0070cc}.btn-dropbox:hover{background:#0070cc}.btn-dropbox:hover::before{background:#0062b2}.btn-reddit{background:#ff4500}.btn-reddit::before{content:\\\"\\\\f1a1\\\";background:#e63e00}.btn-reddit:hover{background:#e63e00}.btn-reddit:hover::before{background:#cc3700}.btn-spotify{background:#7ab800}.btn-spotify::before{content:\\\"\\\\f1bc\\\";background:#699f00}.btn-spotify:hover{background:#699f00}.btn-spotify:hover::before{background:#588500}.btn-vine{background:#00bf8f}.btn-vine::before{content:\\\"\\\\f1ca\\\";background:#00a67c}.btn-vine:hover{background:#00a67c}.btn-vine:hover::before{background:#008c69}.btn-foursquare{background:#1073af}.btn-foursquare::before{content:\\\"\\\\f180\\\";background:#0e6498}.btn-foursquare:hover{background:#0e6498}.btn-foursquare:hover::before{background:#0c5480}.btn-vimeo{background:#aad450}.btn-vimeo::before{content:\\\"\\\\f194\\\";background:#a0cf3c}.btn-vimeo:hover{background:#a0cf3c}.btn-vimeo:hover::before{background:#93c130}.callout{position:relative;padding:0 1rem;margin:1rem 0;border:0 solid #a4b7c1;border-left-width:.25rem}.callout .chart-wrapper{position:absolute;top:10px;left:50%;float:right;width:50%}.callout-bordered{border:1px solid #a4b7c1;border-left-width:.25rem}.callout code{border-radius:.25rem}.callout h4{margin-top:0;margin-bottom:.25rem}.callout p:last-child{margin-bottom:0}.callout+.callout{margin-top:-0.25rem}.callout-default{border-left-color:#536c79}.callout-default h4{color:#536c79}.callout-primary{border-left-color:#039}.callout-primary h4{color:#039}.callout-secondary{border-left-color:#a4b7c1}.callout-secondary h4{color:#a4b7c1}.callout-success{border-left-color:#4dbd74}.callout-success h4{color:#4dbd74}.callout-info{border-left-color:#63c2de}.callout-info h4{color:#63c2de}.callout-warning{border-left-color:#fc0}.callout-warning h4{color:#fc0}.callout-danger{border-left-color:#f86c6b}.callout-danger h4{color:#f86c6b}.callout-light{border-left-color:#f0f3f5}.callout-light h4{color:#f0f3f5}.callout-dark{border-left-color:#29363d}.callout-dark h4{color:#29363d}.card{margin-bottom:1.5rem}.card.bg-primary{border-color:#001e59}.card.bg-primary .card-header{background-color:#002e8a;border-color:#001e59}.card.bg-secondary{border-color:#7e99a7}.card.bg-secondary .card-header{background-color:#9bb0bb;border-color:#7e99a7}.card.bg-success{border-color:#379457}.card.bg-success .card-header{background-color:#44b76c;border-color:#379457}.card.bg-info{border-color:#2eadd3}.card.bg-info .card-header{background-color:#56bddb;border-color:#2eadd3}.card.bg-warning{border-color:#bf9900}.card.bg-warning .card-header{background-color:#f0c000;border-color:#bf9900}.card.bg-danger{border-color:#f5302e}.card.bg-danger .card-header{background-color:#f75d5c;border-color:#f5302e}.card.bg-light{border-color:#cad4dc}.card.bg-light .card-header{background-color:#e7ecef;border-color:#cad4dc}.card.bg-dark{border-color:#0f1417}.card.bg-dark .card-header{background-color:#232e34;border-color:#0f1417}.text-white .text-muted{color:rgba(255,255,255,0.6) !important}.card-header .icon-bg{display:inline-body;padding:.75rem 1.25rem !important;margin-top:-.75rem;margin-right:1.25rem;margin-bottom:-.75rem;margin-left:-1.25rem;line-height:inherit;color:#151b1e;vertical-align:bottom;background:rgba(0,0,0,0);border-right:1px solid #c2cfd6}.card-header .nav.nav-tabs{margin-top:-.75rem;margin-bottom:-.75rem;border-bottom:0}.card-header .nav.nav-tabs .nav-item{border-top:0}.card-header .nav.nav-tabs .nav-link,.card-header .nav.nav-tabs .navbar .dropdown-toggle,.navbar .card-header .nav.nav-tabs .dropdown-toggle{padding:.75rem .625rem;color:#536c79;border-top:0}.card-header .nav.nav-tabs .nav-link.active,.card-header .nav.nav-tabs .navbar .active.dropdown-toggle,.navbar .card-header .nav.nav-tabs .active.dropdown-toggle{color:#151b1e;background:#fff}.card-header.card-header-inverse{color:#fff}.card-header .btn{margin-top:-.375rem}.card-header .btn-sm,.card-header .btn-group-sm>.btn{margin-top:-.25rem}.card-header .btn-lg,.card-header .btn-group-lg>.btn{margin-top:-.5rem}.card-footer ul{display:table;width:100%;padding:0;margin:0;table-layout:fixed}.card-footer ul li{display:table-cell;padding:0 1.25rem;text-align:center}[class*=\\\"card-outline-\\\"] .card-body,[class*=\\\"card-outline-\\\"] .card-block{background:#fff !important}[class*=\\\"card-outline-\\\"].card-outline-top{border-top-width:2px;border-right-color:#a4b7c1;border-bottom-color:#a4b7c1;border-left-color:#a4b7c1}.card-accent-primary{border-top-width:2px;border-top-color:#039}.card-accent-secondary{border-top-width:2px;border-top-color:#a4b7c1}.card-accent-success{border-top-width:2px;border-top-color:#4dbd74}.card-accent-info{border-top-width:2px;border-top-color:#63c2de}.card-accent-warning{border-top-width:2px;border-top-color:#fc0}.card-accent-danger{border-top-width:2px;border-top-color:#f86c6b}.card-accent-light{border-top-width:2px;border-top-color:#f0f3f5}.card-accent-dark{border-top-width:2px;border-top-color:#29363d}.card-header>i{margin-right:.5rem}.card-header .card-actions{position:absolute;top:0;right:0}.card-header .card-actions a,.card-header .card-actions button{display:block;float:left;width:50px;padding:.75rem 0;margin:0 !important;color:#151b1e;text-align:center;background:transparent;border:0;border-left:1px solid #a4b7c1;box-shadow:0}.card-header .card-actions a:hover,.card-header .card-actions button:hover{text-decoration:none}.card-header .card-actions a [class^=\\\"icon-\\\"],.card-header .card-actions a [class*=\\\" icon-\\\"],.card-header .card-actions button [class^=\\\"icon-\\\"],.card-header .card-actions button [class*=\\\" icon-\\\"]{display:inline-body;vertical-align:middle}.card-header .card-actions a i,.card-header .card-actions button i{display:inline-body;transition:.4s}.card-header .card-actions a .r180,.card-header .card-actions button .r180{transform:rotate(180deg)}.card-header .card-actions .input-group{width:230px;margin:6px}.card-header .card-actions .input-group .input-group-addon{background:#fff}.card-header .card-actions .input-group input{border-left:0}.card-full{margin-top:-1rem;margin-right:-15px;margin-left:-15px;border:0;border-bottom:1px solid #a4b7c1}@media (min-width: 576px){.card-columns.cols-2{column-count:2}}.card.drag,.card .drag{cursor:move}.card-placeholder{background:rgba(0,0,0,0.025);border:1px dashed #a4b7c1}.chart-wrapper canvas{width:100% !important}base-chart.chart{display:block !important}.dropdown-item{position:relative;padding:10px 20px;border-bottom:1px solid #c2cfd6}.dropdown-item:last-child{border-bottom:0}.dropdown-item i{display:inline-block;width:20px;margin-right:10px;margin-left:-10px;color:#c2cfd6;text-align:center}.dropdown-item .badge{position:absolute;right:10px;margin-top:2px}.dropdown-header{padding:8px 20px;background:#f0f3f5;border-bottom:1px solid #c2cfd6}.dropdown-header .btn{margin-top:-7px;color:#536c79}.dropdown-header .btn:hover{color:#151b1e}.dropdown-header .btn.pull-right{margin-right:-20px}.dropdown-menu-lg{width:250px}.app-header .navbar-nav .dropdown-menu{position:absolute}.app-header .navbar-nav .dropdown-menu-right{right:0;left:auto}.app-header .navbar-nav .dropdown-menu-left{right:auto;left:0}.app-footer{display:flex;flex-wrap:wrap;align-items:center;padding:0 1rem;color:#151b1e;background:#f0f3f5;border-top:1px solid #a4b7c1}.row.row-equal{padding-right:7.5px;padding-left:7.5px;margin-right:-15px;margin-left:-15px}.row.row-equal [class*=\\\"col-\\\"]{padding-right:7.5px;padding-left:7.5px}.main .container-fluid,.main .container-sm,.main .container-md,.main .container-lg,.main .container-xl{padding:0 30px}.input-group-addon,.input-group-btn{min-width:40px;white-space:nowrap;vertical-align:middle}#loading-bar,#loading-bar-spinner{-webkit-pointer-events:none;pointer-events:none;-moz-transition:350ms linear all;-o-transition:350ms linear all;-webkit-transition:350ms linear all;transition:350ms linear all}#loading-bar.ng-enter,#loading-bar.ng-leave.ng-leave-active,#loading-bar-spinner.ng-enter,#loading-bar-spinner.ng-leave.ng-leave-active{opacity:0}#loading-bar.ng-enter.ng-enter-active,#loading-bar.ng-leave,#loading-bar-spinner.ng-enter.ng-enter-active,#loading-bar-spinner.ng-leave{opacity:1}#loading-bar .bar{position:fixed;top:0;left:0;z-index:20002;width:100%;height:2px;background:#039;border-top-right-radius:1px;border-bottom-right-radius:1px;-moz-transition:width 350ms;-o-transition:width 350ms;-webkit-transition:width 350ms;transition:width 350ms}#loading-bar .peg{position:absolute;top:0;right:0;width:70px;height:2px;-moz-border-radius:100%;-webkit-border-radius:100%;border-radius:100%;-moz-box-shadow:#29d 1px 0 6px 1px;-ms-box-shadow:#29d 1px 0 6px 1px;-webkit-box-shadow:#29d 1px 0 6px 1px;box-shadow:#29d 1px 0 6px 1px;opacity:.45}#loading-bar-spinner{position:fixed;top:10px;left:10px;z-index:10002;display:block}#loading-bar-spinner .spinner-icon{width:14px;height:14px;border:solid 2px transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;-moz-animation:loading-bar-spinner 400ms linear infinite;-ms-animation:loading-bar-spinner 400ms linear infinite;-o-animation:loading-bar-spinner 400ms linear infinite;-webkit-animation:loading-bar-spinner 400ms linear infinite;animation:loading-bar-spinner 400ms linear infinite}@-webkit-keyframes loading-bar-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes loading-bar-spinner{0%{-moz-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-o-keyframes loading-bar-spinner{0%{-o-transform:rotate(0deg);transform:rotate(0deg)}100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes loading-bar-spinner{0%{-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loading-bar-spinner{0%{transform:rotate(0deg);transform:rotate(0deg)}100%{transform:rotate(360deg);transform:rotate(360deg)}}.pace{-webkit-pointer-events:none;pointer-events:none;-moz-user-select:none;-webkit-user-select:none;user-select:none}.pace-inactive{display:none}.pace .pace-progress{position:fixed;top:0;right:100%;z-index:2000;width:100%;height:2px;background:#039}.modal-primary .modal-content{border-color:#039}.modal-primary .modal-header{color:#fff;background-color:#039}.modal-secondary .modal-content{border-color:#a4b7c1}.modal-secondary .modal-header{color:#fff;background-color:#a4b7c1}.modal-success .modal-content{border-color:#4dbd74}.modal-success .modal-header{color:#fff;background-color:#4dbd74}.modal-info .modal-content{border-color:#63c2de}.modal-info .modal-header{color:#fff;background-color:#63c2de}.modal-warning .modal-content{border-color:#fc0}.modal-warning .modal-header{color:#fff;background-color:#fc0}.modal-danger .modal-content{border-color:#f86c6b}.modal-danger .modal-header{color:#fff;background-color:#f86c6b}.modal-light .modal-content{border-color:#f0f3f5}.modal-light .modal-header{color:#fff;background-color:#f0f3f5}.modal-dark .modal-content{border-color:#29363d}.modal-dark .modal-header{color:#fff;background-color:#29363d}.nav-tabs .nav-link,.nav-tabs .navbar .dropdown-toggle,.navbar .nav-tabs .dropdown-toggle{color:#536c79}.nav-tabs .nav-link.active,.nav-tabs .navbar .active.dropdown-toggle,.navbar .nav-tabs .active.dropdown-toggle{color:#29363d;background:#fff;border-color:#a4b7c1;border-bottom-color:#fff}.nav-tabs .nav-link.active:focus,.nav-tabs .navbar .active.dropdown-toggle:focus,.navbar .nav-tabs .active.dropdown-toggle:focus{background:#fff;border-color:#a4b7c1;border-bottom-color:#fff}.tab-content{margin-top:-1px;background:#fff;border:1px solid #a4b7c1}.tab-content .tab-pane{padding:1rem}.card-block .tab-content{margin-top:0;border:0}.app-header.navbar{position:relative;flex-direction:row;height:55px;padding:0;margin:0;background-color:#fff;border-bottom:1px solid #a4b7c1}.app-header.navbar .navbar-brand{display:inline-block;width:155px;height:55px;padding:.5rem 1rem;margin-right:0;background-color:#fff;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");background-repeat:no-repeat;background-position:center center;background-size:150px auto;border-bottom:1px solid #a4b7c1}.app-header.navbar .navbar-toggler{min-width:50px;padding:.25rem 0}.app-header.navbar .navbar-toggler:hover .navbar-toggler-icon{background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='%2329363d' stroke-width='2.25' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\\\")}.app-header.navbar .navbar-toggler-icon{height:23px;background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='%23536c79' stroke-width='2.25' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\\\")}.app-header.navbar .navbar-nav{flex-direction:row;align-items:center}.app-header.navbar .nav-item{position:relative;min-width:50px;margin:0 !important;text-align:center}.app-header.navbar .nav-item button{margin:0 auto}.app-header.navbar .nav-item .nav-link,.app-header.navbar .nav-item .dropdown-toggle{padding-top:0;padding-bottom:0;background:0;border:0}.app-header.navbar .nav-item .nav-link .badge,.app-header.navbar .nav-item .dropdown-toggle .badge{position:absolute;top:50%;left:50%;margin-top:-16px;margin-left:0}.app-header.navbar .nav-item .nav-link>.img-avatar,.app-header.navbar .nav-item .dropdown-toggle>.img-avatar{height:35px;margin:0 10px}.app-header.navbar .dropdown-menu{padding-bottom:0;line-height:1.5}.app-header.navbar .dropdown-item{min-width:180px}.navbar-brand{color:#29363d}.navbar-brand:hover,.navbar-brand:focus{color:#29363d}.navbar-nav .nav-link,.navbar-nav .navbar .dropdown-toggle,.navbar .navbar-nav .dropdown-toggle{color:#536c79}.navbar-nav .nav-link:hover,.navbar-nav .navbar .dropdown-toggle:hover,.navbar .navbar-nav .dropdown-toggle:hover,.navbar-nav .nav-link:focus,.navbar-nav .navbar .dropdown-toggle:focus,.navbar .navbar-nav .dropdown-toggle:focus{color:#29363d}.navbar-nav .open>.nav-link,.navbar-nav .navbar .open>.dropdown-toggle,.navbar .navbar-nav .open>.dropdown-toggle,.navbar-nav .open>.nav-link:hover,.navbar-nav .navbar .open>.dropdown-toggle:hover,.navbar .navbar-nav .open>.dropdown-toggle:hover,.navbar-nav .open>.nav-link:focus,.navbar-nav .navbar .open>.dropdown-toggle:focus,.navbar .navbar-nav .open>.dropdown-toggle:focus,.navbar-nav .active>.nav-link,.navbar-nav .navbar .active>.dropdown-toggle,.navbar .navbar-nav .active>.dropdown-toggle,.navbar-nav .active>.nav-link:hover,.navbar-nav .navbar .active>.dropdown-toggle:hover,.navbar .navbar-nav .active>.dropdown-toggle:hover,.navbar-nav .active>.nav-link:focus,.navbar-nav .navbar .active>.dropdown-toggle:focus,.navbar .navbar-nav .active>.dropdown-toggle:focus,.navbar-nav .nav-link.open,.navbar-nav .navbar .open.dropdown-toggle,.navbar .navbar-nav .open.dropdown-toggle,.navbar-nav .nav-link.open:hover,.navbar-nav .navbar .open.dropdown-toggle:hover,.navbar .navbar-nav .open.dropdown-toggle:hover,.navbar-nav .nav-link.open:focus,.navbar-nav .navbar .open.dropdown-toggle:focus,.navbar .navbar-nav .open.dropdown-toggle:focus,.navbar-nav .nav-link.active,.navbar-nav .navbar .active.dropdown-toggle,.navbar .navbar-nav .active.dropdown-toggle,.navbar-nav .nav-link.active:hover,.navbar-nav .navbar .active.dropdown-toggle:hover,.navbar .navbar-nav .active.dropdown-toggle:hover,.navbar-nav .nav-link.active:focus,.navbar-nav .navbar .active.dropdown-toggle:focus,.navbar .navbar-nav .active.dropdown-toggle:focus{color:#29363d}.navbar-divider{background-color:rgba(0,0,0,0.075)}@media (min-width: 992px){.brand-minimized .app-header.navbar .navbar-brand{width:50px;background-color:#fff;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");background-size:24px;border-bottom:1px solid #a4b7c1}}.progress-xs{height:4px}.progress-sm{height:8px}.progress-white{background-color:rgba(255,255,255,0.2) !important}.progress-white .progress-bar{background-color:#fff}.sidebar{display:flex;flex-direction:column;padding:0;color:#fff;background:#29363d}.sidebar .sidebar-close{position:absolute;right:0;display:none;padding:0 1rem;font-size:24px;font-weight:800;line-height:55px;color:#fff;background:0;border:0;opacity:.8}.sidebar .sidebar-close:hover{opacity:1}.sidebar .sidebar-header{flex:0 0 auto;padding:.75rem 1rem;text-align:center;background:rgba(0,0,0,0.2)}.sidebar .sidebar-form .form-control{color:#fff;background:#151b1f;border:0}.sidebar .sidebar-form .form-control::placeholder{color:rgba(255,255,255,0.7)}.sidebar .sidebar-nav{position:relative;flex:1;overflow-x:hidden;overflow-y:auto;-ms-overflow-style:-ms-autohiding-scrollbar;width:200px}.sidebar .sidebar-nav::-webkit-scrollbar{position:absolute;width:10px;margin-left:-10px;-webkit-appearance:none}.sidebar .sidebar-nav::-webkit-scrollbar-track{background-color:#33444c;border-right:1px solid #1f292e;border-left:1px solid #1f292e}.sidebar .sidebar-nav::-webkit-scrollbar-thumb{height:50px;background-color:#151b1f;background-clip:content-box;border-color:transparent;border-style:solid;border-width:1px 2px}.sidebar .nav{width:200px;flex-direction:column;min-height:100%}.sidebar .nav-title{padding:.75rem 1rem;font-size:11px;font-weight:600;color:#c2cfd6;text-transform:uppercase}.sidebar .nav-divider,.sidebar .divider{height:10px}.sidebar .nav-item{position:relative;margin:0;transition:background .3s ease-in-out}.sidebar .nav-dropdown-items{max-height:0;padding:0;margin:0;overflow-y:hidden;transition:max-height .3s ease-in-out}.sidebar .nav-dropdown-items .nav-item{padding:0;list-style:none}.sidebar .nav-link,.sidebar .navbar .dropdown-toggle,.navbar .sidebar .dropdown-toggle{display:block;padding:.75rem 1rem;color:#fff;text-decoration:none;background:rgba(0,0,0,0)}.sidebar .nav-link i,.sidebar .navbar .dropdown-toggle i,.navbar .sidebar .dropdown-toggle i{display:inline-block;width:20px;margin:0 .5rem 0 0;font-size:14px;color:#536c79;text-align:center}.sidebar .nav-link .badge,.sidebar .navbar .dropdown-toggle .badge,.navbar .sidebar .dropdown-toggle .badge{float:right;margin-top:2px}.sidebar .nav-link.active,.sidebar .navbar .active.dropdown-toggle,.navbar .sidebar .active.dropdown-toggle{color:#fff;background:#33444c}.sidebar .nav-link.active i,.sidebar .navbar .active.dropdown-toggle i,.navbar .sidebar .active.dropdown-toggle i{color:#039}.sidebar .nav-link:hover,.sidebar .navbar .dropdown-toggle:hover,.navbar .sidebar .dropdown-toggle:hover{color:#fff;background:#039}.sidebar .nav-link:hover i,.sidebar .navbar .dropdown-toggle:hover i,.navbar .sidebar .dropdown-toggle:hover i{color:#fff}.sidebar .nav-link:hover.nav-dropdown-toggle::before,.sidebar .navbar .dropdown-toggle:hover.nav-dropdown-toggle::before,.navbar .sidebar .dropdown-toggle:hover.nav-dropdown-toggle::before{background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='%23fff' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E\\\")}.sidebar .nav-link.nav-link-primary,.sidebar .navbar .nav-link-primary.dropdown-toggle,.navbar .sidebar .nav-link-primary.dropdown-toggle{background:#039}.sidebar .nav-link.nav-link-primary i,.sidebar .navbar .nav-link-primary.dropdown-toggle i,.navbar .sidebar .nav-link-primary.dropdown-toggle i{color:rgba(255,255,255,0.7)}.sidebar .nav-link.nav-link-primary:hover,.sidebar .navbar .nav-link-primary.dropdown-toggle:hover,.navbar .sidebar .nav-link-primary.dropdown-toggle:hover{background:#002b80 !important}.sidebar .nav-link.nav-link-primary:hover i,.sidebar .navbar .nav-link-primary.dropdown-toggle:hover i,.navbar .sidebar .nav-link-primary.dropdown-toggle:hover i{color:#fff}.sidebar .nav-link.nav-link-secondary,.sidebar .navbar .nav-link-secondary.dropdown-toggle,.navbar .sidebar .nav-link-secondary.dropdown-toggle{background:#a4b7c1}.sidebar .nav-link.nav-link-secondary i,.sidebar .navbar .nav-link-secondary.dropdown-toggle i,.navbar .sidebar .nav-link-secondary.dropdown-toggle i{color:rgba(255,255,255,0.7)}.sidebar .nav-link.nav-link-secondary:hover,.sidebar .navbar .nav-link-secondary.dropdown-toggle:hover,.navbar .sidebar .nav-link-secondary.dropdown-toggle:hover{background:#95abb7 !important}.sidebar .nav-link.nav-link-secondary:hover i,.sidebar .navbar .nav-link-secondary.dropdown-toggle:hover i,.navbar .sidebar .nav-link-secondary.dropdown-toggle:hover i{color:#fff}.sidebar .nav-link.nav-link-success,.sidebar .navbar .nav-link-success.dropdown-toggle,.navbar .sidebar .nav-link-success.dropdown-toggle{background:#4dbd74}.sidebar .nav-link.nav-link-success i,.sidebar .navbar .nav-link-success.dropdown-toggle i,.navbar .sidebar .nav-link-success.dropdown-toggle i{color:rgba(255,255,255,0.7)}.sidebar .nav-link.nav-link-success:hover,.sidebar .navbar .nav-link-success.dropdown-toggle:hover,.navbar .sidebar .nav-link-success.dropdown-toggle:hover{background:#41af67 !important}.sidebar .nav-link.nav-link-success:hover i,.sidebar .navbar .nav-link-success.dropdown-toggle:hover i,.navbar .sidebar .nav-link-success.dropdown-toggle:hover i{color:#fff}.sidebar .nav-link.nav-link-info,.sidebar .navbar .nav-link-info.dropdown-toggle,.navbar .sidebar .nav-link-info.dropdown-toggle{background:#63c2de}.sidebar .nav-link.nav-link-info i,.sidebar .navbar .nav-link-info.dropdown-toggle i,.navbar .sidebar .nav-link-info.dropdown-toggle i{color:rgba(255,255,255,0.7)}.sidebar .nav-link.nav-link-info:hover,.sidebar .navbar .nav-link-info.dropdown-toggle:hover,.navbar .sidebar .nav-link-info.dropdown-toggle:hover{background:#4ebada !important}.sidebar .nav-link.nav-link-info:hover i,.sidebar .navbar .nav-link-info.dropdown-toggle:hover i,.navbar .sidebar .nav-link-info.dropdown-toggle:hover i{color:#fff}.sidebar .nav-link.nav-link-warning,.sidebar .navbar .nav-link-warning.dropdown-toggle,.navbar .sidebar .nav-link-warning.dropdown-toggle{background:#fc0}.sidebar .nav-link.nav-link-warning i,.sidebar .navbar .nav-link-warning.dropdown-toggle i,.navbar .sidebar .nav-link-warning.dropdown-toggle i{color:rgba(255,255,255,0.7)}.sidebar .nav-link.nav-link-warning:hover,.sidebar .navbar .nav-link-warning.dropdown-toggle:hover,.navbar .sidebar .nav-link-warning.dropdown-toggle:hover{background:#e6b800 !important}.sidebar .nav-link.nav-link-warning:hover i,.sidebar .navbar .nav-link-warning.dropdown-toggle:hover i,.navbar .sidebar .nav-link-warning.dropdown-toggle:hover i{color:#fff}.sidebar .nav-link.nav-link-danger,.sidebar .navbar .nav-link-danger.dropdown-toggle,.navbar .sidebar .nav-link-danger.dropdown-toggle{background:#f86c6b}.sidebar .nav-link.nav-link-danger i,.sidebar .navbar .nav-link-danger.dropdown-toggle i,.navbar .sidebar .nav-link-danger.dropdown-toggle i{color:rgba(255,255,255,0.7)}.sidebar .nav-link.nav-link-danger:hover,.sidebar .navbar .nav-link-danger.dropdown-toggle:hover,.navbar .sidebar .nav-link-danger.dropdown-toggle:hover{background:#f75453 !important}.sidebar .nav-link.nav-link-danger:hover i,.sidebar .navbar .nav-link-danger.dropdown-toggle:hover i,.navbar .sidebar .nav-link-danger.dropdown-toggle:hover i{color:#fff}.sidebar .nav-link.nav-link-light,.sidebar .navbar .nav-link-light.dropdown-toggle,.navbar .sidebar .nav-link-light.dropdown-toggle{background:#f0f3f5}.sidebar .nav-link.nav-link-light i,.sidebar .navbar .nav-link-light.dropdown-toggle i,.navbar .sidebar .nav-link-light.dropdown-toggle i{color:rgba(255,255,255,0.7)}.sidebar .nav-link.nav-link-light:hover,.sidebar .navbar .nav-link-light.dropdown-toggle:hover,.navbar .sidebar .nav-link-light.dropdown-toggle:hover{background:#e1e7eb !important}.sidebar .nav-link.nav-link-light:hover i,.sidebar .navbar .nav-link-light.dropdown-toggle:hover i,.navbar .sidebar .nav-link-light.dropdown-toggle:hover i{color:#fff}.sidebar .nav-link.nav-link-dark,.sidebar .navbar .nav-link-dark.dropdown-toggle,.navbar .sidebar .nav-link-dark.dropdown-toggle{background:#29363d}.sidebar .nav-link.nav-link-dark i,.sidebar .navbar .nav-link-dark.dropdown-toggle i,.navbar .sidebar .nav-link-dark.dropdown-toggle i{color:rgba(255,255,255,0.7)}.sidebar .nav-link.nav-link-dark:hover,.sidebar .navbar .nav-link-dark.dropdown-toggle:hover,.navbar .sidebar .nav-link-dark.dropdown-toggle:hover{background:#1f292e !important}.sidebar .nav-link.nav-link-dark:hover i,.sidebar .navbar .nav-link-dark.dropdown-toggle:hover i,.navbar .sidebar .nav-link-dark.dropdown-toggle:hover i{color:#fff}.sidebar .nav-dropdown-toggle{position:relative}.sidebar .nav-dropdown-toggle::before{position:absolute;top:50%;right:1rem;display:block;width:8px;height:8px;padding:0;margin-top:-4px;content:\\\"\\\";background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='%23536c79' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E\\\");background-repeat:no-repeat;background-position:center;transition:transform .3s}.sidebar .nav-dropdown.open{background:rgba(0,0,0,0.2)}.sidebar .nav-dropdown.open>.nav-dropdown-items{max-height:1000px}.sidebar .nav-dropdown.open .nav-link,.sidebar .nav-dropdown.open .navbar .dropdown-toggle,.navbar .sidebar .nav-dropdown.open .dropdown-toggle{color:#fff;border-left:0 !important}.sidebar .nav-dropdown.open>.nav-link.nav-dropdown-toggle::before,.sidebar .navbar .nav-dropdown.open>.nav-dropdown-toggle.dropdown-toggle::before,.navbar .sidebar .nav-dropdown.open>.nav-dropdown-toggle.dropdown-toggle::before{transform:rotate(-90deg)}.sidebar .nav-dropdown.open .nav-dropdown.open{border-left:0}.sidebar .nav-label{display:block;padding:.09375rem 1rem;color:#c2cfd6}.sidebar .nav-label:hover{color:#fff;text-decoration:none}.sidebar .nav-label i{width:20px;margin:-3px .5rem 0 0;font-size:10px;color:#536c79;text-align:center;vertical-align:middle}.sidebar .progress{background-color:#485f6b !important}.sidebar .sidebar-footer{flex:0 0 auto;padding:.75rem 1rem;background:rgba(0,0,0,0.2)}.sidebar .sidebar-minimizer{position:relative;flex:0 0 50px;background-color:rgba(0,0,0,0.2);border:0}.sidebar .sidebar-minimizer::before{position:absolute;top:0;right:0;width:50px;height:50px;content:\\\"\\\";background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='%23536c79' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E\\\");background-repeat:no-repeat;background-position:center;background-size:12.5px;transition:.3s}.sidebar .sidebar-minimizer:focus,.sidebar .sidebar-minimizer.focus{outline:0}.sidebar .sidebar-minimizer:hover{background-color:rgba(0,0,0,0.3)}.sidebar .sidebar-minimizer:hover::before{background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='%23fff' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E\\\")}@media (min-width: 992px){.sidebar-compact .sidebar .sidebar-nav{width:150px}.sidebar-compact .sidebar .nav{width:150px}.sidebar-compact .sidebar .nav .nav-title{text-align:center}.sidebar-compact .sidebar .nav .nav-item{width:150px;border-left:0 !important}.sidebar-compact .sidebar .nav .nav-item .nav-link,.sidebar-compact .sidebar .nav .nav-item .navbar .dropdown-toggle,.navbar .sidebar-compact .sidebar .nav .nav-item .dropdown-toggle{text-align:center}.sidebar-compact .sidebar .nav .nav-item .nav-link i,.sidebar-compact .sidebar .nav .nav-item .navbar .dropdown-toggle i,.navbar .sidebar-compact .sidebar .nav .nav-item .dropdown-toggle i{display:block;width:100%;margin:.25rem 0;font-size:24px}.sidebar-compact .sidebar .nav .nav-item .nav-link .badge,.sidebar-compact .sidebar .nav .nav-item .navbar .dropdown-toggle .badge,.navbar .sidebar-compact .sidebar .nav .nav-item .dropdown-toggle .badge{position:absolute;top:18px;right:10px}.sidebar-compact .sidebar .nav .nav-item .nav-link.nav-dropdown-toggle::before,.sidebar-compact .sidebar .nav .nav-item .navbar .nav-dropdown-toggle.dropdown-toggle::before,.navbar .sidebar-compact .sidebar .nav .nav-item .nav-dropdown-toggle.dropdown-toggle::before{top:30px}.sidebar-minimized .hidden-cn{display:none}.sidebar-minimized .sidebar{z-index:1019}.sidebar-minimized .sidebar .sidebar-nav{overflow:visible;width:50px}.sidebar-minimized .sidebar .nav{width:50px}.sidebar-minimized .sidebar .nav-divider,.sidebar-minimized .sidebar .divider,.sidebar-minimized .sidebar .nav-title,.sidebar-minimized .sidebar .sidebar-footer,.sidebar-minimized .sidebar .sidebar-form,.sidebar-minimized .sidebar .sidebar-header{display:none}.sidebar-minimized .sidebar .sidebar-minimizer::before{width:100%;transform:rotate(-180deg)}.sidebar-minimized .sidebar .nav-item{width:50px;overflow:hidden;border-left:0 !important}.sidebar-minimized .sidebar .nav-item:hover{width:250px;overflow:visible}.sidebar-minimized .sidebar .nav-item:hover>.nav-link,.sidebar-minimized .sidebar .navbar .nav-item:hover>.dropdown-toggle,.navbar .sidebar-minimized .sidebar .nav-item:hover>.dropdown-toggle{background:#039}.sidebar-minimized .sidebar .nav-item:hover>.nav-link i,.sidebar-minimized .sidebar .navbar .nav-item:hover>.dropdown-toggle i,.navbar .sidebar-minimized .sidebar .nav-item:hover>.dropdown-toggle i{color:#fff}.sidebar-minimized .sidebar .nav-link,.sidebar-minimized .sidebar .navbar .dropdown-toggle,.navbar .sidebar-minimized .sidebar .dropdown-toggle{position:relative;padding-left:0;margin:0;white-space:nowrap;border-left:0 !important}.sidebar-minimized .sidebar .nav-link i,.sidebar-minimized .sidebar .navbar .dropdown-toggle i,.navbar .sidebar-minimized .sidebar .dropdown-toggle i{display:block;float:left;width:50px;font-size:18px}.sidebar-minimized .sidebar .nav-link .badge,.sidebar-minimized .sidebar .navbar .dropdown-toggle .badge,.navbar .sidebar-minimized .sidebar .dropdown-toggle .badge{position:absolute;right:15px;display:none}.sidebar-minimized .sidebar .nav-link:hover,.sidebar-minimized .sidebar .navbar .dropdown-toggle:hover,.navbar .sidebar-minimized .sidebar .dropdown-toggle:hover{width:250px;background:#039}.sidebar-minimized .sidebar .nav-link:hover .badge,.sidebar-minimized .sidebar .navbar .dropdown-toggle:hover .badge,.navbar .sidebar-minimized .sidebar .dropdown-toggle:hover .badge{display:inline}.sidebar-minimized .sidebar .nav-link.nav-dropdown-toggle::before,.sidebar-minimized .sidebar .navbar .nav-dropdown-toggle.dropdown-toggle::before,.navbar .sidebar-minimized .sidebar .nav-dropdown-toggle.dropdown-toggle::before{display:none}.sidebar-minimized .sidebar .nav-dropdown-items .nav-item{width:200px}.sidebar-minimized .sidebar .nav-dropdown-items .nav-item .nav-link,.sidebar-minimized .sidebar .nav-dropdown-items .nav-item .navbar .dropdown-toggle,.navbar .sidebar-minimized .sidebar .nav-dropdown-items .nav-item .dropdown-toggle{width:200px}.sidebar-minimized .sidebar .nav>.nav-dropdown>.nav-dropdown-items{display:none;max-height:1000px;background:#29363d}.sidebar-minimized .sidebar .nav>.nav-dropdown:hover{background:#039}.sidebar-minimized .sidebar .nav>.nav-dropdown:hover>.nav-dropdown-items{position:absolute;left:50px;display:inline}}.switch.switch-default{position:relative;display:inline-block;vertical-align:top;width:40px;height:24px;background-color:transparent;cursor:pointer}.switch.switch-default .switch-input{position:absolute;top:0;left:0;opacity:0}.switch.switch-default .switch-label{position:relative;display:block;height:inherit;font-size:10px;font-weight:600;text-transform:uppercase;background-color:#fff;border:1px solid #a4b7c1;border-radius:2px;transition:opacity background .15s ease-out}.switch.switch-default .switch-input:checked ~ .switch-label::before{opacity:0}.switch.switch-default .switch-input:checked ~ .switch-label::after{opacity:1}.switch.switch-default .switch-handle{position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border:1px solid #a4b7c1;border-radius:1px;transition:left .15s ease-out}.switch.switch-default .switch-input:checked ~ .switch-handle{left:18px}.switch.switch-default.switch-lg{width:48px;height:28px}.switch.switch-default.switch-lg .switch-label{font-size:12px}.switch.switch-default.switch-lg .switch-handle{width:24px;height:24px}.switch.switch-default.switch-lg .switch-input:checked ~ .switch-handle{left:22px}.switch.switch-default.switch-sm{width:32px;height:20px}.switch.switch-default.switch-sm .switch-label{font-size:8px}.switch.switch-default.switch-sm .switch-handle{width:16px;height:16px}.switch.switch-default.switch-sm .switch-input:checked ~ .switch-handle{left:14px}.switch.switch-default.switch-xs{width:24px;height:16px}.switch.switch-default.switch-xs .switch-label{font-size:7px}.switch.switch-default.switch-xs .switch-handle{width:12px;height:12px}.switch.switch-default.switch-xs .switch-input:checked ~ .switch-handle{left:10px}.switch.switch-text{position:relative;display:inline-block;vertical-align:top;width:48px;height:24px;background-color:transparent;cursor:pointer}.switch.switch-text .switch-input{position:absolute;top:0;left:0;opacity:0}.switch.switch-text .switch-label{position:relative;display:block;height:inherit;font-size:10px;font-weight:600;text-transform:uppercase;background-color:#fff;border:1px solid #a4b7c1;border-radius:2px;transition:opacity background .15s ease-out}.switch.switch-text .switch-label::before,.switch.switch-text .switch-label::after{position:absolute;top:50%;width:50%;margin-top:-.5em;line-height:1;text-align:center;transition:inherit}.switch.switch-text .switch-label::before{right:1px;color:#c2cfd6;content:attr(data-off)}.switch.switch-text .switch-label::after{left:1px;color:#fff;content:attr(data-on);opacity:0}.switch.switch-text .switch-input:checked ~ .switch-label::before{opacity:0}.switch.switch-text .switch-input:checked ~ .switch-label::after{opacity:1}.switch.switch-text .switch-handle{position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border:1px solid #a4b7c1;border-radius:1px;transition:left .15s ease-out}.switch.switch-text .switch-input:checked ~ .switch-handle{left:26px}.switch.switch-text.switch-lg{width:56px;height:28px}.switch.switch-text.switch-lg .switch-label{font-size:12px}.switch.switch-text.switch-lg .switch-handle{width:24px;height:24px}.switch.switch-text.switch-lg .switch-input:checked ~ .switch-handle{left:30px}.switch.switch-text.switch-sm{width:40px;height:20px}.switch.switch-text.switch-sm .switch-label{font-size:8px}.switch.switch-text.switch-sm .switch-handle{width:16px;height:16px}.switch.switch-text.switch-sm .switch-input:checked ~ .switch-handle{left:22px}.switch.switch-text.switch-xs{width:32px;height:16px}.switch.switch-text.switch-xs .switch-label{font-size:7px}.switch.switch-text.switch-xs .switch-handle{width:12px;height:12px}.switch.switch-text.switch-xs .switch-input:checked ~ .switch-handle{left:18px}.switch.switch-icon{position:relative;display:inline-block;vertical-align:top;width:48px;height:24px;background-color:transparent;cursor:pointer}.switch.switch-icon .switch-input{position:absolute;top:0;left:0;opacity:0}.switch.switch-icon .switch-label{position:relative;display:block;height:inherit;font-family:FontAwesome;font-size:10px;font-weight:600;text-transform:uppercase;background-color:#fff;border:1px solid #a4b7c1;border-radius:2px;transition:opacity background .15s ease-out}.switch.switch-icon .switch-label::before,.switch.switch-icon .switch-label::after{position:absolute;top:50%;width:50%;margin-top:-.5em;line-height:1;text-align:center;transition:inherit}.switch.switch-icon .switch-label::before{right:1px;color:#c2cfd6;content:attr(data-off)}.switch.switch-icon .switch-label::after{left:1px;color:#fff;content:attr(data-on);opacity:0}.switch.switch-icon .switch-input:checked ~ .switch-label::before{opacity:0}.switch.switch-icon .switch-input:checked ~ .switch-label::after{opacity:1}.switch.switch-icon .switch-handle{position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border:1px solid #a4b7c1;border-radius:1px;transition:left .15s ease-out}.switch.switch-icon .switch-input:checked ~ .switch-handle{left:26px}.switch.switch-icon.switch-lg{width:56px;height:28px}.switch.switch-icon.switch-lg .switch-label{font-size:12px}.switch.switch-icon.switch-lg .switch-handle{width:24px;height:24px}.switch.switch-icon.switch-lg .switch-input:checked ~ .switch-handle{left:30px}.switch.switch-icon.switch-sm{width:40px;height:20px}.switch.switch-icon.switch-sm .switch-label{font-size:8px}.switch.switch-icon.switch-sm .switch-handle{width:16px;height:16px}.switch.switch-icon.switch-sm .switch-input:checked ~ .switch-handle{left:22px}.switch.switch-icon.switch-xs{width:32px;height:16px}.switch.switch-icon.switch-xs .switch-label{font-size:7px}.switch.switch-icon.switch-xs .switch-handle{width:12px;height:12px}.switch.switch-icon.switch-xs .switch-input:checked ~ .switch-handle{left:18px}.switch.switch-3d{position:relative;display:inline-block;vertical-align:top;width:40px;height:24px;background-color:transparent;cursor:pointer}.switch.switch-3d .switch-input{position:absolute;top:0;left:0;opacity:0}.switch.switch-3d .switch-label{position:relative;display:block;height:inherit;font-size:10px;font-weight:600;text-transform:uppercase;background-color:#f0f3f5;border:1px solid #a4b7c1;border-radius:2px;transition:opacity background .15s ease-out}.switch.switch-3d .switch-input:checked ~ .switch-label::before{opacity:0}.switch.switch-3d .switch-input:checked ~ .switch-label::after{opacity:1}.switch.switch-3d .switch-handle{position:absolute;top:0;left:0;width:24px;height:24px;background:#fff;border:1px solid #a4b7c1;border-radius:1px;transition:left .15s ease-out;border:0;box-shadow:0 2px 5px rgba(0,0,0,0.3)}.switch.switch-3d .switch-input:checked ~ .switch-handle{left:16px}.switch.switch-3d.switch-lg{width:48px;height:28px}.switch.switch-3d.switch-lg .switch-label{font-size:12px}.switch.switch-3d.switch-lg .switch-handle{width:28px;height:28px}.switch.switch-3d.switch-lg .switch-input:checked ~ .switch-handle{left:20px}.switch.switch-3d.switch-sm{width:32px;height:20px}.switch.switch-3d.switch-sm .switch-label{font-size:8px}.switch.switch-3d.switch-sm .switch-handle{width:20px;height:20px}.switch.switch-3d.switch-sm .switch-input:checked ~ .switch-handle{left:12px}.switch.switch-3d.switch-xs{width:24px;height:16px}.switch.switch-3d.switch-xs .switch-label{font-size:7px}.switch.switch-3d.switch-xs .switch-handle{width:16px;height:16px}.switch.switch-3d.switch-xs .switch-input:checked ~ .switch-handle{left:8px}.switch-pill .switch-label,.switch.switch-3d .switch-label,.switch-pill .switch-handle,.switch.switch-3d .switch-handle{border-radius:50em !important}.switch-pill .switch-label::before,.switch.switch-3d .switch-label::before{right:2px !important}.switch-pill .switch-label::after,.switch.switch-3d .switch-label::after{left:2px !important}.switch-primary>.switch-input:checked ~ .switch-label{background:#039 !important;border-color:#026}.switch-primary>.switch-input:checked ~ .switch-handle{border-color:#026}.switch-primary-outline>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#039}.switch-primary-outline>.switch-input:checked ~ .switch-label::after{color:#039}.switch-primary-outline>.switch-input:checked ~ .switch-handle{border-color:#039}.switch-primary-outline-alt>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#039}.switch-primary-outline-alt>.switch-input:checked ~ .switch-label::after{color:#039}.switch-primary-outline-alt>.switch-input:checked ~ .switch-handle{background:#039 !important;border-color:#039}.switch-secondary>.switch-input:checked ~ .switch-label{background:#a4b7c1 !important;border-color:#869fac}.switch-secondary>.switch-input:checked ~ .switch-handle{border-color:#869fac}.switch-secondary-outline>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#a4b7c1}.switch-secondary-outline>.switch-input:checked ~ .switch-label::after{color:#a4b7c1}.switch-secondary-outline>.switch-input:checked ~ .switch-handle{border-color:#a4b7c1}.switch-secondary-outline-alt>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#a4b7c1}.switch-secondary-outline-alt>.switch-input:checked ~ .switch-label::after{color:#a4b7c1}.switch-secondary-outline-alt>.switch-input:checked ~ .switch-handle{background:#a4b7c1 !important;border-color:#a4b7c1}.switch-success>.switch-input:checked ~ .switch-label{background:#4dbd74 !important;border-color:#3a9d5d}.switch-success>.switch-input:checked ~ .switch-handle{border-color:#3a9d5d}.switch-success-outline>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#4dbd74}.switch-success-outline>.switch-input:checked ~ .switch-label::after{color:#4dbd74}.switch-success-outline>.switch-input:checked ~ .switch-handle{border-color:#4dbd74}.switch-success-outline-alt>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#4dbd74}.switch-success-outline-alt>.switch-input:checked ~ .switch-label::after{color:#4dbd74}.switch-success-outline-alt>.switch-input:checked ~ .switch-handle{background:#4dbd74 !important;border-color:#4dbd74}.switch-info>.switch-input:checked ~ .switch-label{background:#63c2de !important;border-color:#39b2d5}.switch-info>.switch-input:checked ~ .switch-handle{border-color:#39b2d5}.switch-info-outline>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#63c2de}.switch-info-outline>.switch-input:checked ~ .switch-label::after{color:#63c2de}.switch-info-outline>.switch-input:checked ~ .switch-handle{border-color:#63c2de}.switch-info-outline-alt>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#63c2de}.switch-info-outline-alt>.switch-input:checked ~ .switch-label::after{color:#63c2de}.switch-info-outline-alt>.switch-input:checked ~ .switch-handle{background:#63c2de !important;border-color:#63c2de}.switch-warning>.switch-input:checked ~ .switch-label{background:#fc0 !important;border-color:#cca300}.switch-warning>.switch-input:checked ~ .switch-handle{border-color:#cca300}.switch-warning-outline>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#fc0}.switch-warning-outline>.switch-input:checked ~ .switch-label::after{color:#fc0}.switch-warning-outline>.switch-input:checked ~ .switch-handle{border-color:#fc0}.switch-warning-outline-alt>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#fc0}.switch-warning-outline-alt>.switch-input:checked ~ .switch-label::after{color:#fc0}.switch-warning-outline-alt>.switch-input:checked ~ .switch-handle{background:#fc0 !important;border-color:#fc0}.switch-danger>.switch-input:checked ~ .switch-label{background:#f86c6b !important;border-color:#f63c3a}.switch-danger>.switch-input:checked ~ .switch-handle{border-color:#f63c3a}.switch-danger-outline>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#f86c6b}.switch-danger-outline>.switch-input:checked ~ .switch-label::after{color:#f86c6b}.switch-danger-outline>.switch-input:checked ~ .switch-handle{border-color:#f86c6b}.switch-danger-outline-alt>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#f86c6b}.switch-danger-outline-alt>.switch-input:checked ~ .switch-label::after{color:#f86c6b}.switch-danger-outline-alt>.switch-input:checked ~ .switch-handle{background:#f86c6b !important;border-color:#f86c6b}.switch-light>.switch-input:checked ~ .switch-label{background:#f0f3f5 !important;border-color:#d1dbe1}.switch-light>.switch-input:checked ~ .switch-handle{border-color:#d1dbe1}.switch-light-outline>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#f0f3f5}.switch-light-outline>.switch-input:checked ~ .switch-label::after{color:#f0f3f5}.switch-light-outline>.switch-input:checked ~ .switch-handle{border-color:#f0f3f5}.switch-light-outline-alt>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#f0f3f5}.switch-light-outline-alt>.switch-input:checked ~ .switch-label::after{color:#f0f3f5}.switch-light-outline-alt>.switch-input:checked ~ .switch-handle{background:#f0f3f5 !important;border-color:#f0f3f5}.switch-dark>.switch-input:checked ~ .switch-label{background:#29363d !important;border-color:#151b1f}.switch-dark>.switch-input:checked ~ .switch-handle{border-color:#151b1f}.switch-dark-outline>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#29363d}.switch-dark-outline>.switch-input:checked ~ .switch-label::after{color:#29363d}.switch-dark-outline>.switch-input:checked ~ .switch-handle{border-color:#29363d}.switch-dark-outline-alt>.switch-input:checked ~ .switch-label{background:#fff !important;border-color:#29363d}.switch-dark-outline-alt>.switch-input:checked ~ .switch-label::after{color:#29363d}.switch-dark-outline-alt>.switch-input:checked ~ .switch-handle{background:#29363d !important;border-color:#29363d}.table-outline{border:1px solid #a4b7c1}.table-outline td{vertical-align:middle}.table-align-middle td{vertical-align:middle}.table-clear td{border:0}.social-box{min-height:160px;margin-bottom:1.5rem;text-align:center;background:#fff;border:1px solid #c2cfd6}.social-box i{display:block;margin:-1px -1px 0;font-size:40px;line-height:90px;background:#c2cfd6}.social-box .chart-wrapper{height:90px;margin:-90px 0 0}.social-box .chart-wrapper canvas{width:100% !important;height:90px !important}.social-box ul{padding:10px 0;list-style:none}.social-box ul li{display:block;float:left;width:50%}.social-box ul li:first-child{border-right:1px solid #a4b7c1}.social-box ul li strong{display:block;font-size:20px}.social-box ul li span{font-size:10px;font-weight:500;color:#a4b7c1;text-transform:uppercase}.social-box.facebook i{color:#fff;background:#3b5998}.social-box.twitter i{color:#fff;background:#00aced}.social-box.linkedin i{color:#fff;background:#4875b4}.social-box.google-plus i{color:#fff;background:#d34836}.horizontal-bars{padding:0;margin:0;list-style:none}.horizontal-bars li{position:relative;height:40px;line-height:40px;vertical-align:middle}.horizontal-bars li .title{width:100px;font-size:12px;font-weight:600;color:#536c79;vertical-align:middle}.horizontal-bars li .bars{position:absolute;top:15px;width:100%;padding-left:100px}.horizontal-bars li .bars .progress:first-child{margin-bottom:2px}.horizontal-bars li.legend{text-align:center}.horizontal-bars li.legend .badge{display:inline-block;width:8px;height:8px;padding:0}.horizontal-bars li.divider{height:40px}.horizontal-bars li.divider i{margin:0 !important}.horizontal-bars.type-2 li{overflow:hidden}.horizontal-bars.type-2 li i{display:inline-block;margin-right:1rem;margin-left:5px;font-size:18px;line-height:40px}.horizontal-bars.type-2 li .title{display:inline-block;width:auto;margin-top:-9px;font-size:.875rem;font-weight:normal;line-height:40px;color:#151b1e}.horizontal-bars.type-2 li .value{float:right;font-weight:600}.horizontal-bars.type-2 li .bars{position:absolute;top:auto;bottom:0;padding:0}.icons-list{padding:0;margin:0;list-style:none}.icons-list li{position:relative;height:40px;vertical-align:middle}.icons-list li i{display:block;float:left;width:35px !important;height:35px !important;margin:2px;line-height:35px !important;text-align:center}.icons-list li .desc{height:40px;margin-left:50px;border-bottom:1px solid #a4b7c1}.icons-list li .desc .title{padding:2px 0 0;margin:0}.icons-list li .desc small{display:block;margin-top:-4px;color:#536c79}.icons-list li .value{position:absolute;top:2px;right:45px;text-align:right}.icons-list li .value strong{display:block;margin-top:-3px}.icons-list li .actions{position:absolute;top:-4px;right:10px;width:40px;height:40px;line-height:40px;text-align:center}.icons-list li .actions i{float:none;width:auto;height:auto;padding:0;margin:0;line-height:normal}.icons-list li.divider{height:40px}.icons-list li.divider i{width:auto;height:auto;margin:2px 0 0;font-size:18px}@media all and (-ms-high-contrast: none){html{display:flex;flex-direction:column}}.app,app-dashboard,app-root{display:flex;flex-direction:column;min-height:100vh}.app-header{flex:0 0 55px}.app-footer{flex:0 0 50px}.app-body{display:flex;flex-direction:row;flex-grow:1;overflow-x:hidden}.app-body .main{flex:1;min-width:0}.app-body .sidebar{flex:0 0 200px;order:-1}.app-body .aside-menu{flex:0 0 250px}.header-fixed .app-header{position:fixed;z-index:1020;width:100%}.header-fixed .app-body{margin-top:55px}.sidebar-hidden .sidebar{margin-left:-200px}.sidebar-fixed .sidebar{position:fixed;z-index:1019;width:200px;height:calc(100vh - 55px)}.sidebar-fixed .main,.sidebar-fixed .app-footer{margin-left:200px}.sidebar-fixed.sidebar-hidden .main,.sidebar-fixed.sidebar-hidden .app-footer{margin-left:0}.sidebar-off-canvas .sidebar{position:fixed;z-index:1019;height:calc(100vh - 55px)}@media (min-width: 992px){.sidebar-compact .sidebar{flex:0 0 150px}.sidebar-compact.sidebar-hidden .sidebar{margin-left:-150px}.sidebar-compact.sidebar-fixed .main,.sidebar-compact.sidebar-fixed .app-footer{margin-left:150px}.sidebar-compact.sidebar-fixed .sidebar{width:150px}.sidebar-compact.sidebar-fixed.sidebar-hidden .main,.sidebar-compact.sidebar-fixed.sidebar-hidden .app-footer{margin-left:0}.sidebar-minimized .sidebar{flex:0 0 50px}.sidebar-minimized.sidebar-hidden .sidebar{margin-left:-50px}.sidebar-minimized.sidebar-fixed .main,.sidebar-minimized.sidebar-fixed .app-footer{margin-left:50px}.sidebar-minimized.sidebar-fixed .sidebar{width:50px}.sidebar-minimized.sidebar-fixed.sidebar-hidden .main,.sidebar-minimized.sidebar-fixed.sidebar-hidden .app-footer{margin-left:0}}.aside-menu-hidden .aside-menu{margin-right:-250px}.aside-menu-fixed .aside-menu{position:fixed;right:0;height:100%}.aside-menu-fixed .aside-menu .tab-content{height:calc(100vh - 2.375rem - 55px)}.aside-menu-fixed .main,.aside-menu-fixed .app-footer{margin-right:250px}.aside-menu-fixed.aside-menu-hidden .main,.aside-menu-fixed.aside-menu-hidden .app-footer{margin-right:0}.aside-menu-off-canvas .aside-menu{position:fixed;right:0;z-index:1019;height:100%}.aside-menu-off-canvas .aside-menu .tab-content{height:calc(100vh - 2.375rem - 55px)}.breadcrumb-fixed .main{padding-top:3.875rem}.breadcrumb-fixed .breadcrumb{position:fixed;top:55px;right:0;left:0;z-index:1018}.breadcrumb-fixed .main:nth-child(2) .breadcrumb{right:250px;left:200px}.breadcrumb-fixed .main:first-child .breadcrumb{right:250px;left:0}.breadcrumb-fixed .main:last-child .breadcrumb{right:0}.breadcrumb-fixed.sidebar-minimized .main .breadcrumb{left:50px}.breadcrumb-fixed.sidebar-hidden .main .breadcrumb,.breadcrumb-fixed.sidebar-off-canvas .main .breadcrumb{left:0}.breadcrumb-fixed.aside-menu-hidden .main .breadcrumb,.breadcrumb-fixed.aside-menu-off-canvas .main .breadcrumb{right:0}.footer-fixed .app-footer{position:fixed;right:0;bottom:0;left:0;z-index:1020;height:50px}.footer-fixed .app-body{margin-bottom:50px}.app-header,.app-footer,.sidebar,.main,.aside-menu{transition:margin-left .25s,margin-right .25s,width .25s,flex .25s}.sidebar-nav{transition:width .25s}.breadcrumb{transition:left .25s,right .25s,width .25s}@media (max-width: 991.98px){.app-header.navbar{position:fixed !important;z-index:1020;width:100%;text-align:center;background-color:#fff;border-bottom:1px solid #a4b7c1}.app-header.navbar .navbar-toggler{color:#536c79}.app-header.navbar .navbar-brand{position:absolute;left:50%;margin-left:-77.5px}.app-body{margin-top:55px}.breadcrumb-fixed .main:nth-child(2) .breadcrumb{right:auto;left:auto;width:100%}.sidebar{position:fixed;z-index:1019;width:220px;height:calc(100vh - 55px);margin-left:-220px}.sidebar .sidebar-nav,.sidebar .nav{width:220px;min-height:calc(100vh - 55px)}.sidebar .sidebar-minimizer{display:none}.main,.app-footer{margin-left:0 !important}.sidebar-hidden .sidebar{margin-left:-220px}.sidebar-mobile-show .sidebar{width:220px;margin-left:0}.sidebar-mobile-show .main{margin-right:-220px !important;margin-left:220px !important}}hr.transparent{border-top:1px solid transparent}.bg-primary,.bg-success,.bg-info,.bg-warning,.bg-danger,.bg-inverse{color:#fff}.b-a-0{border:0 !important}.b-t-0{border-top:0 !important}.b-r-0{border-right:0 !important}.b-b-0{border-bottom:0 !important}.b-l-0{border-left:0 !important}.b-a-1{border:1px solid #a4b7c1 !important}.b-t-1{border-top:1px solid #a4b7c1 !important}.b-r-1{border-right:1px solid #a4b7c1 !important}.b-b-1{border-bottom:1px solid #a4b7c1 !important}.b-l-1{border-left:1px solid #a4b7c1 !important}.b-a-2{border:2px solid #a4b7c1 !important}.b-t-2{border-top:2px solid #a4b7c1 !important}.b-r-2{border-right:2px solid #a4b7c1 !important}.b-b-2{border-bottom:2px solid #a4b7c1 !important}.b-l-2{border-left:2px solid #a4b7c1 !important}@media (max-width: 575.98px){.d-down-none{display:none !important}}@media (max-width: 767.98px){.d-sm-down-none{display:none !important}}@media (max-width: 991.98px){.d-md-down-none{display:none !important}}@media (max-width: 1199.98px){.d-lg-down-none{display:none !important}}.d-xl-down-none{display:none !important}.label-pill{border-radius:1rem !important}.open>a,.show>a{outline:0}.navbar .dropdown-toggle .img-avatar{height:35px;margin:0 10px}*[dir=\\\"rtl\\\"]{direction:rtl;unicode-bidi:embed}*[dir=\\\"rtl\\\"] ul{-webkit-padding-start:0}*[dir=\\\"rtl\\\"] table tr th{text-align:right}*[dir=\\\"rtl\\\"] .breadcrumb-item{float:right}*[dir=\\\"rtl\\\"] .breadcrumb-menu{right:auto;left:1rem}*[dir=\\\"rtl\\\"] .dropdown-item{text-align:right}*[dir=\\\"rtl\\\"] .dropdown-item i{margin-right:-10px;margin-left:10px}*[dir=\\\"rtl\\\"] .dropdown-item .badge{right:auto;left:10px}*[dir=\\\"rtl\\\"] .sidebar-hidden .sidebar{margin-right:-200px}*[dir=\\\"rtl\\\"] .sidebar-fixed .main,*[dir=\\\"rtl\\\"] .sidebar-fixed .app-footer{margin-right:200px}*[dir=\\\"rtl\\\"] .sidebar-fixed.sidebar-hidden .main,*[dir=\\\"rtl\\\"] .sidebar-fixed.sidebar-hidden .app-footer{margin-right:0}*[dir=\\\"rtl\\\"] .sidebar-minimized .sidebar{flex:0 0 50px}*[dir=\\\"rtl\\\"] .sidebar-minimized.sidebar-hidden .sidebar{margin-right:-50px;margin-left:0}*[dir=\\\"rtl\\\"] .sidebar-minimized.sidebar-fixed .main,*[dir=\\\"rtl\\\"] .sidebar-minimized.sidebar-fixed .app-footer{margin-right:50px}*[dir=\\\"rtl\\\"] .sidebar-minimized.sidebar-fixed.sidebar-hidden .main,*[dir=\\\"rtl\\\"] .sidebar-minimized.sidebar-fixed.sidebar-hidden .app-footer{margin-left:0}*[dir=\\\"rtl\\\"] .aside-menu-hidden .aside-menu{margin-right:0;margin-left:-250px}*[dir=\\\"rtl\\\"] .aside-menu-fixed .aside-menu{right:auto;left:0}*[dir=\\\"rtl\\\"] .aside-menu-fixed .main,*[dir=\\\"rtl\\\"] .aside-menu-fixed .app-footer{margin-left:250px}*[dir=\\\"rtl\\\"] .aside-menu-fixed.aside-menu-hidden .main,*[dir=\\\"rtl\\\"] .aside-menu-fixed.aside-menu-hidden .app-footer{margin-left:0}*[dir=\\\"rtl\\\"] .aside-menu-off-canvas .aside-menu{position:fixed;right:0;z-index:1019;height:100%}*[dir=\\\"rtl\\\"] .aside-menu-off-canvas .aside-menu .tab-content{height:calc(100vh - 2.375rem - 55px)}*[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item .nav-link,*[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item .navbar .dropdown-toggle,.navbar *[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item .dropdown-toggle{direction:rtl}*[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item .nav-link i,*[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item .navbar .dropdown-toggle i,.navbar *[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item .dropdown-toggle i{margin:0 0 0 .5rem}*[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item .nav-link .badge,*[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item .navbar .dropdown-toggle .badge,.navbar *[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item .dropdown-toggle .badge{float:left;margin-top:2px}*[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item .nav-link.nav-dropdown-toggle::before,*[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item .navbar .nav-dropdown-toggle.dropdown-toggle::before,.navbar *[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item .nav-dropdown-toggle.dropdown-toggle::before{position:absolute;right:auto !important;left:1rem;transform:rotate(180deg)}*[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item.nav-dropdown.open>.nav-link.nav-dropdown-toggle::before,*[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .navbar .nav-item.nav-dropdown.open>.nav-dropdown-toggle.dropdown-toggle::before,.navbar *[dir=\\\"rtl\\\"] .sidebar .sidebar-nav .nav .nav-item.nav-dropdown.open>.nav-dropdown-toggle.dropdown-toggle::before{transform:rotate(270deg)}*[dir=\\\"rtl\\\"] .sidebar-minimized .sidebar .nav-link,*[dir=\\\"rtl\\\"] .sidebar-minimized .sidebar .navbar .dropdown-toggle,.navbar *[dir=\\\"rtl\\\"] .sidebar-minimized .sidebar .dropdown-toggle{padding-right:0}*[dir=\\\"rtl\\\"] .sidebar-minimized .sidebar .nav-link i,*[dir=\\\"rtl\\\"] .sidebar-minimized .sidebar .navbar .dropdown-toggle i,.navbar *[dir=\\\"rtl\\\"] .sidebar-minimized .sidebar .dropdown-toggle i{float:right;padding:0;margin:0}*[dir=\\\"rtl\\\"] .sidebar-minimized .sidebar .nav-link .badge,*[dir=\\\"rtl\\\"] .sidebar-minimized .sidebar .navbar .dropdown-toggle .badge,.navbar *[dir=\\\"rtl\\\"] .sidebar-minimized .sidebar .dropdown-toggle .badge{right:auto;left:15px}*[dir=\\\"rtl\\\"] .sidebar-minimized .sidebar .nav>.nav-dropdown:hover>.nav-dropdown-items{right:50px;left:0}*[dir=\\\"rtl\\\"] .horizontal-bars li .bars{padding-right:100px;padding-left:0}*[dir=\\\"rtl\\\"] .horizontal-bars li .bars .progress:first-child{margin-bottom:2px}*[dir=\\\"rtl\\\"] .horizontal-bars.type-2 li i{margin-right:5px;margin-left:1rem}*[dir=\\\"rtl\\\"] .horizontal-bars.type-2 li .value{float:left;font-weight:600}*[dir=\\\"rtl\\\"] .horizontal-bars.type-2 li .bars{padding:0}*[dir=\\\"rtl\\\"] .icons-list li{position:relative;height:40px;vertical-align:middle}*[dir=\\\"rtl\\\"] .icons-list li i{float:right}*[dir=\\\"rtl\\\"] .icons-list li .desc{margin-right:50px;margin-left:0}*[dir=\\\"rtl\\\"] .icons-list li .value{right:auto;left:45px;text-align:left}*[dir=\\\"rtl\\\"] .icons-list li .value strong{display:block;margin-top:-3px}*[dir=\\\"rtl\\\"] .icons-list li .actions{right:auto;left:10px}*[dir=\\\"rtl\\\"] .callout{border:0 solid #a4b7c1;border-right-width:.25rem}*[dir=\\\"rtl\\\"] .callout.callout-primary{border-right-color:#039}*[dir=\\\"rtl\\\"] .callout.callout-secondary{border-right-color:#a4b7c1}*[dir=\\\"rtl\\\"] .callout.callout-success{border-right-color:#4dbd74}*[dir=\\\"rtl\\\"] .callout.callout-info{border-right-color:#63c2de}*[dir=\\\"rtl\\\"] .callout.callout-warning{border-right-color:#fc0}*[dir=\\\"rtl\\\"] .callout.callout-danger{border-right-color:#f86c6b}*[dir=\\\"rtl\\\"] .callout.callout-light{border-right-color:#f0f3f5}*[dir=\\\"rtl\\\"] .callout.callout-dark{border-right-color:#29363d}*[dir=\\\"rtl\\\"] .callout .chart-wrapper{left:0;float:left}*[dir=\\\"rtl\\\"] .callout-default{border-right-color:#536c79}form.rjsf label{margin-bottom:0}form.rjsf div>p.field-description{font-size:0.7rem;font-style:italic;margin-bottom:0px}form.rjsf input{width:auto}form.rjsf div.row.array-item{background-color:aliceblue;margin-bottom:3px}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./scss/style.scss\",\"webpack://./node_modules/bootstrap/scss/bootstrap.scss\",\"webpack://./node_modules/bootstrap/scss/_root.scss\",\"webpack://./node_modules/bootstrap/scss/_reboot.scss\",\"webpack://./scss/_bootstrap-variables.scss\",\"webpack://./node_modules/bootstrap/scss/_variables.scss\",\"webpack://./node_modules/bootstrap/scss/vendor/_rfs.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_hover.scss\",\"webpack://./node_modules/bootstrap/scss/_type.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_lists.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_image.scss\",\"webpack://./node_modules/bootstrap/scss/_images.scss\",\"webpack://./node_modules/bootstrap/scss/_code.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_grid.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_breakpoints.scss\",\"webpack://./node_modules/bootstrap/scss/_grid.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_grid-framework.scss\",\"webpack://./node_modules/bootstrap/scss/_tables.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_table-row.scss\",\"webpack://./node_modules/bootstrap/scss/_functions.scss\",\"webpack://./node_modules/bootstrap/scss/_forms.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_border-radius.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_transition.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_forms.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_gradients.scss\",\"webpack://./node_modules/bootstrap/scss/_buttons.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_buttons.scss\",\"webpack://./node_modules/bootstrap/scss/_transitions.scss\",\"webpack://./node_modules/bootstrap/scss/_dropdown.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_caret.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_nav-divider.scss\",\"webpack://./node_modules/bootstrap/scss/_button-group.scss\",\"webpack://./node_modules/bootstrap/scss/_input-group.scss\",\"webpack://./node_modules/bootstrap/scss/_custom-forms.scss\",\"webpack://./node_modules/bootstrap/scss/_nav.scss\",\"webpack://./node_modules/bootstrap/scss/_navbar.scss\",\"webpack://./node_modules/bootstrap/scss/_card.scss\",\"webpack://./node_modules/bootstrap/scss/_breadcrumb.scss\",\"webpack://./node_modules/bootstrap/scss/_pagination.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_pagination.scss\",\"webpack://./node_modules/bootstrap/scss/_badge.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_badge.scss\",\"webpack://./node_modules/bootstrap/scss/_jumbotron.scss\",\"webpack://./node_modules/bootstrap/scss/_alert.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_alert.scss\",\"webpack://./node_modules/bootstrap/scss/_progress.scss\",\"webpack://./node_modules/bootstrap/scss/_media.scss\",\"webpack://./node_modules/bootstrap/scss/_list-group.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_list-group.scss\",\"webpack://./node_modules/bootstrap/scss/_close.scss\",\"webpack://./node_modules/bootstrap/scss/_toasts.scss\",\"webpack://./node_modules/bootstrap/scss/_modal.scss\",\"webpack://./node_modules/bootstrap/scss/_tooltip.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_reset-text.scss\",\"webpack://./node_modules/bootstrap/scss/_popover.scss\",\"webpack://./node_modules/bootstrap/scss/_carousel.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_clearfix.scss\",\"webpack://./node_modules/bootstrap/scss/_spinners.scss\",\"webpack://./node_modules/bootstrap/scss/utilities/_align.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_background-variant.scss\",\"webpack://./node_modules/bootstrap/scss/utilities/_background.scss\",\"webpack://./node_modules/bootstrap/scss/utilities/_borders.scss\",\"webpack://./node_modules/bootstrap/scss/utilities/_display.scss\",\"webpack://./node_modules/bootstrap/scss/utilities/_embed.scss\",\"webpack://./node_modules/bootstrap/scss/utilities/_flex.scss\",\"webpack://./node_modules/bootstrap/scss/utilities/_float.scss\",\"webpack://./node_modules/bootstrap/scss/utilities/_interactions.scss\",\"webpack://./node_modules/bootstrap/scss/utilities/_overflow.scss\",\"webpack://./node_modules/bootstrap/scss/utilities/_position.scss\",\"webpack://./node_modules/bootstrap/scss/utilities/_screenreaders.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_screen-reader.scss\",\"webpack://./node_modules/bootstrap/scss/utilities/_shadows.scss\",\"webpack://./node_modules/bootstrap/scss/utilities/_sizing.scss\",\"webpack://./node_modules/bootstrap/scss/utilities/_spacing.scss\",\"webpack://./node_modules/bootstrap/scss/utilities/_stretched-link.scss\",\"webpack://./node_modules/bootstrap/scss/utilities/_text.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_text-truncate.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_text-emphasis.scss\",\"webpack://./node_modules/bootstrap/scss/mixins/_text-hide.scss\",\"webpack://./node_modules/bootstrap/scss/utilities/_visibility.scss\",\"webpack://./node_modules/bootstrap/scss/_print.scss\",\"webpack://./scss/core/_typography.scss\",\"webpack://./scss/core/_animate.scss\",\"webpack://./scss/core/_aside.scss\",\"webpack://./scss/core/_variables.scss\",\"webpack://./scss/core/_mixins.scss\",\"webpack://./scss/core/_avatars.scss\",\"webpack://./scss/core/_badge.scss\",\"webpack://./scss/core/_breadcrumb-menu.scss\",\"webpack://./scss/core/_breadcrumb.scss\",\"webpack://./scss/core/_buttons.scss\",\"webpack://./scss/core/_callout.scss\",\"webpack://./scss/core/_card.scss\",\"webpack://./scss/core/_charts.scss\",\"webpack://./scss/core/_dropdown.scss\",\"webpack://./scss/core/_footer.scss\",\"webpack://./scss/core/_grid.scss\",\"webpack://./scss/core/_input-group.scss\",\"webpack://./scss/core/_loading.scss\",\"webpack://./scss/core/_modal.scss\",\"webpack://./scss/core/_nav.scss\",\"webpack://./scss/core/_navbar.scss\",\"webpack://./scss/core/_progress.scss\",\"webpack://./scss/core/_sidebar.scss\",\"webpack://./scss/core/_switches.scss\",\"webpack://./scss/core/_tables.scss\",\"webpack://./scss/core/_widgets.scss\",\"webpack://./scss/core/_layout.scss\",\"webpack://./scss/core/_others.scss\",\"webpack://./scss/core/utilities/_background.scss\",\"webpack://./scss/core/utilities/_borders.scss\",\"webpack://./scss/core/utilities/_display.scss\",\"webpack://./scss/core/_temp.scss\",\"webpack://./scss/core/_rtl.scss\",\"webpack://./scss/_custom.scss\"],\"names\":[],\"mappings\":\"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,CE5Jf,eHuS+B,CGtShC,WF2JK,cAAW,CEtJf,eH0R+B,CGzR/B,eHiR+B,CGhRhC,WFoJK,gBAAW,CEjJf,eHsR+B,CGrR/B,eH4Q+B,CG3QhC,WF+IK,gBAAW,CE5If,eHkR+B,CGjR/B,eHuQ+B,CGtQhC,WF0IK,gBAAW,CEvIf,eH8Q+B,CG7Q/B,eHkQ+B,CFrOjC,GKpBE,eHgFW,CG/EX,kBH+EW,CG9EX,QAAS,CACT,oCJ1CoC,CI2CrC,aFyGG,aAAW,CE/Fb,eH0N+B,CGzNhC,WAIC,YHkQgC,CGjQhC,wBH0QmC,CGzQpC,eCxEC,cAAe,CACf,eAAgB,CDgFjB,aCjFC,cAAe,CACf,eAAgB,CDqFjB,kBAEC,oBAAqB,CADvB,mCAII,kBHoP+B,CGnPhC,YFoEC,aAAW,CEzDb,wBAAyB,CAC1B,YAIC,kBHuBW,CC6CP,oBAAW,CElEhB,mBAGC,aAAc,CF+CZ,aAAW,CE7Cb,aJ3GuC,CIwGzC,2BAMI,oBAAqB,CACtB,WEhHD,cAAe,CAGf,WAAY,CCLb,eAKC,cNogCwC,CMngCxC,wBPoDuC,COnDvC,wBPPuC,CMEvC,cAAe,CAGf,WAAY,CCQb,QAQC,oBAAqB,CACtB,YAGC,mBAA2B,CAC3B,aAAc,CACf,gBLgIG,aAAW,CK5Hb,aP5BuC,CO6BxC,KL2HG,eAAW,CMjKb,aRkBuC,CQjBvC,oBAAqB,CAGrB,OACE,aAAc,CACf,IAKD,mBPylCuC,CCn8BrC,eAAW,CMpJb,URVoC,CQWpC,wBRFuC,CQFzC,QASI,SAAU,CN8IV,cAAW,CM5IX,ePwQ6B,CFhEjC,ISjME,aAAc,CNqIZ,eAAW,CMnIb,aRlBuC,CQezC,SNsII,iBAAW,CM9HX,aAAc,CACd,iBAAkB,CACnB,gBAKD,gBPgkCuC,CO/jCvC,iBAAkB,CACnB,oFC1CC,UAAW,CACX,kBAA2B,CAC3B,iBAA0B,CAC1B,iBAAkB,CAClB,gBAAiB,CCmDf,0BCzCE,yBACE,eV+LG,CU9LJ,CDuCH,0BCzCE,uCACE,eVgMG,CU/LJ,CDuCH,0BCzCE,qDACE,eViMG,CUhMJ,CDuCH,2BCzCE,mEACE,gBVkMI,CUjML,CA2BL,KFnCA,YAAa,C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sCAKI,wBbxCqC,CamCzC,kDAWM,uBAA4C,CAC7C,mGASD,QAAS,CACV,yCASC,iCb3DkC,CGJpC,4BU2EI,abxEmC,CayEnC,kCbxEgC,CGJd,mDWHlB,wBCgG4D,CDpGhE,uFAYM,oBCwF0D,CZ7FhE,kCWiBM,wBAJsC,CXbtB,0EWqBd,wBARoC,CApB5C,yDAII,wBCgG4D,CDpGhE,+FAYM,oBCwF0D,CZ7FhE,oCWiBM,wBAJsC,CXbtB,8EWqBd,wBARoC,CApB5C,mDAII,wBCgG4D,CDpGhE,uFAYM,oBCwF0D,CZ7FhE,kCWiBM,wBAJsC,CXbtB,0EWqBd,wBARoC,CApB5C,0CAII,wBCgG4D,CDpGhE,2EAYM,oBCwF0D,CZ7FhE,+BWiBM,wBAJsC,CXbtB,oEWqBd,wBARoC,CApB5C,mDAII,wBCgG4D,CDpGhE,uFAYM,oBCwF0D,CZ7FhE,kCWiBM,wBAJsC,CXbtB,0EWqBd,wBARoC,CApB5C,gDAII,wBCgG4D,CDpGhE,mFAYM,oBCwF0D,CZ7FhE,iCWiBM,wBAJsC,CXbtB,wEWqBd,wBARoC,CApB5C,6CAII,wBCgG4D,CDpGhE,+EAYM,oBCwF0D,CZ7FhE,gCWiBM,wBAJsC,CXbtB,sEWqBd,wBARoC,CApB5C,0CAII,wBCgG4D,CDpGhE,2EAYM,oBCwF0D,CZ7FhE,+BWiBM,wBAJsC,CXbtB,oEWqBd,wBARoC,CApB5C,gDAII,kCdOgC,CGJpC,iCWiBM,kCAJsC,CXbtB,wEWqBd,kCARoC,CASrC,sBDgFH,Ub5GgC,Ca6GhC,wBbrGmC,CasGnC,oBZgQqD,CYrQ3D,uBAWM,ab7GmC,Ca8GnC,wBbnHmC,CaoHnC,oBbnHmC,CaoHpC,YAKH,Ub5HoC,Ca6HpC,wBbrHuC,CamHzC,mDAOI,oBZ4OuD,CYnP3D,2BAWI,QAAS,CAXb,oDAgBM,uCb3IgC,CGMpC,uCU4IM,UblJ8B,CamJ9B,wCbnJ8B,CUmElC,6BGiGA,qBAEI,aAAc,CACd,UAAW,CACX,eAAgB,CAChB,gCAAiC,CALpC,qCASK,QAAS,CACV,CH3GL,6BGiGA,qBAEI,aAAc,CACd,UAAW,CACX,eAAgB,CAChB,gCAAiC,CALpC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Cd,YAAa,CACb,mBf+KwC,Ce9KxC,aAAc,CA7DpB,6BAiEM,kBAAmB,CACnB,sBAAuB,CAlE7B,mCAqEM,eAAgB,CACjB,CKlVL,KACE,oBAAqB,CAErB,epBsR+B,CoBrR/B,arBKuC,CqBJvC,iBAAkB,CAGlB,qBAAsB,CACtB,gBAAiB,CACjB,4BAA6B,CAC7B,4BAA2C,CCuF3C,sBrB2RkC,CC/M9B,iBAAW,CoB1Ef,erB0L+B,CgB/Q7B,eKuFsC,CJ5FpC,iIjBgb6I,CiB5a7I,wCGdN,KHeQ,eAAgB,CG8BvB,ClBvCC,WkBUE,arBPqC,CqBQrC,oBAAqB,ClBXD,sBkBgBpB,SAAU,CACV,0CrBXqC,CqBZzC,4BA6BI,WpBiZ6B,CoB9ajC,mCAkCI,cAAsD,CAUvD,uCAMD,mBAAoB,CACrB,aCnDC,UtBAoC,CoBAlC,qBpBYqC,CsBVvC,iBtBUuC,CGNvC,mBmBAE,UtBNkC,CoBAlC,wBEDoF,CASpF,iBATyH,CnBOrG,sCmBOpB,UtBbkC,CoBAlC,wBEDoF,CAgBpF,iBAhByH,CAqBvH,0CAAiF,CAEpF,4CAKC,UtB3BkC,CsB4BlC,qBtBhBqC,CsBiBrC,iBtBjBqC,CsBsBtC,uIAKC,UtBvCkC,CsBwClC,qBAzCuK,CA6CvK,oBA7C+M,CA+C/M,yJAKI,0CAAiF,CAEpF,eArDH,atBSuC,CoBTrC,wBpBGqC,CsBDvC,oBtBCuC,CGGvC,qBmBAE,atBGqC,CoBTrC,wBEDoF,CASpF,oBATyH,CnBOrG,0CmBOpB,atBJqC,CoBTrC,wBEDoF,CAgBpF,oBAhByH,CAqBvH,4CAAiF,CAEpF,gDAKC,atBlBqC,CsBmBrC,wBtBzBqC,CsB0BrC,oBtB1BqC,CsB+BtC,6IAKC,atB9BqC,CsB+BrC,wBAzCuK,CA6CvK,oBA7C+M,CA+C/M,+JAKI,4CAAiF,CAEpF,aArDH,UtBAoC,CoBAlC,wBpBmBqC,CsBjBvC,oBtBiBuC,CGbvC,mBmBAE,UtBNkC,CoBAlC,wBEDoF,CASpF,oBATyH,CnBOrG,sCmBOpB,UtBbkC,CoBAlC,wBEDoF,CAgBpF,oBAhByH,CAqBvH,4CAAiF,CAEpF,4CAKC,UtB3BkC,CsB4BlC,wBtBTqC,CsBUrC,oBtBVqC,CsBetC,uIAKC,UtBvCkC,CsBwClC,wBAzCuK,CA6CvK,oBA7C+M,CA+C/M,yJAKI,4CAAiF,CAEpF,UArDH,atBSuC,CoBTrC,wBpBqBqC,CsBnBvC,oBtBmBuC,CGfvC,gBmBAE,atBGqC,CoBTrC,wBEDoF,CASpF,oBATyH,CnBOrG,gCmBOpB,atBJqC,CoBTrC,wBEDoF,CAgBpF,oBAhByH,CAqBvH,2CAAiF,CAEpF,sCAKC,atBlBqC,CsBmBrC,wBtBPqC,CsBQrC,oBtBRqC,CsBatC,8HAKC,UtBvCkC,CsBwClC,wBAzCuK,CA6CvK,oBA7C+M,CA+C/M,gJAKI,2CAAiF,CAEpF,aArDH,atBSuC,CoBTrC,qBpBkBqC,CsBhBvC,iBtBgBuC,CGZvC,mBmBAE,atBGqC,CoBTrC,wBEDoF,CASpF,oBATyH,CnBOrG,sCmBOpB,atBJqC,CoBTrC,wBEDoF,CAgBpF,oBAhByH,CAqBvH,0CAAiF,CAEpF,4CAKC,atBlBqC,CsBmBrC,qBtBVqC,CsBWrC,iBtBXqC,CsBgBtC,uIAKC,atB9BqC,CsB+BrC,wBAzCuK,CA6CvK,oBA7C+M,CA+C/M,yJAKI,0CAAiF,CAEpF,YArDH,UtBAoC,CoBAlC,wBpBgBqC,CsBdvC,oBtBcuC,CGVvC,kBmBAE,UtBNkC,CoBAlC,wBEDoF,CASpF,oBATyH,CnBOrG,oCmBOpB,UtBbkC,CoBAlC,wBEDoF,CAgBpF,oBAhByH,CAqBvH,4CAAiF,CAEpF,0CAKC,UtB3BkC,CsB4BlC,wBtBZqC,CsBarC,oBtBbqC,CsBkBtC,oIAKC,UtBvCkC,CsBwClC,wBAzCuK,CA6CvK,oBA7C+M,CA+C/M,sJAKI,4CAAiF,CAEpF,WArDH,atBSuC,CoBTrC,wBpBCqC,CsBCvC,oBtBDuC,CGKvC,iBmBAE,atBGqC,CoBTrC,wBEDoF,CASpF,oBATyH,CnBOrG,kCmBOpB,atBJqC,CoBTrC,wBEDoF,CAgBpF,oBAhByH,CAqBvH,4CAAiF,CAEpF,wCAKC,atBlBqC,CsBmBrC,wBtB3BqC,CsB4BrC,oBtB5BqC,CsBiCtC,iIAKC,atB9BqC,CsB+BrC,wBAzCuK,CA6CvK,oBA7C+M,CA+C/M,mJAKI,4CAAiF,CAEpF,UArDH,UtBAoC,CoBAlC,wBpBQqC,CsBNvC,oBtBMuC,CGFvC,gBmBAE,UtBNkC,CoBAlC,wBEDoF,CASpF,oBATyH,CnBOrG,gCmBOpB,UtBbkC,CoBAlC,wBEDoF,CAgBpF,oBAhByH,CAqBvH,yCAAiF,CAEpF,sCAKC,UtB3BkC,CsB4BlC,wBtBpBqC,CsBqBrC,oBtBrBqC,CsB0BtC,8HAKC,UtBvCkC,CsBwClC,wBAzCuK,CA6CvK,oBA7C+M,CA+C/M,gJAKI,yCAAiF,CAEpF,qBAKH,UtB9CuC,CsB+CvC,iBtB/CuC,CGNvC,2BmBwDE,UtB9DkC,CsB+DlC,qBtBnDqC,CsBoDrC,iBtBpDqC,CGNjB,sDmB+DpB,yCtBzDqC,CsB0DtC,4DAIC,UtB9DqC,CsB+DrC,4BAA6B,CAC9B,+JAKC,UtBjFkC,CsBkFlC,qBtBtEqC,CsBuErC,iBtBvEqC,CsByErC,iLAKI,yCtB9EiC,CsBgFpC,uBAlCH,atBvDuC,CsBwDvC,oBtBxDuC,CGGvC,6BmBwDE,atBrDqC,CsBsDrC,wBtB5DqC,CsB6DrC,oBtB7DqC,CGGjB,0DmB+DpB,4CtBlEqC,CsBmEtC,gEAIC,atBvEqC,CsBwErC,4BAA6B,CAC9B,qKAKC,atBxEqC,CsByErC,wBtB/EqC,CsBgFrC,oBtBhFqC,CsBkFrC,uLAKI,4CtBvFiC,CsByFpC,qBAlCH,atBvCuC,CsBwCvC,oBtBxCuC,CGbvC,2BmBwDE,UtB9DkC,CsB+DlC,wBtB5CqC,CsB6CrC,oBtB7CqC,CGbjB,sDmB+DpB,2CtBlDqC,CsBmDtC,4DAIC,atBvDqC,CsBwDrC,4BAA6B,CAC9B,+JAKC,UtBjFkC,CsBkFlC,wBtB/DqC,CsBgErC,oBtBhEqC,CsBkErC,iLAKI,2CtBvEiC,CsByEpC,kBAlCH,atBrCuC,CsBsCvC,oBtBtCuC,CGfvC,wBmBwDE,atBrDqC,CsBsDrC,wBtB1CqC,CsB2CrC,oBtB3CqC,CGfjB,gDmB+DpB,2CtBhDqC,CsBiDtC,sDAIC,atBrDqC,CsBsDrC,4BAA6B,CAC9B,sJAKC,atBxEqC,CsByErC,wBtB7DqC,CsB8DrC,oBtB9DqC,CsBgErC,wKAKI,2CtBrEiC,CsBuEpC,qBAlCH,UtBxCuC,CsByCvC,iBtBzCuC,CGZvC,2BmBwDE,atBrDqC,CsBsDrC,qBtB7CqC,CsB8CrC,iBtB9CqC,CGZjB,sDmB+DpB,0CtBnDqC,CsBoDtC,4DAIC,UtBxDqC,CsByDrC,4BAA6B,CAC9B,+JAKC,atBxEqC,CsByErC,qBtBhEqC,CsBiErC,iBtBjEqC,CsBmErC,iLAKI,0CtBxEiC,CsB0EpC,oBAlCH,atB1CuC,CsB2CvC,oBtB3CuC,CGVvC,0BmBwDE,UtB9DkC,CsB+DlC,wBtB/CqC,CsBgDrC,oBtBhDqC,CGVjB,oDmB+DpB,4CtBrDqC,CsBsDtC,0DAIC,atB1DqC,CsB2DrC,4BAA6B,CAC9B,4JAKC,UtBjFkC,CsBkFlC,wBtBlEqC,CsBmErC,oBtBnEqC,CsBqErC,8KAKI,4CtB1EiC,CsB4EpC,mBAlCH,atBzDuC,CsB0DvC,oBtB1DuC,CGKvC,yBmBwDE,atBrDqC,CsBsDrC,wBtB9DqC,CsB+DrC,oBtB/DqC,CGKjB,kDmB+DpB,4CtBpEqC,CsBqEtC,wDAIC,atBzEqC,CsB0ErC,4BAA6B,CAC9B,yJAKC,atBxEqC,CsByErC,wBtBjFqC,CsBkFrC,oBtBlFqC,CsBoFrC,2KAKI,4CtBzFiC,CsB2FpC,kBAlCH,atBlDuC,CsBmDvC,oBtBnDuC,CGFvC,wBmBwDE,UtB9DkC,CsB+DlC,wBtBvDqC,CsBwDrC,oBtBxDqC,CGFjB,gDmB+DpB,yCtB7DqC,CsB8DtC,sDAIC,atBlEqC,CsBmErC,4BAA6B,CAC9B,sJAKC,UtBjFkC,CsBkFlC,wBtB1EqC,CsB2ErC,oBtB3EqC,CsB6ErC,wKAKI,yCtBlFiC,CsBoFpC,UDfH,epB4M+B,CoB3M/B,UrBlEuC,CqBmEvC,oBpB2F4C,CEpK5C,gBkB4EE,apByF8D,CoBxF9D,yBpByF+C,CEtK3B,gCkBkFpB,yBpBoF+C,CoBhGnD,sCAiBI,arBvFqC,CqBwFrC,mBAAoB,CACrB,2BCGD,kBrB0SgC,CC9N5B,oBAA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,C4Bnf1C,iBAAmF,CACnF,SAAU,CANZ,8DASI,U7B1BkC,C6B2BlC,iB7BfqC,CoBZrC,qBpBYqC,C6BKzC,4DAoBM,0C7BzBmC,C6BKzC,0EAyBI,oB5BqbsE,C4B9c1E,4EA6BI,U7B9CkC,C6B+ClC,wB5Bif8E,C4Bhf9E,oB5Bgf8E,C4B/gBlF,+GAuCM,a7BlDmC,C6BWzC,+HA0CQ,wB7BzDiC,C6B0DlC,sBAUL,iBAAkB,CAClB,eAAgB,CAEhB,kBAAmB,CAJrB,8BASI,iBAAkB,CAClB,aAAgF,CAChF,YAA+D,CAC/D,aAAc,CACd,U5BubwC,C4BtbxC,W5BsbwC,C4BrbxC,mBAAoB,CACpB,UAAW,CACX,qB7BtFkC,C6BuFlC,wB5B+I6B,C4BjKjC,6BAwBI,iBAAkB,CAClB,aAAgF,CAChF,YAA+D,CAC/D,aAAc,CACd,U5BwawC,C4BvaxC,W5BuawC,C4BtaxC,UAAW,CACX,kCAAgE,CACjE,8EAeG,iOd7D4E,CcsDlF,qFAaM,iB7B9GmC,CoBZrC,qBpBYqC,C6BiGzC,oFAkBM,8KdxE4E,CcsDlF,wFT7GI,mCpBYqC,C6BiGzC,8FT7GI,mCpBYqC,C6B6HpC,4CAWD,iB5ByZ+C,C4B5ZnD,2EAQM,6KdlG4E,Cc0FlF,qFTjJI,mCpBYqC,C6BoJpC,eAUH,oBAA2D,CAD7D,6CAKM,aAAqD,CACrD,a5BiY+E,C4BhY/E,kBAAmB,CAEnB,mB5B+X6E,C4BxYnF,4CAaM,yBdlE0D,CcmE1D,yBdnE0D,CcoE1D,sBd5C0D,Cc6C1D,uBd7C0D,Cc8C1D,wB7BrLmC,C6BuLnC,mB5BqX6E,CiBviB7E,qIjByf+H,CiBrf/H,wCW2JN,4CX1JQ,eAAgB,CW+KnB,CArBL,4EA0BM,qB7BnMgC,C6BoMhC,4BAA4E,CA3BlF,sFTzKI,mCpBYqC,C6B+LpC,eAYH,oBAAqB,CACrB,UAAW,CACX,iCdrG8D,CcsG9D,sC5BmKkC,CC/M9B,iBAAW,C2B+Cf,e5B4D+B,C4B3D/B,e5BgE+B,C4B/D/B,a7BxNuC,C6ByNvC,qBAAsB,CACtB,qO5BkW+I,C4BjW/I,wB7BhOuC,CiBarC,eYoNoD,CAEtD,eAAgB,CAflB,qBAkBI,oB5BuPsE,C4BtPtE,SAAU,CAKR,0C7BlOmC,C6B0MzC,gCAiCM,a7BhPmC,C6BiPnC,qB7BxPgC,C6BsNtC,8DAwCI,WAAY,CACZ,oB5B8HgC,C4B7HhC,qBAAsB,CA1C1B,wBA8CI,a7B9PqC,C6B+PrC,wB7BnQqC,C6BoNzC,2BAoDI,YAAa,CApDjB,8BAyDI,iBAAkB,CAClB,yB7BzQqC,C6B0QtC,kBAID,gCdjK8D,CckK9D,kB5BgHkC,C4B/GlC,qB5B+GkC,C4B9GlC,kB5B+GiC,CCzN7B,mBAAW,C2B4GhB,kBAGC,+BdzK8D,Cc0K9D,iB5B6GiC,C4B5GjC,oB5B4GiC,C4B3GjC,iB5B4GgC,CC9N5B,oBAAW,C2BoHhB,aAQC,iBAAkB,CAClB,oBAAqB,CACrB,UAAW,CACX,iCdzL8D,Cc0L9D,eAAgB,CACjB,mBAGC,iBAAkB,CAClB,SAAU,CACV,UAAW,CACX,iCdjM8D,CckM9D,QAAS,CACT,eAAgB,CAChB,SAAU,CAPZ,8CAUI,oB5BoKsE,C4BnKtE,0C7BhTqC,C6BqSzC,mGAiBI,wB7BhUqC,C6B+SzC,wDAsBM,gB5B2TQ,C4BjVd,4DA2BI,yBAA0B,CAC3B,mBAID,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,MAAO,CACP,SAAU,CACV,iCdlO8D,CcmO9D,sB5BsCkC,C4BrClC,eAAgB,CAEhB,e5BjE+B,C4BkE/B,e5B7D+B,C4B8D/B,a7BrVuC,C6BsVvC,qB7B7VoC,C6B8VpC,wB7B5VuC,C6B8UzC,0BAmBI,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,SAAU,CACV,aAAc,CACd,2BdrP4D,CcsP5D,sB5BmBgC,C4BlBhC,e5B7E6B,C4B8E7B,a7BrWqC,C6BsWrC,gBAAiB,CT7WjB,wBpBCqC,C6B8WrC,mBAAoB,CAErB,cAUD,UAAW,CACX,ad3Q2B,Cc4Q3B,SAAU,CACV,4BAA6B,CAC7B,eAAgB,CALlB,oBAQI,SAAU,CARd,0CAY8B,4D7B1XW,C6B8WzC,sCAa8B,4D7B3XW,C6B8WzC,+BAc8B,4D7B5XW,C6B8WzC,gCAkBI,QAAS,CAlBb,oCAsBI,U5BmN6C,C4BlN7C,W5BkN6C,C4BjN7C,kBAA0E,CTlZ1E,qBpBYqC,C6BwYrC,Q5BkN0C,CiB5lBxC,yGjByf+H,C4B3GjI,eAAgB,CX1Yd,wCW4WN,oCX3WQ,eAAgB,CW8YrB,CAnCH,2CT1XI,wBnB2mB2E,C4BjP/E,6CAsCI,U5B4LoC,C4B3LpC,Y5B4LqC,C4B3LrC,iBAAkB,CAClB,c5B2LuC,C4B1LvC,wB7BjaqC,C6BkarC,wBAAyB,CA3C7B,gCAiDI,U5BwL6C,C4BvL7C,W5BuL6C,CmBnmB7C,qBpBYqC,C6BkarC,Q5BwL0C,CiB5lBxC,yGjByf+H,C4BjFjI,eAAgB,CXpad,wCW4WN,gCX3WQ,eAAgB,CWwarB,CA7DH,uCT1XI,wBnB2mB2E,C4BjP/E,gCAgEI,U5BkKoC,C4BjKpC,Y5BkKqC,C4BjKrC,iBAAkB,CAClB,c5BiKuC,C4BhKvC,wB7B3bqC,C6B4brC,wBAAyB,CArE7B,yBA2EI,U5B8J6C,C4B7J7C,W5B6J6C,C4B5J7C,YAAa,CACb,kB5BtE+B,C4BuE/B,iB5BvE+B,CmBlY/B,qBpBYqC,C6B+brC,Q5B2J0C,CiB5lBxC,yGjByf+H,C4BpDjI,eAAgB,CXjcd,wCW4WN,yBX3WQ,eAAgB,CWqcrB,CA1FH,gCT1XI,wBnB2mB2E,C4BjP/E,yBA6FI,U5BqIoC,C4BpIpC,Y5BqIqC,C4BpIrC,iBAAkB,CAClB,c5BoIuC,C4BnIvC,4BAA6B,CAC7B,wBAAyB,CACzB,kBAA6C,CAnGjD,8BAwGI,wB7B/dqC,C6BuXzC,8BA6GI,iBAAkB,CAClB,wB7BreqC,C6BuXzC,6CAoHM,wB7BzemC,C6BqXzC,sDAwHM,cAAe,CAxHrB,yCA4HM,wB7BjfmC,C6BqXzC,yCAgIM,cAAe,CAhIrB,kCAoIM,wB7BzfmC,C6B0fpC,gEXrfC,yGjByf+H,CiBrf/H,wCWqfN,gEXpfQ,eAAgB,CWwfvB,CCxgBD,KACE,YAAa,CACb,cAAe,CACf,cAAe,CACf,eAAgB,CAChB,eAAgB,CACjB,mCAGC,aAAc,CACd,kB7ByqBsC,CExqBtC,8F2BGE,oBAAqB,C3BAtB,qD2BKC,a9BZqC,C8BarC,mBAAoB,CACpB,cAAe,CAChB,UAQD,+B9B1BuC,C8ByBzC,0FAII,kB7BsM6B,C6BrM7B,4BAAgD,C3BvBlD,wN2B2BI,oC9BlCmC,CGUtC,qH2B4BG,a9BnCmC,C8BoCnC,4BAA6B,CAC7B,wBAAyB,CAf/B,sPAqBI,a9B1CqC,C8B2CrC,wB9BWqC,C8BVrC,oC9BUqC,C8BjCzC,yBA4BI,e7B8K6B,C6B3K9B,iOAeC,U9B1EkC,C8B2ElC,qB9B/DqC,C8BgEtC,2EAWC,aAAc,CACd,iBAAkB,CACnB,0FAMC,YAAa,CACb,WAAY,CACZ,iBAAkB,CACnB,uBAUC,YAAa,CAFjB,qBAKI,aAAc,CACf,QCpGD,iBAAkB,CAClB,YAAa,CACb,cAAe,CACf,kBAAmB,CACnB,6BAA8B,CAC9B,kB9BgHW,C8BtHb,oIAWI,YAAa,CACb,cAAe,CACf,kBAAmB,CACnB,6BAA8B,CAC/B,cAoBD,oBAAqB,CACrB,qB9BiqBgF,C8BhqBhF,wB9BgqBgF,C8B/pBhF,iB9BgFW,CC6CP,oBAAW,C6B3Hf,mBAAoB,CACpB,kBAAmB,C5B1CnB,wC4B6CE,oBAAqB,C5B1CtB,Y4BoDD,YAAa,CACb,qBAAsB,CACtB,cAAe,CACf,eAAgB,CAChB,eAAgB,CALlB,gGAQI,eAAgB,CAChB,cAAe,CATnB,2BAaI,eAAgB,CAChB,UAAW,CACZ,aASD,oBAAqB,CACrB,iB9BwlBuC,C8BvlBvC,oB9BulBuC,C8BtlBxC,iBAYC,eAAgB,CAChB,WAAY,CAGZ,kBAAmB,CACpB,gBAIC,qB9BmmBwC,CCriBpC,oBAAW,C6B5Df,aAAc,CACd,4BAA6B,CAC7B,4BAAuC,C5B1GvC,4C4B8GE,oBAAqB,C5B3GtB,qB4BkHD,oBAAqB,CACrB,WAAY,CACZ,YAAa,CACb,qBAAsB,CACtB,UAAW,CACX,oCAAqC,CACtC,mBAGC,e9B+kBsC,C8B9kBtC,eAAgB,CrBtEd,6BqBgFC,gMAGK,eAAgB,CAChB,cAAe,CAChB,CrBlGL,0BqB6FA,kBAoBI,oBAAqB,CACrB,0BAA2B,CArB9B,8BAwBK,kBAAmB,CAxBxB,6CA2BO,iBAAkB,CA3BzB,sJA+BO,mB9BwhB6B,C8BvhB7B,kB9BuhB6B,C8BvjBpC,gMAsCK,gBAAiB,CAtCtB,qCAqDK,gBAAiB,CArDtB,mCAyDK,uBAAwB,CAGxB,eAAgB,CA5DrB,kCAgEK,YAAa,CACd,CrBjJL,6BqBgFC,gMAGK,eAAgB,CAChB,cAAe,CAChB,CrBlGL,0BqB6FA,kBAoBI,oBAAqB,CACrB,0BAA2B,CArB9B,8BAwBK,kBAAmB,CAxBxB,6CA2BO,iBAAkB,CA3BzB,sJA+BO,mB9BwhB6B,C8BvhB7B,kB9BuhB6B,C8BvjBpC,gMAsCK,gBAAiB,CAtCtB,qCAqDK,gBAAiB,CArDtB,mCAyDK,uBAAwB,CAGxB,eAAgB,CA5DrB,kCAgEK,YAAa,CACd,CrBjJL,6BqBgFC,gMAGK,eAAgB,CAChB,cAAe,CAChB,CrBlGL,0BqB6FA,kBAoBI,oBAAqB,CACrB,0BAA2B,CArB9B,8BAwBK,kBAAmB,CAxBxB,6CA2BO,iBAAkB,CA3BzB,sJA+BO,mB9BwhB6B,C8BvhB7B,kB9BuhB6B,C8BvjBpC,gMAsCK,gBAAiB,CAtCtB,qCAqDK,gBAAiB,CArDtB,mCAyDK,uBAAwB,CAGxB,eAAgB,CA5DrB,kCAgEK,YAAa,CACd,CrBjJL,8BqBgFC,gMAGK,eAAgB,CAChB,cAAe,CAChB,CrBlGL,2BqB6FA,kBAoBI,oBAAqB,CACrB,0BAA2B,CArB9B,8BAwBK,kBAAmB,CAxBxB,6CA2BO,iBAAkB,CA3BzB,sJA+BO,mB9BwhB6B,C8BvhB7B,kB9BuhB6B,C8BvjBpC,gMAsCK,gBAAiB,CAtCtB,qCAqDK,gBAAiB,CArDtB,mCAyDK,uBAAwB,CAGxB,eAAgB,CA5DrB,kCAgEK,YAAa,CACd,CAtET,eAyBQ,oBAAqB,CACrB,0BAA2B,CA1BnC,8KAQU,eAAgB,CAChB,cAAe,CATzB,2BA6BU,kBAAmB,CA7B7B,0CAgCY,iBAAkB,CAhC9B,6IAoCY,mB9BwhB6B,C8BvhB7B,kB9BuhB6B,C8B5jBzC,8KA2CU,gBAAiB,CA3C3B,kCA0DU,gBAAiB,CA1D3B,gCA8DU,uBAAwB,CAGxB,eAAgB,CAjE1B,+BAqEU,YAAa,CACd,4BAcL,qB/BxNkC,CGApC,oE4B2NI,qB/B3NgC,CGGnC,0I4B8NG,qB/BjOgC,CGApC,wT4BoOM,qB/BpO8B,CGGnC,qK4BqOK,qB/BxO8B,C+BsNtC,snBA0BM,qB/BhPgC,C+BsNtC,8BA+BI,qB/BrPkC,C+BsPlC,4B/BtPkC,C+BsNtC,mCAoCI,+QhB7M8E,CgByKlF,2BAwCI,qB/B9PkC,C+BsNtC,6BA0CM,qB/BhQgC,CGApC,sE4BmQM,qB/BnQ8B,CGGnC,2B4ByQC,U/BtRkC,CGUpC,kE4B+QI,U/BzRgC,CGanC,uI4BkRG,2B/B/RgC,CGUpC,kT4BwRM,4B/BlS8B,CGanC,kK4ByRK,4B/BtS8B,C+BoRtC,0mBA0BM,U/B9SgC,C+BoRtC,6BA+BI,2B/BnTkC,C+BoTlC,kC/BpTkC,C+BoRtC,kCAoCI,qRhBjQ8E,CgB6NlF,0BAwCI,2B/B5TkC,C+BoRtC,4BA0CM,U/B9TgC,CGUpC,oE4BuTM,U/BjU8B,CGanC,M6BdD,iBAAkB,CAClB,YAAa,CACb,qBAAsB,CACtB,WAAY,CAEZ,oBAAqB,CACrB,qBhCLoC,CgCMpC,0BAA2B,CAC3B,wBhCLuC,CgCJzC,SAaI,cAAe,CACf,aAAc,CAdlB,kBAkBI,kBAAmB,CACnB,qBAAsB,CAnB1B,8BAsBM,kBAAmB,CAtBzB,6BA2BM,qBAAsB,CA3B5B,8DAoCI,YAAa,CACd,uBAMD,aAAc,CAGd,cAAe,CACf,e/B+wByC,C+B7wB1C,YAGC,oB/BywBwC,C+BxwBzC,eAGC,mBAAgC,CAChC,eAAgB,CACjB,sBAGC,eAAgB,C7BrDhB,iB6B0DE,oBAAqB,C7B1DD,sB6B8DpB,mB/BwvBuC,C+BvvBxC,aAQD,sB/B+uByC,C+B9uBzC,eAAgB,CAEhB,wBhC/EuC,CgCgFvC,+BhC/EuC,CgCoFxC,aAGC,sB/BmuByC,C+BjuBzC,wBhC1FuC,CgC2FvC,4BhC1FuC,CgC+FxC,kBAQC,qBAAkC,CAClC,qB/BitBwC,C+BhtBxC,oBAAiC,CACjC,eAAgB,CACjB,mBAGC,qBAAkC,CAClC,oBAAiC,CAClC,kBAIC,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,e/B4sByC,C+B1sB1C,yCAKC,aAAc,CACd,UAAW,CACZ,iBAiBG,kB/BorBuD,CSnxBvD,0BsB6FJ,WAMI,YAAa,CACb,kBAAmB,CACnB,kB/B8qBuD,C+B7qBvD,iB/B6qBuD,C+BtrB3D,iBAaM,WAAY,CACZ,iB/BwqBqD,C+BvqBrD,eAAgB,CAChB,gB/BsqBqD,C+BrqBtD,CASL,kBAII,kB/BwpBuD,CSnxBvD,0BsBuHJ,YAQI,YAAa,CACb,kBAAmB,CATvB,kBAcM,WAAY,CACZ,eAAgB,CAftB,wBAkBQ,aAAc,CACd,aAAc,CACf,CA2CP,oBAEI,oB/B6kBsC,CSrwBtC,0BsBsLJ,cAMI,c/B0lBiC,C+BzlBjC,kB/B0lBuC,C+BzlBvC,SAAU,CACV,QAAS,CATb,oBAYM,oBAAqB,CACrB,UAAW,CACZ,CASL,WACE,oBAAqB,CADvB,iBAII,eAAgB,CAJpB,oCAOM,eAAgB,CAPtB,8BAiBM,kB/B9C2B,C+B+C5B,YC1RH,YAAa,CACb,cAAe,CACf,mBhCkiCsC,CgCjiCtC,oBjC0EsC,CiCxEtC,eAAgB,CAChB,qBjCsEoC,CiCpErC,kCAKG,kBhCwhCqC,CgC3hCzC,0CAMM,UAAW,CACX,mBhCohCmC,CgCnhCnC,ajCPmC,CiCQnC,WhCyhCuC,CgCliC7C,gDAoBI,yBAA0B,CApB9B,gDAwBI,oBAAqB,CAxBzB,wBA4BI,ajC3BqC,CiC4BtC,YCvCD,YAAa,C7BGb,cAAe,CACf,eAAgB,C6BDjB,wDAGC,iBAAkB,CAClB,aAAc,CACd,oBjCgxBwC,CiC/wBxC,gBjCkO+B,CiCjO/B,gBjCmxBsC,CiClxBtC,UlCMuC,CkCJvC,qBlCRoC,CkCSpC,wBlCNuC,CkCHzC,0EAYI,SAAU,CACV,ajC8J8D,CiC7J9D,oBAAqB,CACrB,wBlCbqC,CkCcrC,oBlCbqC,CkCHzC,0EAoBI,SAAU,CACV,SjC2wBiC,CiC1wBjC,0ClCVqC,CkCWtC,oXAMG,aAAc,CAHpB,uUAcI,SAAU,CACV,UlCzCkC,CkC0ClC,qBlC9BqC,CkC+BrC,iBlC/BqC,CkCczC,yVAqBI,alCzCqC,CkC0CrC,mBAAoB,CAEpB,WAAY,CACZ,qBlCnDkC,CkCoDlC,oBlCjDqC,CmCNvC,gLACE,qBlCyxBsC,CCzmBpC,oBAAW,CiC9Kb,elCmO6B,CkCtO/B,gLACE,oBlCuxBqC,CCvmBnC,mBAAW,CiC9Kb,elCoO6B,CkCnO9B,OCDD,oBAAqB,CACrB,kBnC25BsC,CC9vBpC,aAAW,CkC3Jb,enCuR+B,CmCtR/B,aAAc,CACd,iBAAkB,CAClB,kBAAmB,CACnB,uBAAwB,ClBGpB,iIjBgb6I,CiB5a7I,wCkBfN,OlBgBQ,eAAgB,CkBMvB,CjCXC,4BiCGI,oBAAqB,CjCAxB,aiCMC,YAAa,CACd,YAKD,iBAAkB,CAClB,QAAS,CACV,YAOC,kBnCg4BsC,CmC/3BtC,iBnC+3BsC,CmC73BvC,eC1CC,UrCKoC,CqCJpC,qBrCgBuC,CGFvC,4CkCVI,UrCAgC,CqCChC,qBAAkC,ClCYrC,4CkCPG,SAAU,CACV,yCrCKmC,CqCJpC,iBAbH,arCcuC,CqCbvC,wBrCOuC,CGOvC,gDkCVI,arCSmC,CqCRnC,wBAAkC,ClCYrC,gDkCPG,SAAU,CACV,4CrCJmC,CqCKpC,eAbH,UrCKoC,CqCJpC,wBrCuBuC,CGTvC,4CkCVI,UrCAgC,CqCChC,wBAAkC,ClCYrC,4CkCPG,SAAU,CACV,2CrCYmC,CqCXpC,YAbH,arCcuC,CqCbvC,wBrCyBuC,CGXvC,sCkCVI,arCSmC,CqCRnC,wBAAkC,ClCYrC,sCkCPG,SAAU,CACV,2CrCcmC,CqCbpC,eAbH,arCcuC,CqCbvC,qBrCsBuC,CGRvC,4CkCVI,arCSmC,CqCRnC,wBAAkC,ClCYrC,4CkCPG,SAAU,CACV,0CrCWmC,CqCVpC,cAbH,UrCKoC,CqCJpC,wBrCoBuC,CGNvC,0CkCVI,UrCAgC,CqCChC,wBAAkC,ClCYrC,0CkCPG,SAAU,CACV,4CrCSmC,CqCRpC,aAbH,arCcuC,CqCbvC,wBrCKuC,CGSvC,wCkCVI,arCSmC,CqCRnC,wBAAkC,ClCYrC,wCkCPG,SAAU,CACV,4CrCNmC,CqCOpC,YAbH,UrCKoC,CqCJpC,wBrCYuC,CGEvC,sCkCVI,Ur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BM,oB1C0HuB,C0CzHvB,mBAAoB,CApB1B,mEAuBQ,gB1CsHqB,C0CrHrB,qB1CqHqB,C0CpHtB,CjC5DP,2BiCmCA,0BACE,kBAAmB,CADrB,kDAeM,YAAa,CAfnB,4DAmBM,oB1C0HuB,C0CzHvB,mBAAoB,CApB1B,mEAuBQ,gB1CsHqB,C0CrHrB,qB1CqHqB,C0CpHtB,CAaX,mCAII,oB1CmG6B,C0CvGjC,8CAOM,qBAAsB,CCzI1B,yBACE,a7BqG8D,C6BpG9D,wB7BoG8D,CZzFhE,4GyCPM,a7BgG0D,C6B/F1D,wBAAyC,CzCS9C,uDyCLK,U5CR8B,C4CS9B,wB7B0F0D,C6BzF1D,oB7ByF0D,C6BtGhE,2BACE,a7BqG8D,C6BpG9D,wB7BoG8D,CZzFhE,gHyCPM,a7BgG0D,C6B/F1D,wBAAyC,CzCS9C,yDyCLK,U5CR8B,C4CS9B,wB7B0F0D,C6BzF1D,oB7ByF0D,C6BtGhE,yBACE,a7BqG8D,C6BpG9D,wB7BoG8D,CZzFhE,4GyCPM,a7BgG0D,C6B/F1D,wBAAyC,CzCS9C,uDyCLK,U5CR8B,C4CS9B,wB7B0F0D,C6BzF1D,oB7ByF0D,C6BtGhE,sBACE,a7BqG8D,C6BpG9D,wB7BoG8D,CZzFhE,sGyCPM,a7BgG0D,C6B/F1D,wBAAyC,CzCS9C,oDyCLK,U5CR8B,C4CS9B,wB7B0F0D,C6BzF1D,oB7ByF0D,C6BtGhE,yBACE,a7BqG8D,C6BpG9D,wB7BoG8D,CZzFhE,4GyCPM,a7BgG0D,C6B/F1D,wBAAyC,CzCS9C,uDyCLK,U5CR8B,C4CS9B,wB7B0F0D,C6BzF1D,oB7ByF0D,C6BtGhE,wBACE,a7BqG8D,C6BpG9D,wB7BoG8D,CZzFhE,0GyCPM,a7BgG0D,C6B/F1D,wBAAyC,CzCS9C,sDyCLK,U5CR8B,C4CS9B,wB7B0F0D,C6BzF1D,oB7ByF0D,C6BtGhE,uBACE,a7BqG8D,C6BpG9D,wB7BoG8D,CZzFhE,wGyCPM,a7BgG0D,C6B/F1D,wBAAyC,CzCS9C,qDyCLK,U5CR8B,C4CS9B,wB7B0F0D,C6BzF1D,oB7ByF0D,C6BtGhE,sBACE,a7BqG8D,C6BpG9D,wB7BoG8D,CZzFhE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\",\"sourcesContent\":[\"/*!\\n * CoreUI - Open Source Bootstrap Admin Template\\n * @version v1.0.6\\n * @link http://coreui.io\\n * Copyright (c) 2017 creativeLabs Łukasz Holeczek\\n * @license MIT\\n */\\n\\n// Override Boostrap variables\\n@import \\\"bootstrap-variables\\\";\\n\\n// Import Bootstrap source files\\n@import \\\"~bootstrap/scss/bootstrap\\\";\\n\\n// Override core variables\\n@import \\\"core-variables\\\";\\n\\n// Import core styles\\n@import \\\"core/core\\\";\\n\\n// Custom styles\\n@import \\\"custom\\\";\\n\",\"/*!\\n * Bootstrap v4.6.1 (https://getbootstrap.com/)\\n * Copyright 2011-2021 The Bootstrap Authors\\n * Copyright 2011-2021 Twitter, Inc.\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\\n */\\n\\n@import \\\"functions\\\";\\n@import \\\"variables\\\";\\n@import \\\"mixins\\\";\\n@import \\\"root\\\";\\n@import \\\"reboot\\\";\\n@import \\\"type\\\";\\n@import \\\"images\\\";\\n@import \\\"code\\\";\\n@import \\\"grid\\\";\\n@import \\\"tables\\\";\\n@import \\\"forms\\\";\\n@import \\\"buttons\\\";\\n@import \\\"transitions\\\";\\n@import \\\"dropdown\\\";\\n@import \\\"button-group\\\";\\n@import \\\"input-group\\\";\\n@import \\\"custom-forms\\\";\\n@import \\\"nav\\\";\\n@import \\\"navbar\\\";\\n@import \\\"card\\\";\\n@import \\\"breadcrumb\\\";\\n@import \\\"pagination\\\";\\n@import \\\"badge\\\";\\n@import \\\"jumbotron\\\";\\n@import \\\"alert\\\";\\n@import \\\"progress\\\";\\n@import \\\"media\\\";\\n@import \\\"list-group\\\";\\n@import \\\"close\\\";\\n@import \\\"toasts\\\";\\n@import \\\"modal\\\";\\n@import \\\"tooltip\\\";\\n@import \\\"popover\\\";\\n@import \\\"carousel\\\";\\n@import \\\"spinners\\\";\\n@import \\\"utilities\\\";\\n@import \\\"print\\\";\\n\",\":root {\\n // Custom variable values only support SassScript inside `#{}`.\\n @each $color, $value in $colors {\\n --#{$color}: #{$value};\\n }\\n\\n @each $color, $value in $theme-colors {\\n --#{$color}: #{$value};\\n }\\n\\n @each $bp, $value in $grid-breakpoints {\\n --breakpoint-#{$bp}: #{$value};\\n }\\n\\n // Use `inspect` for lists so that quoted items keep the quotes.\\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\\n --font-family-monospace: #{inspect($font-family-monospace)};\\n}\\n\",\"// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\\n\\n// Reboot\\n//\\n// Normalization of HTML elements, manually forked from Normalize.css to remove\\n// styles targeting irrelevant browsers while applying new styles.\\n//\\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\\n\\n\\n// Document\\n//\\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\\n// 2. Change the default font family in all browsers.\\n// 3. Correct the line height in all browsers.\\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\\n// 5. Change the default tap highlight to be completely transparent in iOS.\\n\\n*,\\n*::before,\\n*::after {\\n box-sizing: border-box; // 1\\n}\\n\\nhtml {\\n font-family: sans-serif; // 2\\n line-height: 1.15; // 3\\n -webkit-text-size-adjust: 100%; // 4\\n -webkit-tap-highlight-color: rgba($black, 0); // 5\\n}\\n\\n// Shim for \\\"new\\\" HTML5 structural elements to display correctly (IE10, older browsers)\\n// TODO: remove in v5\\n// stylelint-disable-next-line selector-list-comma-newline-after\\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\\n display: block;\\n}\\n\\n// Body\\n//\\n// 1. Remove the margin in all browsers.\\n// 2. As a best practice, apply a default `background-color`.\\n// 3. Set an explicit initial text-align value so that we can later use\\n// the `inherit` value on things like `<th>` elements.\\n\\nbody {\\n margin: 0; // 1\\n font-family: $font-family-base;\\n @include font-size($font-size-base);\\n font-weight: $font-weight-base;\\n line-height: $line-height-base;\\n color: $body-color;\\n text-align: left; // 3\\n background-color: $body-bg; // 2\\n}\\n\\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\\n// on elements that programmatically receive focus but wouldn't normally show a visible\\n// focus outline. In general, this would mean that the outline is only applied if the\\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\\n// wants focus outlines to always be presented.\\n//\\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\\n[tabindex=\\\"-1\\\"]:focus:not(:focus-visible) {\\n outline: 0 !important;\\n}\\n\\n\\n// Content grouping\\n//\\n// 1. Add the correct box sizing in Firefox.\\n// 2. Show the overflow in Edge and IE.\\n\\nhr {\\n box-sizing: content-box; // 1\\n height: 0; // 1\\n overflow: visible; // 2\\n}\\n\\n\\n//\\n// Typography\\n//\\n\\n// Remove top margins from headings\\n//\\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\\n// margin for easier control within type scales as it avoids margin collapsing.\\n// stylelint-disable-next-line selector-list-comma-newline-after\\nh1, h2, h3, h4, h5, h6 {\\n margin-top: 0;\\n margin-bottom: $headings-margin-bottom;\\n}\\n\\n// Reset margins on paragraphs\\n//\\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\\n// bottom margin to use `rem` units instead of `em`.\\np {\\n margin-top: 0;\\n margin-bottom: $paragraph-margin-bottom;\\n}\\n\\n// Abbreviations\\n//\\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\\n// 3. Add explicit cursor to indicate changed behavior.\\n// 4. Remove the bottom border in Firefox 39-.\\n// 5. Prevent the text-decoration to be skipped.\\n\\nabbr[title],\\nabbr[data-original-title] { // 1\\n text-decoration: underline; // 2\\n text-decoration: underline dotted; // 2\\n cursor: help; // 3\\n border-bottom: 0; // 4\\n text-decoration-skip-ink: none; // 5\\n}\\n\\naddress {\\n margin-bottom: 1rem;\\n font-style: normal;\\n line-height: inherit;\\n}\\n\\nol,\\nul,\\ndl {\\n margin-top: 0;\\n margin-bottom: 1rem;\\n}\\n\\nol ol,\\nul ul,\\nol ul,\\nul ol {\\n margin-bottom: 0;\\n}\\n\\ndt {\\n font-weight: $dt-font-weight;\\n}\\n\\ndd {\\n margin-bottom: .5rem;\\n margin-left: 0; // Undo browser default\\n}\\n\\nblockquote {\\n margin: 0 0 1rem;\\n}\\n\\nb,\\nstrong {\\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\\n}\\n\\nsmall {\\n @include font-size(80%); // Add the correct font size in all browsers\\n}\\n\\n//\\n// Prevent `sub` and `sup` elements from affecting the line height in\\n// all browsers.\\n//\\n\\nsub,\\nsup {\\n position: relative;\\n @include font-size(75%);\\n line-height: 0;\\n vertical-align: baseline;\\n}\\n\\nsub { bottom: -.25em; }\\nsup { top: -.5em; }\\n\\n\\n//\\n// Links\\n//\\n\\na {\\n color: $link-color;\\n text-decoration: $link-decoration;\\n background-color: transparent; // Remove the gray background on active links in IE 10.\\n\\n @include hover() {\\n color: $link-hover-color;\\n text-decoration: $link-hover-decoration;\\n }\\n}\\n\\n// And undo these styles for placeholder links/named anchors (without href).\\n// It would be more straightforward to just use a[href] in previous block, but that\\n// causes specificity issues in many other styles that are too complex to fix.\\n// See https://github.com/twbs/bootstrap/issues/19402\\n\\na:not([href]):not([class]) {\\n color: inherit;\\n text-decoration: none;\\n\\n @include hover() {\\n color: inherit;\\n text-decoration: none;\\n }\\n}\\n\\n\\n//\\n// Code\\n//\\n\\npre,\\ncode,\\nkbd,\\nsamp {\\n font-family: $font-family-monospace;\\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\\n}\\n\\npre {\\n // Remove browser default top margin\\n margin-top: 0;\\n // Reset browser default of `1em` to use `rem`s\\n margin-bottom: 1rem;\\n // Don't allow content to break outside\\n overflow: auto;\\n // Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,\\n // making it impossible to interact with the content\\n -ms-overflow-style: scrollbar;\\n}\\n\\n\\n//\\n// Figures\\n//\\n\\nfigure {\\n // Apply a consistent margin strategy (matches our type styles).\\n margin: 0 0 1rem;\\n}\\n\\n\\n//\\n// Images and content\\n//\\n\\nimg {\\n vertical-align: middle;\\n border-style: none; // Remove the border on images inside links in IE 10-.\\n}\\n\\nsvg {\\n // Workaround for the SVG overflow bug in IE10/11 is still required.\\n // See https://github.com/twbs/bootstrap/issues/26878\\n overflow: hidden;\\n vertical-align: middle;\\n}\\n\\n\\n//\\n// Tables\\n//\\n\\ntable {\\n border-collapse: collapse; // Prevent double borders\\n}\\n\\ncaption {\\n padding-top: $table-cell-padding;\\n padding-bottom: $table-cell-padding;\\n color: $table-caption-color;\\n text-align: left;\\n caption-side: bottom;\\n}\\n\\n// 1. Removes font-weight bold by inheriting\\n// 2. Matches default `<td>` alignment by inheriting `text-align`.\\n// 3. Fix alignment for Safari\\n\\nth {\\n font-weight: $table-th-font-weight; // 1\\n text-align: inherit; // 2\\n text-align: -webkit-match-parent; // 3\\n}\\n\\n\\n//\\n// Forms\\n//\\n\\nlabel {\\n // Allow labels to use `margin` for spacing.\\n display: inline-block;\\n margin-bottom: $label-margin-bottom;\\n}\\n\\n// Remove the default `border-radius` that macOS Chrome adds.\\n//\\n// Details at https://github.com/twbs/bootstrap/issues/24093\\nbutton {\\n // stylelint-disable-next-line property-disallowed-list\\n border-radius: 0;\\n}\\n\\n// Explicitly remove focus outline in Chromium when it shouldn't be\\n// visible (e.g. as result of mouse click or touch tap). It already\\n// should be doing this automatically, but seems to currently be\\n// confused and applies its very visible two-tone outline anyway.\\n\\nbutton:focus:not(:focus-visible) {\\n outline: 0;\\n}\\n\\ninput,\\nbutton,\\nselect,\\noptgroup,\\ntextarea {\\n margin: 0; // Remove the margin in Firefox and Safari\\n font-family: inherit;\\n @include font-size(inherit);\\n line-height: inherit;\\n}\\n\\nbutton,\\ninput {\\n overflow: visible; // Show the overflow in Edge\\n}\\n\\nbutton,\\nselect {\\n text-transform: none; // Remove the inheritance of text transform in Firefox\\n}\\n\\n// Set the cursor for non-`<button>` buttons\\n//\\n// Details at https://github.com/twbs/bootstrap/pull/30562\\n[role=\\\"button\\\"] {\\n cursor: pointer;\\n}\\n\\n// Remove the inheritance of word-wrap in Safari.\\n//\\n// Details at https://github.com/twbs/bootstrap/issues/24990\\nselect {\\n word-wrap: normal;\\n}\\n\\n\\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\\n// controls in Android 4.\\n// 2. Correct the inability to style clickable types in iOS and Safari.\\nbutton,\\n[type=\\\"button\\\"], // 1\\n[type=\\\"reset\\\"],\\n[type=\\\"submit\\\"] {\\n -webkit-appearance: button; // 2\\n}\\n\\n// Opinionated: add \\\"hand\\\" cursor to non-disabled button elements.\\n@if $enable-pointer-cursor-for-buttons {\\n button,\\n [type=\\\"button\\\"],\\n [type=\\\"reset\\\"],\\n [type=\\\"submit\\\"] {\\n &:not(:disabled) {\\n cursor: pointer;\\n }\\n }\\n}\\n\\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\\nbutton::-moz-focus-inner,\\n[type=\\\"button\\\"]::-moz-focus-inner,\\n[type=\\\"reset\\\"]::-moz-focus-inner,\\n[type=\\\"submit\\\"]::-moz-focus-inner {\\n padding: 0;\\n border-style: none;\\n}\\n\\ninput[type=\\\"radio\\\"],\\ninput[type=\\\"checkbox\\\"] {\\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\\n padding: 0; // 2. Remove the padding in IE 10-\\n}\\n\\n\\ntextarea {\\n overflow: auto; // Remove the default vertical scrollbar in IE.\\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\\n resize: vertical;\\n}\\n\\nfieldset {\\n // Browsers set a default `min-width: min-content;` on fieldsets,\\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\\n // So we reset that to ensure fieldsets behave more like a standard block element.\\n // See https://github.com/twbs/bootstrap/issues/12359\\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\\n min-width: 0;\\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\\n padding: 0;\\n margin: 0;\\n border: 0;\\n}\\n\\n// 1. Correct the text wrapping in Edge and IE.\\n// 2. Correct the color inheritance from `fieldset` elements in IE.\\nlegend {\\n display: block;\\n width: 100%;\\n max-width: 100%; // 1\\n padding: 0;\\n margin-bottom: .5rem;\\n @include font-size(1.5rem);\\n line-height: inherit;\\n color: inherit; // 2\\n white-space: normal; // 1\\n}\\n\\nprogress {\\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\\n}\\n\\n// Correct the cursor style of increment and decrement buttons in Chrome.\\n[type=\\\"number\\\"]::-webkit-inner-spin-button,\\n[type=\\\"number\\\"]::-webkit-outer-spin-button {\\n height: auto;\\n}\\n\\n[type=\\\"search\\\"] {\\n // This overrides the extra rounded corners on search inputs in iOS so that our\\n // `.form-control` class can properly style them. Note that this cannot simply\\n // be added to `.form-control` as it's not specific enough. For details, see\\n // https://github.com/twbs/bootstrap/issues/11586.\\n outline-offset: -2px; // 2. Correct the outline style in Safari.\\n -webkit-appearance: none;\\n}\\n\\n//\\n// Remove the inner padding in Chrome and Safari on macOS.\\n//\\n\\n[type=\\\"search\\\"]::-webkit-search-decoration {\\n -webkit-appearance: none;\\n}\\n\\n//\\n// 1. Correct the inability to style clickable types in iOS and Safari.\\n// 2. Change font properties to `inherit` in Safari.\\n//\\n\\n::-webkit-file-upload-button {\\n font: inherit; // 2\\n -webkit-appearance: button; // 1\\n}\\n\\n//\\n// Correct element displays\\n//\\n\\noutput {\\n display: inline-block;\\n}\\n\\nsummary {\\n display: list-item; // Add the correct display in all browsers\\n cursor: pointer;\\n}\\n\\ntemplate {\\n display: none; // Add the correct display in IE\\n}\\n\\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\\n// Needed for proper display in IE 10-.\\n[hidden] {\\n display: none !important;\\n}\\n\",\"// Bootstrap overrides\\n\\n//\\n// Color system\\n//\\n\\n$white: #fff;\\n$gray-100: #f0f3f5;\\n$gray-200: #c2cfd6;\\n$gray-300: #a4b7c1;\\n$gray-400: #869fac;\\n$gray-500: #678898;\\n$gray-600: #536c79;\\n$gray-700: #3e515b;\\n$gray-800: #29363d;\\n$gray-900: #151b1e;\\n$black: #000 !default;\\n\\n$blue: #003399;\\n$indigo: #6610f2 !default;\\n$purple: #6f42c1 !default;\\n$pink: #e83e8c !default;\\n$red: #f86c6b;\\n$orange: #f8cb00;\\n$yellow: #FFCC00 !default;\\n$green: #4dbd74;\\n$teal: #20c997 !default;\\n$cyan: #63c2de;\\n\\n$colors: (\\n blue: $blue,\\n indigo: $indigo,\\n purple: $purple,\\n pink: $pink,\\n red: $red,\\n orange: $orange,\\n yellow: $yellow,\\n green: $green,\\n teal: $teal,\\n cyan: $cyan,\\n white: $white,\\n gray: $gray-600,\\n gray-dark: $gray-800\\n);\\n\\n$theme-colors: (\\n primary: $blue,\\n secondary: $gray-300,\\n success: $green,\\n info: $cyan,\\n warning: $yellow,\\n danger: $red,\\n light: $gray-100,\\n dark: $gray-800\\n);\\n\\n// Options\\n//\\n// Quickly modify global styling by enabling or disabling optional features.\\n\\n$enable-transitions: true;\\n$enable-rounded: false;\\n\\n// Body\\n//\\n// Settings for the `<body>` element.\\n\\n$body-bg: #e4e5e6;\\n\\n// Typography\\n//\\n// Font, line-height, and color for body text, headings, and more.\\n\\n$font-size-base: 0.875rem;\\n\\n// Breadcrumbs\\n\\n$breadcrumb-bg: #fff;\\n$breadcrumb-margin-bottom: 1.5rem;\\n\\n// Cards\\n\\n$card-border-color: $gray-200;\\n$card-cap-bg: $gray-100;\\n\\n// Dropdowns\\n\\n$dropdown-padding-y: 0;\\n$dropdown-border-color: $gray-200;\\n$dropdown-divider-bg: $gray-100;\\n\\n// Buttons\\n\\n$btn-secondary-border: $gray-300;\\n\\n// Progress bars\\n\\n$progress-bg: $gray-100;\\n\\n// Tables\\n\\n$table-bg-accent: $gray-100;\\n$table-bg-hover: $gray-100;\\n\\n// Forms\\n\\n$input-group-addon-bg: $gray-100;\\n$input-border-color: $gray-200;\\n$input-group-addon-border-color: $gray-200;\\n\",\"// Variables\\n//\\n// Variables should follow the `$component-state-property-size` formula for\\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\\n\\n// Color system\\n\\n$white: #fff !default;\\n$gray-100: #f8f9fa !default;\\n$gray-200: #e9ecef !default;\\n$gray-300: #dee2e6 !default;\\n$gray-400: #ced4da !default;\\n$gray-500: #adb5bd !default;\\n$gray-600: #6c757d !default;\\n$gray-700: #495057 !default;\\n$gray-800: #343a40 !default;\\n$gray-900: #212529 !default;\\n$black: #000 !default;\\n\\n$grays: () !default;\\n$grays: map-merge(\\n (\\n \\\"100\\\": $gray-100,\\n \\\"200\\\": $gray-200,\\n \\\"300\\\": $gray-300,\\n \\\"400\\\": $gray-400,\\n \\\"500\\\": $gray-500,\\n \\\"600\\\": $gray-600,\\n \\\"700\\\": $gray-700,\\n \\\"800\\\": $gray-800,\\n \\\"900\\\": $gray-900\\n ),\\n $grays\\n);\\n\\n$blue: #007bff !default;\\n$indigo: #6610f2 !default;\\n$purple: #6f42c1 !default;\\n$pink: #e83e8c !default;\\n$red: #dc3545 !default;\\n$orange: #fd7e14 !default;\\n$yellow: #ffc107 !default;\\n$green: #28a745 !default;\\n$teal: #20c997 !default;\\n$cyan: #17a2b8 !default;\\n\\n$colors: () !default;\\n$colors: map-merge(\\n (\\n \\\"blue\\\": $blue,\\n \\\"indigo\\\": $indigo,\\n \\\"purple\\\": $purple,\\n \\\"pink\\\": $pink,\\n \\\"red\\\": $red,\\n \\\"orange\\\": $orange,\\n \\\"yellow\\\": $yellow,\\n \\\"green\\\": $green,\\n \\\"teal\\\": $teal,\\n \\\"cyan\\\": $cyan,\\n \\\"white\\\": $white,\\n \\\"gray\\\": $gray-600,\\n \\\"gray-dark\\\": $gray-800\\n ),\\n $colors\\n);\\n\\n$primary: $blue !default;\\n$secondary: $gray-600 !default;\\n$success: $green !default;\\n$info: $cyan !default;\\n$warning: $yellow !default;\\n$danger: $red !default;\\n$light: $gray-100 !default;\\n$dark: $gray-800 !default;\\n\\n$theme-colors: () !default;\\n$theme-colors: map-merge(\\n (\\n \\\"primary\\\": $primary,\\n \\\"secondary\\\": $secondary,\\n \\\"success\\\": $success,\\n \\\"info\\\": $info,\\n \\\"warning\\\": $warning,\\n \\\"danger\\\": $danger,\\n \\\"light\\\": $light,\\n \\\"dark\\\": $dark\\n ),\\n $theme-colors\\n);\\n\\n// Set a specific jump point for requesting color jumps\\n$theme-color-interval: 8% !default;\\n\\n// The yiq lightness value that determines when the lightness of color changes from \\\"dark\\\" to \\\"light\\\". Acceptable values are between 0 and 255.\\n$yiq-contrasted-threshold: 150 !default;\\n\\n// Customize the light and dark text colors for use in our YIQ color contrast function.\\n$yiq-text-dark: $gray-900 !default;\\n$yiq-text-light: $white !default;\\n\\n// Characters which are escaped by the escape-svg function\\n$escaped-characters: (\\n (\\\"<\\\", \\\"%3c\\\"),\\n (\\\">\\\", \\\"%3e\\\"),\\n (\\\"#\\\", \\\"%23\\\"),\\n (\\\"(\\\", \\\"%28\\\"),\\n (\\\")\\\", \\\"%29\\\"),\\n) !default;\\n\\n\\n// Options\\n//\\n// Quickly modify global styling by enabling or disabling optional features.\\n\\n$enable-caret: true !default;\\n$enable-rounded: true !default;\\n$enable-shadows: false !default;\\n$enable-gradients: false !default;\\n$enable-transitions: true !default;\\n$enable-prefers-reduced-motion-media-query: true !default;\\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\\n$enable-grid-classes: true !default;\\n$enable-pointer-cursor-for-buttons: true !default;\\n$enable-print-styles: true !default;\\n$enable-responsive-font-sizes: false !default;\\n$enable-validation-icons: true !default;\\n$enable-deprecation-messages: true !default;\\n\\n\\n// Spacing\\n//\\n// Control the default styling of most Bootstrap elements by modifying these\\n// variables. Mostly focused on spacing.\\n// You can add more entries to the $spacers map, should you need more variation.\\n\\n$spacer: 1rem !default;\\n$spacers: () !default;\\n$spacers: map-merge(\\n (\\n 0: 0,\\n 1: ($spacer * .25),\\n 2: ($spacer * .5),\\n 3: $spacer,\\n 4: ($spacer * 1.5),\\n 5: ($spacer * 3)\\n ),\\n $spacers\\n);\\n\\n// This variable affects the `.h-*` and `.w-*` classes.\\n$sizes: () !default;\\n$sizes: map-merge(\\n (\\n 25: 25%,\\n 50: 50%,\\n 75: 75%,\\n 100: 100%,\\n auto: auto\\n ),\\n $sizes\\n);\\n\\n\\n// Body\\n//\\n// Settings for the `<body>` element.\\n\\n$body-bg: $white !default;\\n$body-color: $gray-900 !default;\\n\\n\\n// Links\\n//\\n// Style anchor elements.\\n\\n$link-color: theme-color(\\\"primary\\\") !default;\\n$link-decoration: none !default;\\n$link-hover-color: darken($link-color, 15%) !default;\\n$link-hover-decoration: underline !default;\\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\\n$emphasized-link-hover-darken-percentage: 15% !default;\\n\\n// Paragraphs\\n//\\n// Style p element.\\n\\n$paragraph-margin-bottom: 1rem !default;\\n\\n\\n// Grid breakpoints\\n//\\n// Define the minimum dimensions at which your layout will change,\\n// adapting to different screen sizes, for use in media queries.\\n\\n$grid-breakpoints: (\\n xs: 0,\\n sm: 576px,\\n md: 768px,\\n lg: 992px,\\n xl: 1200px\\n) !default;\\n\\n@include _assert-ascending($grid-breakpoints, \\\"$grid-breakpoints\\\");\\n@include _assert-starts-at-zero($grid-breakpoints, \\\"$grid-breakpoints\\\");\\n\\n\\n// Grid containers\\n//\\n// Define the maximum width of `.container` for different screen sizes.\\n\\n$container-max-widths: (\\n sm: 540px,\\n md: 720px,\\n lg: 960px,\\n xl: 1140px\\n) !default;\\n\\n@include _assert-ascending($container-max-widths, \\\"$container-max-widths\\\");\\n\\n\\n// Grid columns\\n//\\n// Set the number of columns and specify the width of the gutters.\\n\\n$grid-columns: 12 !default;\\n$grid-gutter-width: 30px !default;\\n$grid-row-columns: 6 !default;\\n\\n\\n// Components\\n//\\n// Define common padding and border radius sizes and more.\\n\\n$line-height-lg: 1.5 !default;\\n$line-height-sm: 1.5 !default;\\n\\n$border-width: 1px !default;\\n$border-color: $gray-300 !default;\\n\\n$border-radius: .25rem !default;\\n$border-radius-lg: .3rem !default;\\n$border-radius-sm: .2rem !default;\\n\\n$rounded-pill: 50rem !default;\\n\\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\\n\\n$component-active-color: $white !default;\\n$component-active-bg: theme-color(\\\"primary\\\") !default;\\n\\n$caret-width: .3em !default;\\n$caret-vertical-align: $caret-width * .85 !default;\\n$caret-spacing: $caret-width * .85 !default;\\n\\n$transition-base: all .2s ease-in-out !default;\\n$transition-fade: opacity .15s linear !default;\\n$transition-collapse: height .35s ease !default;\\n\\n$embed-responsive-aspect-ratios: () !default;\\n$embed-responsive-aspect-ratios: join(\\n (\\n (21 9),\\n (16 9),\\n (4 3),\\n (1 1),\\n ),\\n $embed-responsive-aspect-ratios\\n);\\n\\n// Typography\\n//\\n// Font, line-height, and color for body text, headings, and more.\\n\\n// stylelint-disable value-keyword-case\\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, \\\"Helvetica Neue\\\", Arial, \\\"Noto Sans\\\", \\\"Liberation Sans\\\", sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\" !default;\\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace !default;\\n$font-family-base: $font-family-sans-serif !default;\\n// stylelint-enable value-keyword-case\\n\\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\\n$font-size-lg: $font-size-base * 1.25 !default;\\n$font-size-sm: $font-size-base * .875 !default;\\n\\n$font-weight-lighter: lighter !default;\\n$font-weight-light: 300 !default;\\n$font-weight-normal: 400 !default;\\n$font-weight-bold: 700 !default;\\n$font-weight-bolder: bolder !default;\\n\\n$font-weight-base: $font-weight-normal !default;\\n$line-height-base: 1.5 !default;\\n\\n$h1-font-size: $font-size-base * 2.5 !default;\\n$h2-font-size: $font-size-base * 2 !default;\\n$h3-font-size: $font-size-base * 1.75 !default;\\n$h4-font-size: $font-size-base * 1.5 !default;\\n$h5-font-size: $font-size-base * 1.25 !default;\\n$h6-font-size: $font-size-base !default;\\n\\n$headings-margin-bottom: $spacer * .5 !default;\\n$headings-font-family: null !default;\\n$headings-font-weight: 500 !default;\\n$headings-line-height: 1.2 !default;\\n$headings-color: null !default;\\n\\n$display1-size: 6rem !default;\\n$display2-size: 5.5rem !default;\\n$display3-size: 4.5rem !default;\\n$display4-size: 3.5rem !default;\\n\\n$display1-weight: 300 !default;\\n$display2-weight: 300 !default;\\n$display3-weight: 300 !default;\\n$display4-weight: 300 !default;\\n$display-line-height: $headings-line-height !default;\\n\\n$lead-font-size: $font-size-base * 1.25 !default;\\n$lead-font-weight: 300 !default;\\n\\n$small-font-size: 80% !default;\\n\\n$text-muted: $gray-600 !default;\\n\\n$blockquote-small-color: $gray-600 !default;\\n$blockquote-small-font-size: $small-font-size !default;\\n$blockquote-font-size: $font-size-base * 1.25 !default;\\n\\n$hr-border-color: rgba($black, .1) !default;\\n$hr-border-width: $border-width !default;\\n\\n$mark-padding: .2em !default;\\n\\n$dt-font-weight: $font-weight-bold !default;\\n\\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\\n$nested-kbd-font-weight: $font-weight-bold !default;\\n\\n$list-inline-padding: .5rem !default;\\n\\n$mark-bg: #fcf8e3 !default;\\n\\n$hr-margin-y: $spacer !default;\\n\\n\\n// Tables\\n//\\n// Customizes the `.table` component with basic values, each used across all table variations.\\n\\n$table-cell-padding: .75rem !default;\\n$table-cell-padding-sm: .3rem !default;\\n\\n$table-color: $body-color !default;\\n$table-bg: null !default;\\n$table-accent-bg: rgba($black, .05) !default;\\n$table-hover-color: $table-color !default;\\n$table-hover-bg: rgba($black, .075) !default;\\n$table-active-bg: $table-hover-bg !default;\\n\\n$table-border-width: $border-width !default;\\n$table-border-color: $border-color !default;\\n\\n$table-head-bg: $gray-200 !default;\\n$table-head-color: $gray-700 !default;\\n$table-th-font-weight: null !default;\\n\\n$table-dark-color: $white !default;\\n$table-dark-bg: $gray-800 !default;\\n$table-dark-accent-bg: rgba($white, .05) !default;\\n$table-dark-hover-color: $table-dark-color !default;\\n$table-dark-hover-bg: rgba($white, .075) !default;\\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\\n\\n$table-striped-order: odd !default;\\n\\n$table-caption-color: $text-muted !default;\\n\\n$table-bg-level: -9 !default;\\n$table-border-level: -6 !default;\\n\\n\\n// Buttons + Forms\\n//\\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\\n\\n$input-btn-padding-y: .375rem !default;\\n$input-btn-padding-x: .75rem !default;\\n$input-btn-font-family: null !default;\\n$input-btn-font-size: $font-size-base !default;\\n$input-btn-line-height: $line-height-base !default;\\n\\n$input-btn-focus-width: .2rem !default;\\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\\n\\n$input-btn-padding-y-sm: .25rem !default;\\n$input-btn-padding-x-sm: .5rem !default;\\n$input-btn-font-size-sm: $font-size-sm !default;\\n$input-btn-line-height-sm: $line-height-sm !default;\\n\\n$input-btn-padding-y-lg: .5rem !default;\\n$input-btn-padding-x-lg: 1rem !default;\\n$input-btn-font-size-lg: $font-size-lg !default;\\n$input-btn-line-height-lg: $line-height-lg !default;\\n\\n$input-btn-border-width: $border-width !default;\\n\\n\\n// Buttons\\n//\\n// For each of Bootstrap's buttons, define text, background, and border color.\\n\\n$btn-padding-y: $input-btn-padding-y !default;\\n$btn-padding-x: $input-btn-padding-x !default;\\n$btn-font-family: $input-btn-font-family !default;\\n$btn-font-size: $input-btn-font-size !default;\\n$btn-line-height: $input-btn-line-height !default;\\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\\n\\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\\n$btn-font-size-sm: $input-btn-font-size-sm !default;\\n$btn-line-height-sm: $input-btn-line-height-sm !default;\\n\\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\\n$btn-font-size-lg: $input-btn-font-size-lg !default;\\n$btn-line-height-lg: $input-btn-line-height-lg !default;\\n\\n$btn-border-width: $input-btn-border-width !default;\\n\\n$btn-font-weight: $font-weight-normal !default;\\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\\n$btn-focus-width: $input-btn-focus-width !default;\\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\\n$btn-disabled-opacity: .65 !default;\\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\\n\\n$btn-link-disabled-color: $gray-600 !default;\\n\\n$btn-block-spacing-y: .5rem !default;\\n\\n// Allows for customizing button radius independently from global border radius\\n$btn-border-radius: $border-radius !default;\\n$btn-border-radius-lg: $border-radius-lg !default;\\n$btn-border-radius-sm: $border-radius-sm !default;\\n\\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\\n\\n\\n// Forms\\n\\n$label-margin-bottom: .5rem !default;\\n\\n$input-padding-y: $input-btn-padding-y !default;\\n$input-padding-x: $input-btn-padding-x !default;\\n$input-font-family: $input-btn-font-family !default;\\n$input-font-size: $input-btn-font-size !default;\\n$input-font-weight: $font-weight-base !default;\\n$input-line-height: $input-btn-line-height !default;\\n\\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\\n$input-font-size-sm: $input-btn-font-size-sm !default;\\n$input-line-height-sm: $input-btn-line-height-sm !default;\\n\\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\\n$input-font-size-lg: $input-btn-font-size-lg !default;\\n$input-line-height-lg: $input-btn-line-height-lg !default;\\n\\n$input-bg: $white !default;\\n$input-disabled-bg: $gray-200 !default;\\n\\n$input-color: $gray-700 !default;\\n$input-border-color: $gray-400 !default;\\n$input-border-width: $input-btn-border-width !default;\\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\\n\\n$input-border-radius: $border-radius !default;\\n$input-border-radius-lg: $border-radius-lg !default;\\n$input-border-radius-sm: $border-radius-sm !default;\\n\\n$input-focus-bg: $input-bg !default;\\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\\n$input-focus-color: $input-color !default;\\n$input-focus-width: $input-btn-focus-width !default;\\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\\n\\n$input-placeholder-color: $gray-600 !default;\\n$input-plaintext-color: $body-color !default;\\n\\n$input-height-border: $input-border-width * 2 !default;\\n\\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y * .5) !default;\\n\\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\\n$input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\\n$input-height-lg: add($input-line-height-lg * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\\n\\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\\n\\n$form-text-margin-top: .25rem !default;\\n\\n$form-check-input-gutter: 1.25rem !default;\\n$form-check-input-margin-y: .3rem !default;\\n$form-check-input-margin-x: .25rem !default;\\n\\n$form-check-inline-margin-x: .75rem !default;\\n$form-check-inline-input-margin-x: .3125rem !default;\\n\\n$form-grid-gutter-width: 10px !default;\\n$form-group-margin-bottom: 1rem !default;\\n\\n$input-group-addon-color: $input-color !default;\\n$input-group-addon-bg: $gray-200 !default;\\n$input-group-addon-border-color: $input-border-color !default;\\n\\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\\n\\n$custom-control-gutter: .5rem !default;\\n$custom-control-spacer-x: 1rem !default;\\n$custom-control-cursor: null !default;\\n\\n$custom-control-indicator-size: 1rem !default;\\n$custom-control-indicator-bg: $input-bg !default;\\n\\n$custom-control-indicator-bg-size: 50% 50% !default;\\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\\n$custom-control-indicator-border-color: $gray-500 !default;\\n$custom-control-indicator-border-width: $input-border-width !default;\\n\\n$custom-control-label-color: null !default;\\n\\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\\n$custom-control-label-disabled-color: $gray-600 !default;\\n\\n$custom-control-indicator-checked-color: $component-active-color !default;\\n$custom-control-indicator-checked-bg: $component-active-bg !default;\\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\\\"primary\\\"), .5) !default;\\n$custom-control-indicator-checked-box-shadow: null !default;\\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\\n\\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\\n\\n$custom-control-indicator-active-color: $component-active-color !default;\\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\\n$custom-control-indicator-active-box-shadow: null !default;\\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\\n\\n$custom-checkbox-indicator-border-radius: $border-radius !default;\\n$custom-checkbox-indicator-icon-checked: url(\\\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>\\\") !default;\\n\\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\\n$custom-checkbox-indicator-icon-indeterminate: url(\\\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'><path stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/></svg>\\\") !default;\\n$custom-checkbox-indicator-indeterminate-box-shadow: null !default;\\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\\n\\n$custom-radio-indicator-border-radius: 50% !default;\\n$custom-radio-indicator-icon-checked: url(\\\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'><circle r='3' fill='#{$custom-control-indicator-checked-color}'/></svg>\\\") !default;\\n\\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\\n$custom-switch-indicator-border-radius: $custom-control-indicator-size * .5 !default;\\n$custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;\\n\\n$custom-select-padding-y: $input-padding-y !default;\\n$custom-select-padding-x: $input-padding-x !default;\\n$custom-select-font-family: $input-font-family !default;\\n$custom-select-font-size: $input-font-size !default;\\n$custom-select-height: $input-height !default;\\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\\n$custom-select-font-weight: $input-font-weight !default;\\n$custom-select-line-height: $input-line-height !default;\\n$custom-select-color: $input-color !default;\\n$custom-select-disabled-color: $gray-600 !default;\\n$custom-select-bg: $input-bg !default;\\n$custom-select-disabled-bg: $gray-200 !default;\\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\\n$custom-select-indicator-color: $gray-800 !default;\\n$custom-select-indicator: url(\\\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'><path fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/></svg>\\\") !default;\\n$custom-select-background: escape-svg($custom-select-indicator) right $custom-select-padding-x center / $custom-select-bg-size no-repeat !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\\n\\n$custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default;\\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\\n\\n$custom-select-border-width: $input-border-width !default;\\n$custom-select-border-color: $input-border-color !default;\\n$custom-select-border-radius: $border-radius !default;\\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\\n\\n$custom-select-focus-border-color: $input-focus-border-color !default;\\n$custom-select-focus-width: $input-focus-width !default;\\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\\n\\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\\n$custom-select-font-size-sm: $input-font-size-sm !default;\\n$custom-select-height-sm: $input-height-sm !default;\\n\\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\\n$custom-select-font-size-lg: $input-font-size-lg !default;\\n$custom-select-height-lg: $input-height-lg !default;\\n\\n$custom-range-track-width: 100% !default;\\n$custom-range-track-height: .5rem !default;\\n$custom-range-track-cursor: pointer !default;\\n$custom-range-track-bg: $gray-300 !default;\\n$custom-range-track-border-radius: 1rem !default;\\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\\n\\n$custom-range-thumb-width: 1rem !default;\\n$custom-range-thumb-height: $custom-range-thumb-width !default;\\n$custom-range-thumb-bg: $component-active-bg !default;\\n$custom-range-thumb-border: 0 !default;\\n$custom-range-thumb-border-radius: 1rem !default;\\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\\n$custom-range-thumb-disabled-bg: $gray-500 !default;\\n\\n$custom-file-height: $input-height !default;\\n$custom-file-height-inner: $input-height-inner !default;\\n$custom-file-focus-border-color: $input-focus-border-color !default;\\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\\n$custom-file-disabled-bg: $input-disabled-bg !default;\\n\\n$custom-file-padding-y: $input-padding-y !default;\\n$custom-file-padding-x: $input-padding-x !default;\\n$custom-file-line-height: $input-line-height !default;\\n$custom-file-font-family: $input-font-family !default;\\n$custom-file-font-weight: $input-font-weight !default;\\n$custom-file-color: $input-color !default;\\n$custom-file-bg: $input-bg !default;\\n$custom-file-border-width: $input-border-width !default;\\n$custom-file-border-color: $input-border-color !default;\\n$custom-file-border-radius: $input-border-radius !default;\\n$custom-file-box-shadow: $input-box-shadow !default;\\n$custom-file-button-color: $custom-file-color !default;\\n$custom-file-button-bg: $input-group-addon-bg !default;\\n$custom-file-text: (\\n en: \\\"Browse\\\"\\n) !default;\\n\\n\\n// Form validation\\n\\n$form-feedback-margin-top: $form-text-margin-top !default;\\n$form-feedback-font-size: $small-font-size !default;\\n$form-feedback-valid-color: theme-color(\\\"success\\\") !default;\\n$form-feedback-invalid-color: theme-color(\\\"danger\\\") !default;\\n\\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\\n$form-feedback-icon-valid: url(\\\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/></svg>\\\") !default;\\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\\n$form-feedback-icon-invalid: url(\\\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}' viewBox='0 0 12 12'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>\\\") !default;\\n\\n$form-validation-states: () !default;\\n$form-validation-states: map-merge(\\n (\\n \\\"valid\\\": (\\n \\\"color\\\": $form-feedback-valid-color,\\n \\\"icon\\\": $form-feedback-icon-valid\\n ),\\n \\\"invalid\\\": (\\n \\\"color\\\": $form-feedback-invalid-color,\\n \\\"icon\\\": $form-feedback-icon-invalid\\n ),\\n ),\\n $form-validation-states\\n);\\n\\n// Z-index master list\\n//\\n// Warning: Avoid customizing these values. They're used for a bird's eye view\\n// of components dependent on the z-axis and are designed to all work together.\\n\\n$zindex-dropdown: 1000 !default;\\n$zindex-sticky: 1020 !default;\\n$zindex-fixed: 1030 !default;\\n$zindex-modal-backdrop: 1040 !default;\\n$zindex-modal: 1050 !default;\\n$zindex-popover: 1060 !default;\\n$zindex-tooltip: 1070 !default;\\n\\n\\n// Navs\\n\\n$nav-link-padding-y: .5rem !default;\\n$nav-link-padding-x: 1rem !default;\\n$nav-link-disabled-color: $gray-600 !default;\\n\\n$nav-tabs-border-color: $gray-300 !default;\\n$nav-tabs-border-width: $border-width !default;\\n$nav-tabs-border-radius: $border-radius !default;\\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\\n$nav-tabs-link-active-color: $gray-700 !default;\\n$nav-tabs-link-active-bg: $body-bg !default;\\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\\n\\n$nav-pills-border-radius: $border-radius !default;\\n$nav-pills-link-active-color: $component-active-color !default;\\n$nav-pills-link-active-bg: $component-active-bg !default;\\n\\n$nav-divider-color: $gray-200 !default;\\n$nav-divider-margin-y: $spacer * .5 !default;\\n\\n\\n// Navbar\\n\\n$navbar-padding-y: $spacer * .5 !default;\\n$navbar-padding-x: $spacer !default;\\n\\n$navbar-nav-link-padding-x: .5rem !default;\\n\\n$navbar-brand-font-size: $font-size-lg !default;\\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) * .5 !default;\\n\\n$navbar-toggler-padding-y: .25rem !default;\\n$navbar-toggler-padding-x: .75rem !default;\\n$navbar-toggler-font-size: $font-size-lg !default;\\n$navbar-toggler-border-radius: $btn-border-radius !default;\\n\\n$navbar-nav-scroll-max-height: 75vh !default;\\n\\n$navbar-dark-color: rgba($white, .5) !default;\\n$navbar-dark-hover-color: rgba($white, .75) !default;\\n$navbar-dark-active-color: $white !default;\\n$navbar-dark-disabled-color: rgba($white, .25) !default;\\n$navbar-dark-toggler-icon-bg: url(\\\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-dark-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\\\") !default;\\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\\n\\n$navbar-light-color: rgba($black, .5) !default;\\n$navbar-light-hover-color: rgba($black, .7) !default;\\n$navbar-light-active-color: rgba($black, .9) !default;\\n$navbar-light-disabled-color: rgba($black, .3) !default;\\n$navbar-light-toggler-icon-bg: url(\\\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\\\") !default;\\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\\n\\n$navbar-light-brand-color: $navbar-light-active-color !default;\\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\\n\\n\\n// Dropdowns\\n//\\n// Dropdown menu container and contents.\\n\\n$dropdown-min-width: 10rem !default;\\n$dropdown-padding-x: 0 !default;\\n$dropdown-padding-y: .5rem !default;\\n$dropdown-spacer: .125rem !default;\\n$dropdown-font-size: $font-size-base !default;\\n$dropdown-color: $body-color !default;\\n$dropdown-bg: $white !default;\\n$dropdown-border-color: rgba($black, .15) !default;\\n$dropdown-border-radius: $border-radius !default;\\n$dropdown-border-width: $border-width !default;\\n$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;\\n$dropdown-divider-bg: $gray-200 !default;\\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\\n\\n$dropdown-link-color: $gray-900 !default;\\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\\n$dropdown-link-hover-bg: $gray-200 !default;\\n\\n$dropdown-link-active-color: $component-active-color !default;\\n$dropdown-link-active-bg: $component-active-bg !default;\\n\\n$dropdown-link-disabled-color: $gray-500 !default;\\n\\n$dropdown-item-padding-y: .25rem !default;\\n$dropdown-item-padding-x: 1.5rem !default;\\n\\n$dropdown-header-color: $gray-600 !default;\\n$dropdown-header-padding: $dropdown-padding-y $dropdown-item-padding-x !default;\\n\\n\\n// Pagination\\n\\n$pagination-padding-y: .5rem !default;\\n$pagination-padding-x: .75rem !default;\\n$pagination-padding-y-sm: .25rem !default;\\n$pagination-padding-x-sm: .5rem !default;\\n$pagination-padding-y-lg: .75rem !default;\\n$pagination-padding-x-lg: 1.5rem !default;\\n$pagination-line-height: 1.25 !default;\\n\\n$pagination-color: $link-color !default;\\n$pagination-bg: $white !default;\\n$pagination-border-width: $border-width !default;\\n$pagination-border-color: $gray-300 !default;\\n\\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\\n$pagination-focus-outline: 0 !default;\\n\\n$pagination-hover-color: $link-hover-color !default;\\n$pagination-hover-bg: $gray-200 !default;\\n$pagination-hover-border-color: $gray-300 !default;\\n\\n$pagination-active-color: $component-active-color !default;\\n$pagination-active-bg: $component-active-bg !default;\\n$pagination-active-border-color: $pagination-active-bg !default;\\n\\n$pagination-disabled-color: $gray-600 !default;\\n$pagination-disabled-bg: $white !default;\\n$pagination-disabled-border-color: $gray-300 !default;\\n\\n$pagination-border-radius-sm: $border-radius-sm !default;\\n$pagination-border-radius-lg: $border-radius-lg !default;\\n\\n\\n// Jumbotron\\n\\n$jumbotron-padding: 2rem !default;\\n$jumbotron-color: null !default;\\n$jumbotron-bg: $gray-200 !default;\\n\\n\\n// Cards\\n\\n$card-spacer-y: .75rem !default;\\n$card-spacer-x: 1.25rem !default;\\n$card-border-width: $border-width !default;\\n$card-border-radius: $border-radius !default;\\n$card-border-color: rgba($black, .125) !default;\\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\\n$card-cap-bg: rgba($black, .03) !default;\\n$card-cap-color: null !default;\\n$card-height: null !default;\\n$card-color: null !default;\\n$card-bg: $white !default;\\n\\n$card-img-overlay-padding: 1.25rem !default;\\n\\n$card-group-margin: $grid-gutter-width * .5 !default;\\n$card-deck-margin: $card-group-margin !default;\\n\\n$card-columns-count: 3 !default;\\n$card-columns-gap: 1.25rem !default;\\n$card-columns-margin: $card-spacer-y !default;\\n\\n\\n// Tooltips\\n\\n$tooltip-font-size: $font-size-sm !default;\\n$tooltip-max-width: 200px !default;\\n$tooltip-color: $white !default;\\n$tooltip-bg: $black !default;\\n$tooltip-border-radius: $border-radius !default;\\n$tooltip-opacity: .9 !default;\\n$tooltip-padding-y: .25rem !default;\\n$tooltip-padding-x: .5rem !default;\\n$tooltip-margin: 0 !default;\\n\\n$tooltip-arrow-width: .8rem !default;\\n$tooltip-arrow-height: .4rem !default;\\n$tooltip-arrow-color: $tooltip-bg !default;\\n\\n// Form tooltips must come after regular tooltips\\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\\n$form-feedback-tooltip-line-height: $line-height-base !default;\\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\\n\\n\\n// Popovers\\n\\n$popover-font-size: $font-size-sm !default;\\n$popover-bg: $white !default;\\n$popover-max-width: 276px !default;\\n$popover-border-width: $border-width !default;\\n$popover-border-color: rgba($black, .2) !default;\\n$popover-border-radius: $border-radius-lg !default;\\n$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;\\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\\n\\n$popover-header-bg: darken($popover-bg, 3%) !default;\\n$popover-header-color: $headings-color !default;\\n$popover-header-padding-y: .5rem !default;\\n$popover-header-padding-x: .75rem !default;\\n\\n$popover-body-color: $body-color !default;\\n$popover-body-padding-y: $popover-header-padding-y !default;\\n$popover-body-padding-x: $popover-header-padding-x !default;\\n\\n$popover-arrow-width: 1rem !default;\\n$popover-arrow-height: .5rem !default;\\n$popover-arrow-color: $popover-bg !default;\\n\\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\\n\\n\\n// Toasts\\n\\n$toast-max-width: 350px !default;\\n$toast-padding-x: .75rem !default;\\n$toast-padding-y: .25rem !default;\\n$toast-font-size: .875rem !default;\\n$toast-color: null !default;\\n$toast-background-color: rgba($white, .85) !default;\\n$toast-border-width: 1px !default;\\n$toast-border-color: rgba(0, 0, 0, .1) !default;\\n$toast-border-radius: .25rem !default;\\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\\n\\n$toast-header-color: $gray-600 !default;\\n$toast-header-background-color: rgba($white, .85) !default;\\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\\n\\n\\n// Badges\\n\\n$badge-font-size: 75% !default;\\n$badge-font-weight: $font-weight-bold !default;\\n$badge-padding-y: .25em !default;\\n$badge-padding-x: .4em !default;\\n$badge-border-radius: $border-radius !default;\\n\\n$badge-transition: $btn-transition !default;\\n$badge-focus-width: $input-btn-focus-width !default;\\n\\n$badge-pill-padding-x: .6em !default;\\n// Use a higher than normal value to ensure completely rounded edges when\\n// customizing padding or font-size on labels.\\n$badge-pill-border-radius: 10rem !default;\\n\\n\\n// Modals\\n\\n// Padding applied to the modal body\\n$modal-inner-padding: 1rem !default;\\n\\n// Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding\\n$modal-footer-margin-between: .5rem !default;\\n\\n$modal-dialog-margin: .5rem !default;\\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\\n\\n$modal-title-line-height: $line-height-base !default;\\n\\n$modal-content-color: null !default;\\n$modal-content-bg: $white !default;\\n$modal-content-border-color: rgba($black, .2) !default;\\n$modal-content-border-width: $border-width !default;\\n$modal-content-border-radius: $border-radius-lg !default;\\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\\n\\n$modal-backdrop-bg: $black !default;\\n$modal-backdrop-opacity: .5 !default;\\n$modal-header-border-color: $border-color !default;\\n$modal-footer-border-color: $modal-header-border-color !default;\\n$modal-header-border-width: $modal-content-border-width !default;\\n$modal-footer-border-width: $modal-header-border-width !default;\\n$modal-header-padding-y: 1rem !default;\\n$modal-header-padding-x: 1rem !default;\\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\\n\\n$modal-xl: 1140px !default;\\n$modal-lg: 800px !default;\\n$modal-md: 500px !default;\\n$modal-sm: 300px !default;\\n\\n$modal-fade-transform: translate(0, -50px) !default;\\n$modal-show-transform: none !default;\\n$modal-transition: transform .3s ease-out !default;\\n$modal-scale-transform: scale(1.02) !default;\\n\\n\\n// Alerts\\n//\\n// Define alert colors, border radius, and padding.\\n\\n$alert-padding-y: .75rem !default;\\n$alert-padding-x: 1.25rem !default;\\n$alert-margin-bottom: 1rem !default;\\n$alert-border-radius: $border-radius !default;\\n$alert-link-font-weight: $font-weight-bold !default;\\n$alert-border-width: $border-width !default;\\n\\n$alert-bg-level: -10 !default;\\n$alert-border-level: -9 !default;\\n$alert-color-level: 6 !default;\\n\\n\\n// Progress bars\\n\\n$progress-height: 1rem !default;\\n$progress-font-size: $font-size-base * .75 !default;\\n$progress-bg: $gray-200 !default;\\n$progress-border-radius: $border-radius !default;\\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\\n$progress-bar-color: $white !default;\\n$progress-bar-bg: theme-color(\\\"primary\\\") !default;\\n$progress-bar-animation-timing: 1s linear infinite !default;\\n$progress-bar-transition: width .6s ease !default;\\n\\n\\n// List group\\n\\n$list-group-color: null !default;\\n$list-group-bg: $white !default;\\n$list-group-border-color: rgba($black, .125) !default;\\n$list-group-border-width: $border-width !default;\\n$list-group-border-radius: $border-radius !default;\\n\\n$list-group-item-padding-y: .75rem !default;\\n$list-group-item-padding-x: 1.25rem !default;\\n\\n$list-group-hover-bg: $gray-100 !default;\\n$list-group-active-color: $component-active-color !default;\\n$list-group-active-bg: $component-active-bg !default;\\n$list-group-active-border-color: $list-group-active-bg !default;\\n\\n$list-group-disabled-color: $gray-600 !default;\\n$list-group-disabled-bg: $list-group-bg !default;\\n\\n$list-group-action-color: $gray-700 !default;\\n$list-group-action-hover-color: $list-group-action-color !default;\\n\\n$list-group-action-active-color: $body-color !default;\\n$list-group-action-active-bg: $gray-200 !default;\\n\\n\\n// Image thumbnails\\n\\n$thumbnail-padding: .25rem !default;\\n$thumbnail-bg: $body-bg !default;\\n$thumbnail-border-width: $border-width !default;\\n$thumbnail-border-color: $gray-300 !default;\\n$thumbnail-border-radius: $border-radius !default;\\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\\n\\n\\n// Figures\\n\\n$figure-caption-font-size: 90% !default;\\n$figure-caption-color: $gray-600 !default;\\n\\n\\n// Breadcrumbs\\n\\n$breadcrumb-font-size: null !default;\\n\\n$breadcrumb-padding-y: .75rem !default;\\n$breadcrumb-padding-x: 1rem !default;\\n$breadcrumb-item-padding: .5rem !default;\\n\\n$breadcrumb-margin-bottom: 1rem !default;\\n\\n$breadcrumb-bg: $gray-200 !default;\\n$breadcrumb-divider-color: $gray-600 !default;\\n$breadcrumb-active-color: $gray-600 !default;\\n$breadcrumb-divider: quote(\\\"/\\\") !default;\\n\\n$breadcrumb-border-radius: $border-radius !default;\\n\\n\\n// Carousel\\n\\n$carousel-control-color: $white !default;\\n$carousel-control-width: 15% !default;\\n$carousel-control-opacity: .5 !default;\\n$carousel-control-hover-opacity: .9 !default;\\n$carousel-control-transition: opacity .15s ease !default;\\n\\n$carousel-indicator-width: 30px !default;\\n$carousel-indicator-height: 3px !default;\\n$carousel-indicator-hit-area-height: 10px !default;\\n$carousel-indicator-spacer: 3px !default;\\n$carousel-indicator-active-bg: $white !default;\\n$carousel-indicator-transition: opacity .6s ease !default;\\n\\n$carousel-caption-width: 70% !default;\\n$carousel-caption-color: $white !default;\\n\\n$carousel-control-icon-width: 20px !default;\\n\\n$carousel-control-prev-icon-bg: url(\\\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/></svg>\\\") !default;\\n$carousel-control-next-icon-bg: url(\\\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/></svg>\\\") !default;\\n\\n$carousel-transition-duration: .6s !default;\\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\\n\\n\\n// Spinners\\n\\n$spinner-width: 2rem !default;\\n$spinner-height: $spinner-width !default;\\n$spinner-vertical-align: -.125em !default;\\n$spinner-border-width: .25em !default;\\n\\n$spinner-width-sm: 1rem !default;\\n$spinner-height-sm: $spinner-width-sm !default;\\n$spinner-border-width-sm: .2em !default;\\n\\n\\n// Close\\n\\n$close-font-size: $font-size-base * 1.5 !default;\\n$close-font-weight: $font-weight-bold !default;\\n$close-color: $black !default;\\n$close-text-shadow: 0 1px 0 $white !default;\\n\\n\\n// Code\\n\\n$code-font-size: 87.5% !default;\\n$code-color: $pink !default;\\n\\n$kbd-padding-y: .2rem !default;\\n$kbd-padding-x: .4rem !default;\\n$kbd-font-size: $code-font-size !default;\\n$kbd-color: $white !default;\\n$kbd-bg: $gray-900 !default;\\n\\n$pre-color: $gray-900 !default;\\n$pre-scrollable-max-height: 340px !default;\\n\\n\\n// Utilities\\n\\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\\n$overflows: auto, hidden !default;\\n$positions: static, relative, absolute, fixed, sticky !default;\\n$user-selects: all, auto, none !default;\\n\\n\\n// Printing\\n\\n$print-page-size: a3 !default;\\n$print-body-min-width: map-get($grid-breakpoints, \\\"lg\\\") !default;\\n\",\"// stylelint-disable property-blacklist, scss/dollar-variable-default\\n\\n// SCSS RFS mixin\\n//\\n// Automated responsive font sizes\\n//\\n// Licensed under MIT (https://github.com/twbs/rfs/blob/v8.x/LICENSE)\\n\\n// Configuration\\n\\n// Base font size\\n$rfs-base-font-size: 1.25rem !default;\\n$rfs-font-size-unit: rem !default;\\n\\n@if $rfs-font-size-unit != rem and $rfs-font-size-unit != px {\\n @error \\\"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\\\";\\n}\\n\\n// Breakpoint at where font-size starts decreasing if screen width is smaller\\n$rfs-breakpoint: 1200px !default;\\n$rfs-breakpoint-unit: px !default;\\n\\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\\n @error \\\"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\\\";\\n}\\n\\n// Resize font size based on screen height and width\\n$rfs-two-dimensional: false !default;\\n\\n// Factor of decrease\\n$rfs-factor: 10 !default;\\n\\n@if type-of($rfs-factor) != \\\"number\\\" or $rfs-factor <= 1 {\\n @error \\\"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\\\";\\n}\\n\\n// Generate enable or disable classes. Possibilities: false, \\\"enable\\\" or \\\"disable\\\"\\n$rfs-class: false !default;\\n\\n// 1 rem = $rfs-rem-value px\\n$rfs-rem-value: 16 !default;\\n\\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\\n$rfs-safari-iframe-resize-bug-fix: false !default;\\n\\n// Disable RFS by setting $enable-responsive-font-sizes to false\\n$enable-responsive-font-sizes: true !default;\\n\\n// Cache $rfs-base-font-size unit\\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\\n\\n@function divide($dividend, $divisor, $precision: 10) {\\n $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\\n $dividend: abs($dividend);\\n $divisor: abs($divisor);\\n @if $dividend == 0 {\\n @return 0;\\n }\\n @if $divisor == 0 {\\n @error \\\"Cannot divide by 0\\\";\\n }\\n $remainder: $dividend;\\n $result: 0;\\n $factor: 10;\\n @while ($remainder > 0 and $precision >= 0) {\\n $quotient: 0;\\n @while ($remainder >= $divisor) {\\n $remainder: $remainder - $divisor;\\n $quotient: $quotient + 1;\\n }\\n $result: $result * 10 + $quotient;\\n $factor: $factor * .1;\\n $remainder: $remainder * 10;\\n $precision: $precision - 1;\\n @if ($precision < 0 and $remainder >= $divisor * 5) {\\n $result: $result + 1;\\n }\\n }\\n $result: $result * $factor * $sign;\\n $dividend-unit: unit($dividend);\\n $divisor-unit: unit($divisor);\\n $unit-map: (\\n \\\"px\\\": 1px,\\n \\\"rem\\\": 1rem,\\n \\\"em\\\": 1em,\\n \\\"%\\\": 1%\\n );\\n @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\\n $result: $result * map-get($unit-map, $dividend-unit);\\n }\\n @return $result;\\n}\\n\\n// Remove px-unit from $rfs-base-font-size for calculations\\n@if $rfs-base-font-size-unit == \\\"px\\\" {\\n $rfs-base-font-size: divide($rfs-base-font-size, $rfs-base-font-size * 0 + 1);\\n}\\n@else if $rfs-base-font-size-unit == \\\"rem\\\" {\\n $rfs-base-font-size: divide($rfs-base-font-size, divide($rfs-base-font-size * 0 + 1, $rfs-rem-value));\\n}\\n\\n// Cache $rfs-breakpoint unit to prevent multiple calls\\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\\n\\n// Remove unit from $rfs-breakpoint for calculations\\n@if $rfs-breakpoint-unit-cache == \\\"px\\\" {\\n $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);\\n}\\n@else if $rfs-breakpoint-unit-cache == \\\"rem\\\" or $rfs-breakpoint-unit-cache == \\\"em\\\" {\\n $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));\\n}\\n\\n// Internal mixin that adds disable classes to the selector if needed.\\n@mixin _rfs-disable-class {\\n @if $rfs-class == \\\"disable\\\" {\\n // Adding an extra class increases specificity, which prevents the media query to override the font size\\n &,\\n .disable-responsive-font-size &,\\n &.disable-responsive-font-size {\\n @content;\\n }\\n }\\n @else {\\n @content;\\n }\\n}\\n\\n// Internal mixin that adds enable classes to the selector if needed.\\n@mixin _rfs-enable-class {\\n @if $rfs-class == \\\"enable\\\" {\\n .enable-responsive-font-size &,\\n &.enable-responsive-font-size {\\n @content;\\n }\\n }\\n @else {\\n @content;\\n }\\n}\\n\\n// Internal mixin used to determine which media query needs to be used\\n@mixin _rfs-media-query($mq-value) {\\n @if $rfs-two-dimensional {\\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\\n @content;\\n }\\n }\\n @else {\\n @media (max-width: #{$mq-value}) {\\n @content;\\n }\\n }\\n}\\n\\n// Responsive font size mixin\\n@mixin rfs($fs, $important: false) {\\n // Cache $fs unit\\n $fs-unit: if(type-of($fs) == \\\"number\\\", unit($fs), false);\\n\\n // Add !important suffix if needed\\n $rfs-suffix: if($important, \\\" !important\\\", \\\"\\\");\\n\\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\\n @if not $fs-unit or $fs-unit != \\\"\\\" and $fs-unit != \\\"px\\\" and $fs-unit != \\\"rem\\\" or $fs == 0 {\\n font-size: #{$fs}#{$rfs-suffix};\\n }\\n @else {\\n // Remove unit from $fs for calculations\\n @if $fs-unit == \\\"px\\\" {\\n $fs: divide($fs, $fs * 0 + 1);\\n }\\n @else if $fs-unit == \\\"rem\\\" {\\n $fs: divide($fs, divide($fs * 0 + 1, $rfs-rem-value));\\n }\\n\\n // Set default font size\\n $rfs-static: if($rfs-font-size-unit == rem, #{divide($fs, $rfs-rem-value)}rem, #{$fs}px);\\n\\n // Only add the media query if the font size is bigger than the minimum font size\\n @if $fs <= $rfs-base-font-size or not $enable-responsive-font-sizes {\\n font-size: #{$rfs-static}#{$rfs-suffix};\\n }\\n @else {\\n // Calculate the minimum font size for $fs\\n $fs-min: $rfs-base-font-size + divide($fs - $rfs-base-font-size, $rfs-factor);\\n\\n // Calculate difference between $fs and the minimum font size\\n $fs-diff: $fs - $fs-min;\\n\\n // Base font-size formatting\\n $min-width: if($rfs-font-size-unit == rem, #{divide($fs-min, $rfs-rem-value)}rem, #{$fs-min}px);\\n\\n // Use `vmin` if two-dimensional is enabled\\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\\n\\n // Calculate the variable width between 0 and $rfs-breakpoint\\n $variable-width: #{divide($fs-diff * 100, $rfs-breakpoint)}#{$variable-unit};\\n\\n // Set the calculated font-size\\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\\n\\n // Breakpoint formatting\\n $mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});\\n\\n @include _rfs-disable-class {\\n font-size: #{$rfs-static}#{$rfs-suffix};\\n }\\n\\n @include _rfs-media-query($mq-value) {\\n @include _rfs-enable-class {\\n font-size: $rfs-fluid;\\n }\\n\\n // Include safari iframe resize fix if needed\\n min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\\n }\\n }\\n }\\n}\\n\\n// The font-size & responsive-font-size mixins use RFS to rescale the font size\\n@mixin font-size($fs, $important: false) {\\n @include rfs($fs, $important);\\n}\\n\\n@mixin responsive-font-size($fs, $important: false) {\\n @include rfs($fs, $important);\\n}\\n\",\"// Hover mixin and `$enable-hover-media-query` are deprecated.\\n//\\n// Originally added during our alphas and maintained during betas, this mixin was\\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\\n// would persist after initial touch.\\n//\\n// For backward compatibility, we've kept these mixins and updated them to\\n// always return their regular pseudo-classes instead of a shimmed media query.\\n//\\n// Issue: https://github.com/twbs/bootstrap/issues/25195\\n\\n@mixin hover() {\\n &:hover { @content; }\\n}\\n\\n@mixin hover-focus() {\\n &:hover,\\n &:focus {\\n @content;\\n }\\n}\\n\\n@mixin plain-hover-focus() {\\n &,\\n &:hover,\\n &:focus {\\n @content;\\n }\\n}\\n\\n@mixin hover-focus-active() {\\n &:hover,\\n &:focus,\\n &:active {\\n @content;\\n }\\n}\\n\",\"// stylelint-disable selector-list-comma-newline-after\\n\\n//\\n// Headings\\n//\\n\\nh1, h2, h3, h4, h5, h6,\\n.h1, .h2, .h3, .h4, .h5, .h6 {\\n margin-bottom: $headings-margin-bottom;\\n font-family: $headings-font-family;\\n font-weight: $headings-font-weight;\\n line-height: $headings-line-height;\\n color: $headings-color;\\n}\\n\\nh1, .h1 { @include font-size($h1-font-size); }\\nh2, .h2 { @include font-size($h2-font-size); }\\nh3, .h3 { @include font-size($h3-font-size); }\\nh4, .h4 { @include font-size($h4-font-size); }\\nh5, .h5 { @include font-size($h5-font-size); }\\nh6, .h6 { @include font-size($h6-font-size); }\\n\\n.lead {\\n @include font-size($lead-font-size);\\n font-weight: $lead-font-weight;\\n}\\n\\n// Type display classes\\n.display-1 {\\n @include font-size($display1-size);\\n font-weight: $display1-weight;\\n line-height: $display-line-height;\\n}\\n.display-2 {\\n @include font-size($display2-size);\\n font-weight: $display2-weight;\\n line-height: $display-line-height;\\n}\\n.display-3 {\\n @include font-size($display3-size);\\n font-weight: $display3-weight;\\n line-height: $display-line-height;\\n}\\n.display-4 {\\n @include font-size($display4-size);\\n font-weight: $display4-weight;\\n line-height: $display-line-height;\\n}\\n\\n\\n//\\n// Horizontal rules\\n//\\n\\nhr {\\n margin-top: $hr-margin-y;\\n margin-bottom: $hr-margin-y;\\n border: 0;\\n border-top: $hr-border-width solid $hr-border-color;\\n}\\n\\n\\n//\\n// Emphasis\\n//\\n\\nsmall,\\n.small {\\n @include font-size($small-font-size);\\n font-weight: $font-weight-normal;\\n}\\n\\nmark,\\n.mark {\\n padding: $mark-padding;\\n background-color: $mark-bg;\\n}\\n\\n\\n//\\n// Lists\\n//\\n\\n.list-unstyled {\\n @include list-unstyled();\\n}\\n\\n// Inline turns list items into inline-block\\n.list-inline {\\n @include list-unstyled();\\n}\\n.list-inline-item {\\n display: inline-block;\\n\\n &:not(:last-child) {\\n margin-right: $list-inline-padding;\\n }\\n}\\n\\n\\n//\\n// Misc\\n//\\n\\n// Builds on `abbr`\\n.initialism {\\n @include font-size(90%);\\n text-transform: uppercase;\\n}\\n\\n// Blockquotes\\n.blockquote {\\n margin-bottom: $spacer;\\n @include font-size($blockquote-font-size);\\n}\\n\\n.blockquote-footer {\\n display: block;\\n @include font-size($blockquote-small-font-size);\\n color: $blockquote-small-color;\\n\\n &::before {\\n content: \\\"\\\\2014\\\\00A0\\\"; // em dash, nbsp\\n }\\n}\\n\",\"// Lists\\n\\n// Unstyled keeps list items block level, just removes default browser padding and list-style\\n@mixin list-unstyled() {\\n padding-left: 0;\\n list-style: none;\\n}\\n\",\"// Image Mixins\\n// - Responsive image\\n// - Retina image\\n\\n\\n// Responsive image\\n//\\n// Keep images from scaling beyond the width of their parents.\\n\\n@mixin img-fluid() {\\n // Part 1: Set a maximum relative to the parent\\n max-width: 100%;\\n // Part 2: Override the height to auto, otherwise images will be stretched\\n // when setting a width and height attribute on the img element.\\n height: auto;\\n}\\n\\n\\n// Retina image\\n//\\n// Short retina mixin for setting background-image and -size.\\n\\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\\n background-image: url($file-1x);\\n\\n // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\\n // but doesn't convert dppx=>dpi.\\n // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\\n // Compatibility info: https://caniuse.com/css-media-resolution\\n @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\\n only screen and (min-resolution: 2dppx) { // Standardized\\n background-image: url($file-2x);\\n background-size: $width-1x $height-1x;\\n }\\n @include deprecate(\\\"`img-retina()`\\\", \\\"v4.3.0\\\", \\\"v5\\\");\\n}\\n\",\"// Responsive images (ensure images don't scale beyond their parents)\\n//\\n// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\\n// We previously tried the \\\"images are responsive by default\\\" approach in Bootstrap v2,\\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\\n// which weren't expecting the images within themselves to be involuntarily resized.\\n// See also https://github.com/twbs/bootstrap/issues/18178\\n.img-fluid {\\n @include img-fluid();\\n}\\n\\n\\n// Image thumbnails\\n.img-thumbnail {\\n padding: $thumbnail-padding;\\n background-color: $thumbnail-bg;\\n border: $thumbnail-border-width solid $thumbnail-border-color;\\n @include border-radius($thumbnail-border-radius);\\n @include box-shadow($thumbnail-box-shadow);\\n\\n // Keep them at most 100% wide\\n @include img-fluid();\\n}\\n\\n//\\n// Figures\\n//\\n\\n.figure {\\n // Ensures the caption's text aligns with the image.\\n display: inline-block;\\n}\\n\\n.figure-img {\\n margin-bottom: $spacer * .5;\\n line-height: 1;\\n}\\n\\n.figure-caption {\\n @include font-size($figure-caption-font-size);\\n color: $figure-caption-color;\\n}\\n\",\"// Inline code\\ncode {\\n @include font-size($code-font-size);\\n color: $code-color;\\n word-wrap: break-word;\\n\\n // Streamline the style when inside anchors to avoid broken underline and more\\n a > & {\\n color: inherit;\\n }\\n}\\n\\n// User input typically entered via keyboard\\nkbd {\\n padding: $kbd-padding-y $kbd-padding-x;\\n @include font-size($kbd-font-size);\\n color: $kbd-color;\\n background-color: $kbd-bg;\\n @include border-radius($border-radius-sm);\\n @include box-shadow($kbd-box-shadow);\\n\\n kbd {\\n padding: 0;\\n @include font-size(100%);\\n font-weight: $nested-kbd-font-weight;\\n @include box-shadow(none);\\n }\\n}\\n\\n// Blocks of code\\npre {\\n display: block;\\n @include font-size($code-font-size);\\n color: $pre-color;\\n\\n // Account for some code outputs that place code tags in pre tags\\n code {\\n @include font-size(inherit);\\n color: inherit;\\n word-break: normal;\\n }\\n}\\n\\n// Enable scrollable blocks of code\\n.pre-scrollable {\\n max-height: $pre-scrollable-max-height;\\n overflow-y: scroll;\\n}\\n\",\"/// Grid system\\n//\\n// Generate semantic grid columns with these mixins.\\n\\n@mixin make-container($gutter: $grid-gutter-width) {\\n width: 100%;\\n padding-right: $gutter * .5;\\n padding-left: $gutter * .5;\\n margin-right: auto;\\n margin-left: auto;\\n}\\n\\n@mixin make-row($gutter: $grid-gutter-width) {\\n display: flex;\\n flex-wrap: wrap;\\n margin-right: -$gutter * .5;\\n margin-left: -$gutter * .5;\\n}\\n\\n// For each breakpoint, define the maximum width of the container in a media query\\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\\n @each $breakpoint, $container-max-width in $max-widths {\\n @include media-breakpoint-up($breakpoint, $breakpoints) {\\n max-width: $container-max-width;\\n }\\n }\\n @include deprecate(\\\"The `make-container-max-widths` mixin\\\", \\\"v4.5.2\\\", \\\"v5\\\");\\n}\\n\\n@mixin make-col-ready($gutter: $grid-gutter-width) {\\n position: relative;\\n // Prevent columns from becoming too narrow when at smaller grid tiers by\\n // always setting `width: 100%;`. This works because we use `flex` values\\n // later on to override this initial width.\\n width: 100%;\\n padding-right: $gutter * .5;\\n padding-left: $gutter * .5;\\n}\\n\\n@mixin make-col($size, $columns: $grid-columns) {\\n flex: 0 0 percentage(divide($size, $columns));\\n // Add a `max-width` to ensure content within each column does not blow out\\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\\n // do not appear to require this.\\n max-width: percentage(divide($size, $columns));\\n}\\n\\n@mixin make-col-auto() {\\n flex: 0 0 auto;\\n width: auto;\\n max-width: 100%; // Reset earlier grid tiers\\n}\\n\\n@mixin make-col-offset($size, $columns: $grid-columns) {\\n $num: divide($size, $columns);\\n margin-left: if($num == 0, 0, percentage($num));\\n}\\n\\n// Row columns\\n//\\n// Specify on a parent element(e.g., .row) to force immediate children into NN\\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\\n// style grid.\\n@mixin row-cols($count) {\\n > * {\\n flex: 0 0 divide(100%, $count);\\n max-width: divide(100%, $count);\\n }\\n}\\n\",\"// Breakpoint viewport sizes and media queries.\\n//\\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\\n//\\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\\n//\\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\\n\\n// Name of the next breakpoint, or null for the last breakpoint.\\n//\\n// >> breakpoint-next(sm)\\n// md\\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\\n// md\\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\\n// md\\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\\n $n: index($breakpoint-names, $name);\\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\\n}\\n\\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\\n//\\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\\n// 576px\\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\\n $min: map-get($breakpoints, $name);\\n @return if($min != 0, $min, null);\\n}\\n\\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\\n// The maximum value is calculated as the minimum of the next one less 0.02px\\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\\n//\\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\\n// 767.98px\\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\\n $next: breakpoint-next($name, $breakpoints);\\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\\n}\\n\\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\\n// Useful for making responsive utilities.\\n//\\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\\n// \\\"\\\" (Returns a blank string)\\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\\n// \\\"-sm\\\"\\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\\n @return if(breakpoint-min($name, $breakpoints) == null, \\\"\\\", \\\"-#{$name}\\\");\\n}\\n\\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\\n// Makes the @content apply to the given breakpoint and wider.\\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\\n $min: breakpoint-min($name, $breakpoints);\\n @if $min {\\n @media (min-width: $min) {\\n @content;\\n }\\n } @else {\\n @content;\\n }\\n}\\n\\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\\n// Makes the @content apply to the given breakpoint and narrower.\\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\\n $max: breakpoint-max($name, $breakpoints);\\n @if $max {\\n @media (max-width: $max) {\\n @content;\\n }\\n } @else {\\n @content;\\n }\\n}\\n\\n// Media that spans multiple breakpoint widths.\\n// Makes the @content apply between the min and max breakpoints\\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\\n $min: breakpoint-min($lower, $breakpoints);\\n $max: breakpoint-max($upper, $breakpoints);\\n\\n @if $min != null and $max != null {\\n @media (min-width: $min) and (max-width: $max) {\\n @content;\\n }\\n } @else if $max == null {\\n @include media-breakpoint-up($lower, $breakpoints) {\\n @content;\\n }\\n } @else if $min == null {\\n @include media-breakpoint-down($upper, $breakpoints) {\\n @content;\\n }\\n }\\n}\\n\\n// Media between the breakpoint's minimum and maximum widths.\\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\\n $min: breakpoint-min($name, $breakpoints);\\n $max: breakpoint-max($name, $breakpoints);\\n\\n @if $min != null and $max != null {\\n @media (min-width: $min) and (max-width: $max) {\\n @content;\\n }\\n } @else if $max == null {\\n @include media-breakpoint-up($name, $breakpoints) {\\n @content;\\n }\\n } @else if $min == null {\\n @include media-breakpoint-down($name, $breakpoints) {\\n @content;\\n }\\n }\\n}\\n\",\"// Container widths\\n//\\n// Set the container width, and override it for fixed navbars in media queries.\\n\\n@if $enable-grid-classes {\\n // Single container class with breakpoint max-widths\\n .container,\\n // 100% wide container at all breakpoints\\n .container-fluid {\\n @include make-container();\\n }\\n\\n // Responsive containers that are 100% wide until a breakpoint\\n @each $breakpoint, $container-max-width in $container-max-widths {\\n .container-#{$breakpoint} {\\n @extend .container-fluid;\\n }\\n\\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\\n %responsive-container-#{$breakpoint} {\\n max-width: $container-max-width;\\n }\\n\\n // Extend each breakpoint which is smaller or equal to the current breakpoint\\n $extend-breakpoint: true;\\n\\n @each $name, $width in $grid-breakpoints {\\n @if ($extend-breakpoint) {\\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\\n @extend %responsive-container-#{$breakpoint};\\n }\\n\\n // Once the current breakpoint is reached, stop extending\\n @if ($breakpoint == $name) {\\n $extend-breakpoint: false;\\n }\\n }\\n }\\n }\\n }\\n}\\n\\n\\n// Row\\n//\\n// Rows contain your columns.\\n\\n@if $enable-grid-classes {\\n .row {\\n @include make-row();\\n }\\n\\n // Remove the negative margin from default .row, then the horizontal padding\\n // from all immediate children columns (to prevent runaway style inheritance).\\n .no-gutters {\\n margin-right: 0;\\n margin-left: 0;\\n\\n > .col,\\n > [class*=\\\"col-\\\"] {\\n padding-right: 0;\\n padding-left: 0;\\n }\\n }\\n}\\n\\n// Columns\\n//\\n// Common styles for small and large grid columns\\n\\n@if $enable-grid-classes {\\n @include make-grid-columns();\\n}\\n\",\"// Framework grid generation\\n//\\n// Used only by Bootstrap to generate the correct number of grid classes given\\n// any value of `$grid-columns`.\\n\\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\\n // Common properties for all breakpoints\\n %grid-column {\\n position: relative;\\n width: 100%;\\n padding-right: $gutter * .5;\\n padding-left: $gutter * .5;\\n }\\n\\n @each $breakpoint in map-keys($breakpoints) {\\n $infix: breakpoint-infix($breakpoint, $breakpoints);\\n\\n @if $columns > 0 {\\n // Allow columns to stretch full width below their breakpoints\\n @for $i from 1 through $columns {\\n .col#{$infix}-#{$i} {\\n @extend %grid-column;\\n }\\n }\\n }\\n\\n .col#{$infix},\\n .col#{$infix}-auto {\\n @extend %grid-column;\\n }\\n\\n @include media-breakpoint-up($breakpoint, $breakpoints) {\\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\\n .col#{$infix} {\\n flex-basis: 0;\\n flex-grow: 1;\\n max-width: 100%;\\n }\\n\\n @if $grid-row-columns > 0 {\\n @for $i from 1 through $grid-row-columns {\\n .row-cols#{$infix}-#{$i} {\\n @include row-cols($i);\\n }\\n }\\n }\\n\\n .col#{$infix}-auto {\\n @include make-col-auto();\\n }\\n\\n @if $columns > 0 {\\n @for $i from 1 through $columns {\\n .col#{$infix}-#{$i} {\\n @include make-col($i, $columns);\\n }\\n }\\n }\\n\\n .order#{$infix}-first { order: -1; }\\n\\n .order#{$infix}-last { order: $columns + 1; }\\n\\n @for $i from 0 through $columns {\\n .order#{$infix}-#{$i} { order: $i; }\\n }\\n\\n @if $columns > 0 {\\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\\n @for $i from 0 through ($columns - 1) {\\n @if not ($infix == \\\"\\\" and $i == 0) { // Avoid emitting useless .offset-0\\n .offset#{$infix}-#{$i} {\\n @include make-col-offset($i, $columns);\\n }\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"//\\n// Basic Bootstrap table\\n//\\n\\n.table {\\n width: 100%;\\n margin-bottom: $spacer;\\n color: $table-color;\\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\\n\\n th,\\n td {\\n padding: $table-cell-padding;\\n vertical-align: top;\\n border-top: $table-border-width solid $table-border-color;\\n }\\n\\n thead th {\\n vertical-align: bottom;\\n border-bottom: (2 * $table-border-width) solid $table-border-color;\\n }\\n\\n tbody + tbody {\\n border-top: (2 * $table-border-width) solid $table-border-color;\\n }\\n}\\n\\n\\n//\\n// Condensed table w/ half padding\\n//\\n\\n.table-sm {\\n th,\\n td {\\n padding: $table-cell-padding-sm;\\n }\\n}\\n\\n\\n// Border versions\\n//\\n// Add or remove borders all around the table and between all the columns.\\n\\n.table-bordered {\\n border: $table-border-width solid $table-border-color;\\n\\n th,\\n td {\\n border: $table-border-width solid $table-border-color;\\n }\\n\\n thead {\\n th,\\n td {\\n border-bottom-width: 2 * $table-border-width;\\n }\\n }\\n}\\n\\n.table-borderless {\\n th,\\n td,\\n thead th,\\n tbody + tbody {\\n border: 0;\\n }\\n}\\n\\n// Zebra-striping\\n//\\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\\n\\n.table-striped {\\n tbody tr:nth-of-type(#{$table-striped-order}) {\\n background-color: $table-accent-bg;\\n }\\n}\\n\\n\\n// Hover effect\\n//\\n// Placed here since it has to come after the potential zebra striping\\n\\n.table-hover {\\n tbody tr {\\n @include hover() {\\n color: $table-hover-color;\\n background-color: $table-hover-bg;\\n }\\n }\\n}\\n\\n\\n// Table backgrounds\\n//\\n// Exact selectors below required to override `.table-striped` and prevent\\n// inheritance to nested tables.\\n\\n@each $color, $value in $theme-colors {\\n @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));\\n}\\n\\n@include table-row-variant(active, $table-active-bg);\\n\\n\\n// Dark styles\\n//\\n// Same table markup, but inverted color scheme: dark background and light text.\\n\\n// stylelint-disable-next-line no-duplicate-selectors\\n.table {\\n .thead-dark {\\n th {\\n color: $table-dark-color;\\n background-color: $table-dark-bg;\\n border-color: $table-dark-border-color;\\n }\\n }\\n\\n .thead-light {\\n th {\\n color: $table-head-color;\\n background-color: $table-head-bg;\\n border-color: $table-border-color;\\n }\\n }\\n}\\n\\n.table-dark {\\n color: $table-dark-color;\\n background-color: $table-dark-bg;\\n\\n th,\\n td,\\n thead th {\\n border-color: $table-dark-border-color;\\n }\\n\\n &.table-bordered {\\n border: 0;\\n }\\n\\n &.table-striped {\\n tbody tr:nth-of-type(#{$table-striped-order}) {\\n background-color: $table-dark-accent-bg;\\n }\\n }\\n\\n &.table-hover {\\n tbody tr {\\n @include hover() {\\n color: $table-dark-hover-color;\\n background-color: $table-dark-hover-bg;\\n }\\n }\\n }\\n}\\n\\n\\n// Responsive tables\\n//\\n// Generate series of `.table-responsive-*` classes for configuring the screen\\n// size of where your table will overflow.\\n\\n.table-responsive {\\n @each $breakpoint in map-keys($grid-breakpoints) {\\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\\n $infix: breakpoint-infix($next, $grid-breakpoints);\\n\\n &#{$infix} {\\n @include media-breakpoint-down($breakpoint) {\\n display: block;\\n width: 100%;\\n overflow-x: auto;\\n -webkit-overflow-scrolling: touch;\\n\\n // Prevent double border on horizontal scroll due to use of `display: block;`\\n > .table-bordered {\\n border: 0;\\n }\\n }\\n }\\n }\\n}\\n\",\"// Tables\\n\\n@mixin table-row-variant($state, $background, $border: null) {\\n // Exact selectors below required to override `.table-striped` and prevent\\n // inheritance to nested tables.\\n .table-#{$state} {\\n &,\\n > th,\\n > td {\\n background-color: $background;\\n }\\n\\n @if $border != null {\\n th,\\n td,\\n thead th,\\n tbody + tbody {\\n border-color: $border;\\n }\\n }\\n }\\n\\n // Hover states for `.table-hover`\\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\\n .table-hover {\\n $hover-background: darken($background, 5%);\\n\\n .table-#{$state} {\\n @include hover() {\\n background-color: $hover-background;\\n\\n > td,\\n > th {\\n background-color: $hover-background;\\n }\\n }\\n }\\n }\\n}\\n\",\"// Bootstrap functions\\n//\\n// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.\\n\\n// Ascending\\n// Used to evaluate Sass maps like our grid breakpoints.\\n@mixin _assert-ascending($map, $map-name) {\\n $prev-key: null;\\n $prev-num: null;\\n @each $key, $num in $map {\\n @if $prev-num == null or unit($num) == \\\"%\\\" or unit($prev-num) == \\\"%\\\" {\\n // Do nothing\\n } @else if not comparable($prev-num, $num) {\\n @warn \\\"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\\\";\\n } @else if $prev-num >= $num {\\n @warn \\\"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\\\";\\n }\\n $prev-key: $key;\\n $prev-num: $num;\\n }\\n}\\n\\n// Starts at zero\\n// Used to ensure the min-width of the lowest breakpoint starts at 0.\\n@mixin _assert-starts-at-zero($map, $map-name: \\\"$grid-breakpoints\\\") {\\n @if length($map) > 0 {\\n $values: map-values($map);\\n $first-value: nth($values, 1);\\n @if $first-value != 0 {\\n @warn \\\"First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.\\\";\\n }\\n }\\n}\\n\\n// Replace `$search` with `$replace` in `$string`\\n// Used on our SVG icon backgrounds for custom forms.\\n//\\n// @author Hugo Giraudel\\n// @param {String} $string - Initial string\\n// @param {String} $search - Substring to replace\\n// @param {String} $replace ('') - New value\\n// @return {String} - Updated string\\n@function str-replace($string, $search, $replace: \\\"\\\") {\\n $index: str-index($string, $search);\\n\\n @if $index {\\n @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\\n }\\n\\n @return $string;\\n}\\n\\n// See https://codepen.io/kevinweber/pen/dXWoRw\\n//\\n// Requires the use of quotes around data URIs.\\n\\n@function escape-svg($string) {\\n @if str-index($string, \\\"data:image/svg+xml\\\") {\\n @each $char, $encoded in $escaped-characters {\\n // Do not escape the url brackets\\n @if str-index($string, \\\"url(\\\") == 1 {\\n $string: url(\\\"#{str-replace(str-slice($string, 6, -3), $char, $encoded)}\\\");\\n } @else {\\n $string: str-replace($string, $char, $encoded);\\n }\\n }\\n }\\n\\n @return $string;\\n}\\n\\n// Color contrast\\n@function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light) {\\n $r: red($color);\\n $g: green($color);\\n $b: blue($color);\\n\\n $yiq: (($r * 299) + ($g * 587) + ($b * 114)) * .001;\\n\\n @if ($yiq >= $yiq-contrasted-threshold) {\\n @return $dark;\\n } @else {\\n @return $light;\\n }\\n}\\n\\n// Retrieve color Sass maps\\n@function color($key: \\\"blue\\\") {\\n @return map-get($colors, $key);\\n}\\n\\n@function theme-color($key: \\\"primary\\\") {\\n @return map-get($theme-colors, $key);\\n}\\n\\n@function gray($key: \\\"100\\\") {\\n @return map-get($grays, $key);\\n}\\n\\n// Request a theme color level\\n@function theme-color-level($color-name: \\\"primary\\\", $level: 0) {\\n $color: theme-color($color-name);\\n $color-base: if($level > 0, $black, $white);\\n $level: abs($level);\\n\\n @return mix($color-base, $color, $level * $theme-color-interval);\\n}\\n\\n// Return valid calc\\n@function add($value1, $value2, $return-calc: true) {\\n @if $value1 == null {\\n @return $value2;\\n }\\n\\n @if $value2 == null {\\n @return $value1;\\n }\\n\\n @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\\n @return $value1 + $value2;\\n }\\n\\n @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(\\\" + \\\") + $value2);\\n}\\n\\n@function subtract($value1, $value2, $return-calc: true) {\\n @if $value1 == null and $value2 == null {\\n @return null;\\n }\\n\\n @if $value1 == null {\\n @return -$value2;\\n }\\n\\n @if $value2 == null {\\n @return $value1;\\n }\\n\\n @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\\n @return $value1 - $value2;\\n }\\n\\n @if type-of($value2) != number {\\n $value2: unquote(\\\"(\\\") + $value2 + unquote(\\\")\\\");\\n }\\n\\n @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(\\\" - \\\") + $value2);\\n}\\n\\n@function divide($dividend, $divisor, $precision: 10) {\\n $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\\n $dividend: abs($dividend);\\n $divisor: abs($divisor);\\n @if $dividend == 0 {\\n @return 0;\\n }\\n @if $divisor == 0 {\\n @error \\\"Cannot divide by 0\\\";\\n }\\n $remainder: $dividend;\\n $result: 0;\\n $factor: 10;\\n @while ($remainder > 0 and $precision >= 0) {\\n $quotient: 0;\\n @while ($remainder >= $divisor) {\\n $remainder: $remainder - $divisor;\\n $quotient: $quotient + 1;\\n }\\n $result: $result * 10 + $quotient;\\n $factor: $factor * .1;\\n $remainder: $remainder * 10;\\n $precision: $precision - 1;\\n @if ($precision < 0 and $remainder >= $divisor * 5) {\\n $result: $result + 1;\\n }\\n }\\n $result: $result * $factor * $sign;\\n $dividend-unit: unit($dividend);\\n $divisor-unit: unit($divisor);\\n $unit-map: (\\n \\\"px\\\": 1px,\\n \\\"rem\\\": 1rem,\\n \\\"em\\\": 1em,\\n \\\"%\\\": 1%\\n );\\n @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\\n $result: $result * map-get($unit-map, $dividend-unit);\\n }\\n @return $result;\\n}\\n\",\"// stylelint-disable selector-no-qualifying-type\\n\\n//\\n// Textual form controls\\n//\\n\\n.form-control {\\n display: block;\\n width: 100%;\\n height: $input-height;\\n padding: $input-padding-y $input-padding-x;\\n font-family: $input-font-family;\\n @include font-size($input-font-size);\\n font-weight: $input-font-weight;\\n line-height: $input-line-height;\\n color: $input-color;\\n background-color: $input-bg;\\n background-clip: padding-box;\\n border: $input-border-width solid $input-border-color;\\n\\n // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.\\n @include border-radius($input-border-radius, 0);\\n\\n @include box-shadow($input-box-shadow);\\n @include transition($input-transition);\\n\\n // Unstyle the caret on `<select>`s in IE10+.\\n &::-ms-expand {\\n background-color: transparent;\\n border: 0;\\n }\\n\\n // Customize the `:focus` state to imitate native WebKit styles.\\n @include form-control-focus($ignore-warning: true);\\n\\n // Placeholder\\n &::placeholder {\\n color: $input-placeholder-color;\\n // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\\n opacity: 1;\\n }\\n\\n // Disabled and read-only inputs\\n //\\n // HTML5 says that controls under a fieldset > legend:first-child won't be\\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\\n // don't honor that edge case; we style them as disabled anyway.\\n &:disabled,\\n &[readonly] {\\n background-color: $input-disabled-bg;\\n // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\\n opacity: 1;\\n }\\n}\\n\\ninput[type=\\\"date\\\"],\\ninput[type=\\\"time\\\"],\\ninput[type=\\\"datetime-local\\\"],\\ninput[type=\\\"month\\\"] {\\n &.form-control {\\n appearance: none; // Fix appearance for date inputs in Safari\\n }\\n}\\n\\nselect.form-control {\\n // Remove select outline from select box in FF\\n &:-moz-focusring {\\n color: transparent;\\n text-shadow: 0 0 0 $input-color;\\n }\\n\\n &:focus::-ms-value {\\n // Suppress the nested default white text on blue background highlight given to\\n // the selected option text when the (still closed) <select> receives focus\\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\\n // match the appearance of the native widget.\\n // See https://github.com/twbs/bootstrap/issues/19398.\\n color: $input-color;\\n background-color: $input-bg;\\n }\\n}\\n\\n// Make file inputs better match text inputs by forcing them to new lines.\\n.form-control-file,\\n.form-control-range {\\n display: block;\\n width: 100%;\\n}\\n\\n\\n//\\n// Labels\\n//\\n\\n// For use with horizontal and inline forms, when you need the label (or legend)\\n// text to align with the form controls.\\n.col-form-label {\\n padding-top: add($input-padding-y, $input-border-width);\\n padding-bottom: add($input-padding-y, $input-border-width);\\n margin-bottom: 0; // Override the `<label>/<legend>` default\\n @include font-size(inherit); // Override the `<legend>` default\\n line-height: $input-line-height;\\n}\\n\\n.col-form-label-lg {\\n padding-top: add($input-padding-y-lg, $input-border-width);\\n padding-bottom: add($input-padding-y-lg, $input-border-width);\\n @include font-size($input-font-size-lg);\\n line-height: $input-line-height-lg;\\n}\\n\\n.col-form-label-sm {\\n padding-top: add($input-padding-y-sm, $input-border-width);\\n padding-bottom: add($input-padding-y-sm, $input-border-width);\\n @include font-size($input-font-size-sm);\\n line-height: $input-line-height-sm;\\n}\\n\\n\\n// Readonly controls as plain text\\n//\\n// Apply class to a readonly input to make it appear like regular plain\\n// text (without any border, background color, focus indicator)\\n\\n.form-control-plaintext {\\n display: block;\\n width: 100%;\\n padding: $input-padding-y 0;\\n margin-bottom: 0; // match inputs if this class comes on inputs with default margins\\n @include font-size($input-font-size);\\n line-height: $input-line-height;\\n color: $input-plaintext-color;\\n background-color: transparent;\\n border: solid transparent;\\n border-width: $input-border-width 0;\\n\\n &.form-control-sm,\\n &.form-control-lg {\\n padding-right: 0;\\n padding-left: 0;\\n }\\n}\\n\\n\\n// Form control sizing\\n//\\n// Build on `.form-control` with modifier classes to decrease or increase the\\n// height and font-size of form controls.\\n//\\n// Repeated in `_input_group.scss` to avoid Sass extend issues.\\n\\n.form-control-sm {\\n height: $input-height-sm;\\n padding: $input-padding-y-sm $input-padding-x-sm;\\n @include font-size($input-font-size-sm);\\n line-height: $input-line-height-sm;\\n @include border-radius($input-border-radius-sm);\\n}\\n\\n.form-control-lg {\\n height: $input-height-lg;\\n padding: $input-padding-y-lg $input-padding-x-lg;\\n @include font-size($input-font-size-lg);\\n line-height: $input-line-height-lg;\\n @include border-radius($input-border-radius-lg);\\n}\\n\\n// stylelint-disable-next-line no-duplicate-selectors\\nselect.form-control {\\n &[size],\\n &[multiple] {\\n height: auto;\\n }\\n}\\n\\ntextarea.form-control {\\n height: auto;\\n}\\n\\n// Form groups\\n//\\n// Designed to help with the organization and spacing of vertical forms. For\\n// horizontal forms, use the predefined grid classes.\\n\\n.form-group {\\n margin-bottom: $form-group-margin-bottom;\\n}\\n\\n.form-text {\\n display: block;\\n margin-top: $form-text-margin-top;\\n}\\n\\n\\n// Form grid\\n//\\n// Special replacement for our grid system's `.row` for tighter form layouts.\\n\\n.form-row {\\n display: flex;\\n flex-wrap: wrap;\\n margin-right: -$form-grid-gutter-width * .5;\\n margin-left: -$form-grid-gutter-width * .5;\\n\\n > .col,\\n > [class*=\\\"col-\\\"] {\\n padding-right: $form-grid-gutter-width * .5;\\n padding-left: $form-grid-gutter-width * .5;\\n }\\n}\\n\\n\\n// Checkboxes and radios\\n//\\n// Indent the labels to position radios/checkboxes as hanging controls.\\n\\n.form-check {\\n position: relative;\\n display: block;\\n padding-left: $form-check-input-gutter;\\n}\\n\\n.form-check-input {\\n position: absolute;\\n margin-top: $form-check-input-margin-y;\\n margin-left: -$form-check-input-gutter;\\n\\n // Use [disabled] and :disabled for workaround https://github.com/twbs/bootstrap/issues/28247\\n &[disabled] ~ .form-check-label,\\n &:disabled ~ .form-check-label {\\n color: $text-muted;\\n }\\n}\\n\\n.form-check-label {\\n margin-bottom: 0; // Override default `<label>` bottom margin\\n}\\n\\n.form-check-inline {\\n display: inline-flex;\\n align-items: center;\\n padding-left: 0; // Override base .form-check\\n margin-right: $form-check-inline-margin-x;\\n\\n // Undo .form-check-input defaults and add some `margin-right`.\\n .form-check-input {\\n position: static;\\n margin-top: 0;\\n margin-right: $form-check-inline-input-margin-x;\\n margin-left: 0;\\n }\\n}\\n\\n\\n// Form validation\\n//\\n// Provide feedback to users when form field values are valid or invalid. Works\\n// primarily for client-side validation via scoped `:invalid` and `:valid`\\n// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for\\n// server side validation.\\n\\n@each $state, $data in $form-validation-states {\\n @include form-validation-state($state, map-get($data, color), map-get($data, icon));\\n}\\n\\n// Inline forms\\n//\\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\\n// forms begin stacked on extra small (mobile) devices and then go inline when\\n// viewports reach <768px.\\n//\\n// Requires wrapping inputs and labels with `.form-group` for proper display of\\n// default HTML form controls and our custom form controls (e.g., input groups).\\n\\n.form-inline {\\n display: flex;\\n flex-flow: row wrap;\\n align-items: center; // Prevent shorter elements from growing to same height as others (e.g., small buttons growing to normal sized button height)\\n\\n // Because we use flex, the initial sizing of checkboxes is collapsed and\\n // doesn't occupy the full-width (which is what we want for xs grid tier),\\n // so we force that here.\\n .form-check {\\n width: 100%;\\n }\\n\\n // Kick in the inline\\n @include media-breakpoint-up(sm) {\\n label {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n margin-bottom: 0;\\n }\\n\\n // Inline-block all the things for \\\"inline\\\"\\n .form-group {\\n display: flex;\\n flex: 0 0 auto;\\n flex-flow: row wrap;\\n align-items: center;\\n margin-bottom: 0;\\n }\\n\\n // Allow folks to *not* use `.form-group`\\n .form-control {\\n display: inline-block;\\n width: auto; // Prevent labels from stacking above inputs in `.form-group`\\n vertical-align: middle;\\n }\\n\\n // Make static controls behave like regular ones\\n .form-control-plaintext {\\n display: inline-block;\\n }\\n\\n .input-group,\\n .custom-select {\\n width: auto;\\n }\\n\\n // Remove default margin on radios/checkboxes that were used for stacking, and\\n // then undo the floating of radios and checkboxes to match.\\n .form-check {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: auto;\\n padding-left: 0;\\n }\\n .form-check-input {\\n position: relative;\\n flex-shrink: 0;\\n margin-top: 0;\\n margin-right: $form-check-input-margin-x;\\n margin-left: 0;\\n }\\n\\n .custom-control {\\n align-items: center;\\n justify-content: center;\\n }\\n .custom-control-label {\\n margin-bottom: 0;\\n }\\n }\\n}\\n\",\"// stylelint-disable property-disallowed-list\\n// Single side border-radius\\n\\n// Helper function to replace negative values with 0\\n@function valid-radius($radius) {\\n $return: ();\\n @each $value in $radius {\\n @if type-of($value) == number {\\n $return: append($return, max($value, 0));\\n } @else {\\n $return: append($return, $value);\\n }\\n }\\n @return $return;\\n}\\n\\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\\n @if $enable-rounded {\\n border-radius: valid-radius($radius);\\n }\\n @else if $fallback-border-radius != false {\\n border-radius: $fallback-border-radius;\\n }\\n}\\n\\n@mixin border-top-radius($radius) {\\n @if $enable-rounded {\\n border-top-left-radius: valid-radius($radius);\\n border-top-right-radius: valid-radius($radius);\\n }\\n}\\n\\n@mixin border-right-radius($radius) {\\n @if $enable-rounded {\\n border-top-right-radius: valid-radius($radius);\\n border-bottom-right-radius: valid-radius($radius);\\n }\\n}\\n\\n@mixin border-bottom-radius($radius) {\\n @if $enable-rounded {\\n border-bottom-right-radius: valid-radius($radius);\\n border-bottom-left-radius: valid-radius($radius);\\n }\\n}\\n\\n@mixin border-left-radius($radius) {\\n @if $enable-rounded {\\n border-top-left-radius: valid-radius($radius);\\n border-bottom-left-radius: valid-radius($radius);\\n }\\n}\\n\\n@mixin border-top-left-radius($radius) {\\n @if $enable-rounded {\\n border-top-left-radius: valid-radius($radius);\\n }\\n}\\n\\n@mixin border-top-right-radius($radius) {\\n @if $enable-rounded {\\n border-top-right-radius: valid-radius($radius);\\n }\\n}\\n\\n@mixin border-bottom-right-radius($radius) {\\n @if $enable-rounded {\\n border-bottom-right-radius: valid-radius($radius);\\n }\\n}\\n\\n@mixin border-bottom-left-radius($radius) {\\n @if $enable-rounded {\\n border-bottom-left-radius: valid-radius($radius);\\n }\\n}\\n\",\"// stylelint-disable property-disallowed-list\\n@mixin transition($transition...) {\\n @if length($transition) == 0 {\\n $transition: $transition-base;\\n }\\n\\n @if length($transition) > 1 {\\n @each $value in $transition {\\n @if $value == null or $value == none {\\n @warn \\\"The keyword 'none' or 'null' must be used as a single argument.\\\";\\n }\\n }\\n }\\n\\n @if $enable-transitions {\\n @if nth($transition, 1) != null {\\n transition: $transition;\\n }\\n\\n @if $enable-prefers-reduced-motion-media-query and nth($transition, 1) != null and nth($transition, 1) != none {\\n @media (prefers-reduced-motion: reduce) {\\n transition: none;\\n }\\n }\\n }\\n}\\n\",\"// Form control focus state\\n//\\n// Generate a customized focus state and for any input with the specified color,\\n// which defaults to the `$input-focus-border-color` variable.\\n//\\n// We highly encourage you to not customize the default value, but instead use\\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\\n// WebKit's default styles, but applicable to a wider range of browsers. Its\\n// usability and accessibility should be taken into account with any change.\\n//\\n// Example usage: change the default blue border and shadow to white for better\\n// contrast against a dark gray background.\\n@mixin form-control-focus($ignore-warning: false) {\\n &:focus {\\n color: $input-focus-color;\\n background-color: $input-focus-bg;\\n border-color: $input-focus-border-color;\\n outline: 0;\\n @if $enable-shadows {\\n @include box-shadow($input-box-shadow, $input-focus-box-shadow);\\n } @else {\\n // Avoid using mixin so we can pass custom focus shadow properly\\n box-shadow: $input-focus-box-shadow;\\n }\\n }\\n @include deprecate(\\\"The `form-control-focus()` mixin\\\", \\\"v4.4.0\\\", \\\"v5\\\", $ignore-warning);\\n}\\n\\n// This mixin uses an `if()` technique to be compatible with Dart Sass\\n// See https://github.com/sass/sass/issues/1873#issuecomment-152293725 for more details\\n@mixin form-validation-state-selector($state) {\\n @if ($state == \\\"valid\\\" or $state == \\\"invalid\\\") {\\n .was-validated #{if(&, \\\"&\\\", \\\"\\\")}:#{$state},\\n #{if(&, \\\"&\\\", \\\"\\\")}.is-#{$state} {\\n @content;\\n }\\n } @else {\\n #{if(&, \\\"&\\\", \\\"\\\")}.is-#{$state} {\\n @content;\\n }\\n }\\n}\\n\\n@mixin form-validation-state($state, $color, $icon) {\\n .#{$state}-feedback {\\n display: none;\\n width: 100%;\\n margin-top: $form-feedback-margin-top;\\n @include font-size($form-feedback-font-size);\\n color: $color;\\n }\\n\\n .#{$state}-tooltip {\\n position: absolute;\\n top: 100%;\\n left: 0;\\n z-index: 5;\\n display: none;\\n max-width: 100%; // Contain to parent when possible\\n padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;\\n margin-top: .1rem;\\n @include font-size($form-feedback-tooltip-font-size);\\n line-height: $form-feedback-tooltip-line-height;\\n color: color-yiq($color);\\n background-color: rgba($color, $form-feedback-tooltip-opacity);\\n @include border-radius($form-feedback-tooltip-border-radius);\\n\\n // See https://github.com/twbs/bootstrap/pull/31557\\n // Align tooltip to form elements\\n .form-row > .col > &,\\n .form-row > [class*=\\\"col-\\\"] > & {\\n left: $form-grid-gutter-width * .5;\\n }\\n }\\n\\n @include form-validation-state-selector($state) {\\n ~ .#{$state}-feedback,\\n ~ .#{$state}-tooltip {\\n display: block;\\n }\\n }\\n\\n .form-control {\\n @include form-validation-state-selector($state) {\\n border-color: $color;\\n\\n @if $enable-validation-icons {\\n padding-right: $input-height-inner !important; // stylelint-disable-line declaration-no-important\\n background-image: escape-svg($icon);\\n background-repeat: no-repeat;\\n background-position: right $input-height-inner-quarter center;\\n background-size: $input-height-inner-half $input-height-inner-half;\\n }\\n\\n &:focus {\\n border-color: $color;\\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\\n }\\n }\\n }\\n\\n // stylelint-disable-next-line selector-no-qualifying-type\\n select.form-control {\\n @include form-validation-state-selector($state) {\\n @if $enable-validation-icons {\\n padding-right: $input-padding-x * 4 !important; // stylelint-disable-line declaration-no-important\\n background-position: right $input-padding-x * 2 center;\\n }\\n }\\n }\\n\\n // stylelint-disable-next-line selector-no-qualifying-type\\n textarea.form-control {\\n @include form-validation-state-selector($state) {\\n @if $enable-validation-icons {\\n padding-right: $input-height-inner;\\n background-position: top $input-height-inner-quarter right $input-height-inner-quarter;\\n }\\n }\\n }\\n\\n .custom-select {\\n @include form-validation-state-selector($state) {\\n border-color: $color;\\n\\n @if $enable-validation-icons {\\n padding-right: $custom-select-feedback-icon-padding-right !important; // stylelint-disable-line declaration-no-important\\n background: $custom-select-background, $custom-select-bg escape-svg($icon) $custom-select-feedback-icon-position / $custom-select-feedback-icon-size no-repeat;\\n }\\n\\n &:focus {\\n border-color: $color;\\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\\n }\\n }\\n }\\n\\n .form-check-input {\\n @include form-validation-state-selector($state) {\\n ~ .form-check-label {\\n color: $color;\\n }\\n\\n ~ .#{$state}-feedback,\\n ~ .#{$state}-tooltip {\\n display: block;\\n }\\n }\\n }\\n\\n .custom-control-input {\\n @include form-validation-state-selector($state) {\\n ~ .custom-control-label {\\n color: $color;\\n\\n &::before {\\n border-color: $color;\\n }\\n }\\n\\n &:checked {\\n ~ .custom-control-label::before {\\n border-color: lighten($color, 10%);\\n @include gradient-bg(lighten($color, 10%));\\n }\\n }\\n\\n &:focus {\\n ~ .custom-control-label::before {\\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\\n }\\n\\n &:not(:checked) ~ .custom-control-label::before {\\n border-color: $color;\\n }\\n }\\n }\\n }\\n\\n // custom file\\n .custom-file-input {\\n @include form-validation-state-selector($state) {\\n ~ .custom-file-label {\\n border-color: $color;\\n }\\n\\n &:focus {\\n ~ .custom-file-label {\\n border-color: $color;\\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\\n }\\n }\\n }\\n }\\n}\\n\",\"// Gradients\\n\\n@mixin gradient-bg($color) {\\n @if $enable-gradients {\\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;\\n } @else {\\n background-color: $color;\\n }\\n}\\n\\n// Horizontal gradient, from left to right\\n//\\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\\n@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\\n background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\\n background-repeat: repeat-x;\\n}\\n\\n// Vertical gradient, from top to bottom\\n//\\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\\n@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\\n background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\\n background-repeat: repeat-x;\\n}\\n\\n@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {\\n background-image: linear-gradient($deg, $start-color, $end-color);\\n background-repeat: repeat-x;\\n}\\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\\n background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\\n background-repeat: no-repeat;\\n}\\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\\n background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\\n background-repeat: no-repeat;\\n}\\n@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {\\n background-image: radial-gradient(circle, $inner-color, $outer-color);\\n background-repeat: no-repeat;\\n}\\n@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {\\n background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\\n}\\n\",\"// stylelint-disable selector-no-qualifying-type\\n\\n//\\n// Base styles\\n//\\n\\n.btn {\\n display: inline-block;\\n font-family: $btn-font-family;\\n font-weight: $btn-font-weight;\\n color: $body-color;\\n text-align: center;\\n text-decoration: if($link-decoration == none, null, none);\\n white-space: $btn-white-space;\\n vertical-align: middle;\\n user-select: none;\\n background-color: transparent;\\n border: $btn-border-width solid transparent;\\n @include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-line-height, $btn-border-radius);\\n @include transition($btn-transition);\\n\\n @include hover() {\\n color: $body-color;\\n text-decoration: none;\\n }\\n\\n &:focus,\\n &.focus {\\n outline: 0;\\n box-shadow: $btn-focus-box-shadow;\\n }\\n\\n // Disabled comes first so active can properly restyle\\n &.disabled,\\n &:disabled {\\n opacity: $btn-disabled-opacity;\\n @include box-shadow(none);\\n }\\n\\n &:not(:disabled):not(.disabled) {\\n cursor: if($enable-pointer-cursor-for-buttons, pointer, null);\\n\\n &:active,\\n &.active {\\n @include box-shadow($btn-active-box-shadow);\\n\\n &:focus {\\n @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);\\n }\\n }\\n }\\n}\\n\\n// Future-proof disabling of clicks on `<a>` elements\\na.btn.disabled,\\nfieldset:disabled a.btn {\\n pointer-events: none;\\n}\\n\\n\\n//\\n// Alternate buttons\\n//\\n\\n@each $color, $value in $theme-colors {\\n .btn-#{$color} {\\n @include button-variant($value, $value);\\n }\\n}\\n\\n@each $color, $value in $theme-colors {\\n .btn-outline-#{$color} {\\n @include button-outline-variant($value);\\n }\\n}\\n\\n\\n//\\n// Link buttons\\n//\\n\\n// Make a button look and behave like a link\\n.btn-link {\\n font-weight: $font-weight-normal;\\n color: $link-color;\\n text-decoration: $link-decoration;\\n\\n @include hover() {\\n color: $link-hover-color;\\n text-decoration: $link-hover-decoration;\\n }\\n\\n &:focus,\\n &.focus {\\n text-decoration: $link-hover-decoration;\\n }\\n\\n &:disabled,\\n &.disabled {\\n color: $btn-link-disabled-color;\\n pointer-events: none;\\n }\\n\\n // No need for an active state here\\n}\\n\\n\\n//\\n// Button Sizes\\n//\\n\\n.btn-lg {\\n @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);\\n}\\n\\n.btn-sm {\\n @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);\\n}\\n\\n\\n//\\n// Block button\\n//\\n\\n.btn-block {\\n display: block;\\n width: 100%;\\n\\n // Vertically space out multiple block buttons\\n + .btn-block {\\n margin-top: $btn-block-spacing-y;\\n }\\n}\\n\\n// Specificity overrides\\ninput[type=\\\"submit\\\"],\\ninput[type=\\\"reset\\\"],\\ninput[type=\\\"button\\\"] {\\n &.btn-block {\\n width: 100%;\\n }\\n}\\n\",\"// Button variants\\n//\\n// Easily pump out default styles, as well as :hover, :focus, :active,\\n// and disabled options for all buttons\\n\\n@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {\\n color: color-yiq($background);\\n @include gradient-bg($background);\\n border-color: $border;\\n @include box-shadow($btn-box-shadow);\\n\\n @include hover() {\\n color: color-yiq($hover-background);\\n @include gradient-bg($hover-background);\\n border-color: $hover-border;\\n }\\n\\n &:focus,\\n &.focus {\\n color: color-yiq($hover-background);\\n @include gradient-bg($hover-background);\\n border-color: $hover-border;\\n @if $enable-shadows {\\n @include box-shadow($btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5));\\n } @else {\\n // Avoid using mixin so we can pass custom focus shadow properly\\n box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\\n }\\n }\\n\\n // Disabled comes first so active can properly restyle\\n &.disabled,\\n &:disabled {\\n color: color-yiq($background);\\n background-color: $background;\\n border-color: $border;\\n // Remove CSS gradients if they're enabled\\n @if $enable-gradients {\\n background-image: none;\\n }\\n }\\n\\n &:not(:disabled):not(.disabled):active,\\n &:not(:disabled):not(.disabled).active,\\n .show > &.dropdown-toggle {\\n color: color-yiq($active-background);\\n background-color: $active-background;\\n @if $enable-gradients {\\n background-image: none; // Remove the gradient for the pressed/active state\\n }\\n border-color: $active-border;\\n\\n &:focus {\\n @if $enable-shadows and $btn-active-box-shadow != none {\\n @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5));\\n } @else {\\n // Avoid using mixin so we can pass custom focus shadow properly\\n box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\\n }\\n }\\n }\\n}\\n\\n@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {\\n color: $color;\\n border-color: $color;\\n\\n @include hover() {\\n color: $color-hover;\\n background-color: $active-background;\\n border-color: $active-border;\\n }\\n\\n &:focus,\\n &.focus {\\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\\n }\\n\\n &.disabled,\\n &:disabled {\\n color: $color;\\n background-color: transparent;\\n }\\n\\n &:not(:disabled):not(.disabled):active,\\n &:not(:disabled):not(.disabled).active,\\n .show > &.dropdown-toggle {\\n color: color-yiq($active-background);\\n background-color: $active-background;\\n border-color: $active-border;\\n\\n &:focus {\\n @if $enable-shadows and $btn-active-box-shadow != none {\\n @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5));\\n } @else {\\n // Avoid using mixin so we can pass custom focus shadow properly\\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\\n }\\n }\\n }\\n}\\n\\n// Button sizes\\n@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\\n padding: $padding-y $padding-x;\\n @include font-size($font-size);\\n line-height: $line-height;\\n // Manually declare to provide an override to the browser default\\n @include border-radius($border-radius, 0);\\n}\\n\",\".fade {\\n @include transition($transition-fade);\\n\\n &:not(.show) {\\n opacity: 0;\\n }\\n}\\n\\n.collapse {\\n &:not(.show) {\\n display: none;\\n }\\n}\\n\\n.collapsing {\\n position: relative;\\n height: 0;\\n overflow: hidden;\\n @include transition($transition-collapse);\\n}\\n\",\"// The dropdown wrapper (`<div>`)\\n.dropup,\\n.dropright,\\n.dropdown,\\n.dropleft {\\n position: relative;\\n}\\n\\n.dropdown-toggle {\\n white-space: nowrap;\\n\\n // Generate the caret automatically\\n @include caret();\\n}\\n\\n// The dropdown menu\\n.dropdown-menu {\\n position: absolute;\\n top: 100%;\\n left: 0;\\n z-index: $zindex-dropdown;\\n display: none; // none by default, but block on \\\"open\\\" of the menu\\n float: left;\\n min-width: $dropdown-min-width;\\n padding: $dropdown-padding-y $dropdown-padding-x;\\n margin: $dropdown-spacer 0 0; // override default ul\\n @include font-size($dropdown-font-size);\\n color: $dropdown-color;\\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\\n list-style: none;\\n background-color: $dropdown-bg;\\n background-clip: padding-box;\\n border: $dropdown-border-width solid $dropdown-border-color;\\n @include border-radius($dropdown-border-radius);\\n @include box-shadow($dropdown-box-shadow);\\n}\\n\\n@each $breakpoint in map-keys($grid-breakpoints) {\\n @include media-breakpoint-up($breakpoint) {\\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\\n\\n .dropdown-menu#{$infix}-left {\\n right: auto;\\n left: 0;\\n }\\n\\n .dropdown-menu#{$infix}-right {\\n right: 0;\\n left: auto;\\n }\\n }\\n}\\n\\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\\n// Just add .dropup after the standard .dropdown class and you're set.\\n.dropup {\\n .dropdown-menu {\\n top: auto;\\n bottom: 100%;\\n margin-top: 0;\\n margin-bottom: $dropdown-spacer;\\n }\\n\\n .dropdown-toggle {\\n @include caret(up);\\n }\\n}\\n\\n.dropright {\\n .dropdown-menu {\\n top: 0;\\n right: auto;\\n left: 100%;\\n margin-top: 0;\\n margin-left: $dropdown-spacer;\\n }\\n\\n .dropdown-toggle {\\n @include caret(right);\\n &::after {\\n vertical-align: 0;\\n }\\n }\\n}\\n\\n.dropleft {\\n .dropdown-menu {\\n top: 0;\\n right: 100%;\\n left: auto;\\n margin-top: 0;\\n margin-right: $dropdown-spacer;\\n }\\n\\n .dropdown-toggle {\\n @include caret(left);\\n &::before {\\n vertical-align: 0;\\n }\\n }\\n}\\n\\n// When Popper is enabled, reset the basic dropdown position\\n// stylelint-disable-next-line no-duplicate-selectors\\n.dropdown-menu {\\n &[x-placement^=\\\"top\\\"],\\n &[x-placement^=\\\"right\\\"],\\n &[x-placement^=\\\"bottom\\\"],\\n &[x-placement^=\\\"left\\\"] {\\n right: auto;\\n bottom: auto;\\n }\\n}\\n\\n// Dividers (basically an `<hr>`) within the dropdown\\n.dropdown-divider {\\n @include nav-divider($dropdown-divider-bg, $dropdown-divider-margin-y, true);\\n}\\n\\n// Links, buttons, and more within the dropdown menu\\n//\\n// `<button>`-specific styles are denoted with `// For <button>s`\\n.dropdown-item {\\n display: block;\\n width: 100%; // For `<button>`s\\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\\n clear: both;\\n font-weight: $font-weight-normal;\\n color: $dropdown-link-color;\\n text-align: inherit; // For `<button>`s\\n text-decoration: if($link-decoration == none, null, none);\\n white-space: nowrap; // prevent links from randomly breaking onto new lines\\n background-color: transparent; // For `<button>`s\\n border: 0; // For `<button>`s\\n\\n // Prevent dropdown overflow if there's no padding\\n // See https://github.com/twbs/bootstrap/pull/27703\\n @if $dropdown-padding-y == 0 {\\n &:first-child {\\n @include border-top-radius($dropdown-inner-border-radius);\\n }\\n\\n &:last-child {\\n @include border-bottom-radius($dropdown-inner-border-radius);\\n }\\n }\\n\\n @include hover-focus() {\\n color: $dropdown-link-hover-color;\\n text-decoration: none;\\n @include gradient-bg($dropdown-link-hover-bg);\\n }\\n\\n &.active,\\n &:active {\\n color: $dropdown-link-active-color;\\n text-decoration: none;\\n @include gradient-bg($dropdown-link-active-bg);\\n }\\n\\n &.disabled,\\n &:disabled {\\n color: $dropdown-link-disabled-color;\\n pointer-events: none;\\n background-color: transparent;\\n // Remove CSS gradients if they're enabled\\n @if $enable-gradients {\\n background-image: none;\\n }\\n }\\n}\\n\\n.dropdown-menu.show {\\n display: block;\\n}\\n\\n// Dropdown section headers\\n.dropdown-header {\\n display: block;\\n padding: $dropdown-header-padding;\\n margin-bottom: 0; // for use with heading elements\\n @include font-size($font-size-sm);\\n color: $dropdown-header-color;\\n white-space: nowrap; // as with > li > a\\n}\\n\\n// Dropdown text\\n.dropdown-item-text {\\n display: block;\\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\\n color: $dropdown-link-color;\\n}\\n\",\"@mixin caret-down() {\\n border-top: $caret-width solid;\\n border-right: $caret-width solid transparent;\\n border-bottom: 0;\\n border-left: $caret-width solid transparent;\\n}\\n\\n@mixin caret-up() {\\n border-top: 0;\\n border-right: $caret-width solid transparent;\\n border-bottom: $caret-width solid;\\n border-left: $caret-width solid transparent;\\n}\\n\\n@mixin caret-right() {\\n border-top: $caret-width solid transparent;\\n border-right: 0;\\n border-bottom: $caret-width solid transparent;\\n border-left: $caret-width solid;\\n}\\n\\n@mixin caret-left() {\\n border-top: $caret-width solid transparent;\\n border-right: $caret-width solid;\\n border-bottom: $caret-width solid transparent;\\n}\\n\\n@mixin caret($direction: down) {\\n @if $enable-caret {\\n &::after {\\n display: inline-block;\\n margin-left: $caret-spacing;\\n vertical-align: $caret-vertical-align;\\n content: \\\"\\\";\\n @if $direction == down {\\n @include caret-down();\\n } @else if $direction == up {\\n @include caret-up();\\n } @else if $direction == right {\\n @include caret-right();\\n }\\n }\\n\\n @if $direction == left {\\n &::after {\\n display: none;\\n }\\n\\n &::before {\\n display: inline-block;\\n margin-right: $caret-spacing;\\n vertical-align: $caret-vertical-align;\\n content: \\\"\\\";\\n @include caret-left();\\n }\\n }\\n\\n &:empty::after {\\n margin-left: 0;\\n }\\n }\\n}\\n\",\"// Horizontal dividers\\n//\\n// Dividers (basically an hr) within dropdowns and nav lists\\n\\n@mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y, $ignore-warning: false) {\\n height: 0;\\n margin: $margin-y 0;\\n overflow: hidden;\\n border-top: 1px solid $color;\\n @include deprecate(\\\"The `nav-divider()` mixin\\\", \\\"v4.4.0\\\", \\\"v5\\\", $ignore-warning);\\n}\\n\",\"// stylelint-disable selector-no-qualifying-type\\n\\n// Make the div behave like a button\\n.btn-group,\\n.btn-group-vertical {\\n position: relative;\\n display: inline-flex;\\n vertical-align: middle; // match .btn alignment given font-size hack above\\n\\n > .btn {\\n position: relative;\\n flex: 1 1 auto;\\n\\n // Bring the hover, focused, and \\\"active\\\" buttons to the front to overlay\\n // the borders properly\\n @include hover() {\\n z-index: 1;\\n }\\n &:focus,\\n &:active,\\n &.active {\\n z-index: 1;\\n }\\n }\\n}\\n\\n// Optional: Group multiple button groups together for a toolbar\\n.btn-toolbar {\\n display: flex;\\n flex-wrap: wrap;\\n justify-content: flex-start;\\n\\n .input-group {\\n width: auto;\\n }\\n}\\n\\n.btn-group {\\n // Prevent double borders when buttons are next to each other\\n > .btn:not(:first-child),\\n > .btn-group:not(:first-child) {\\n margin-left: -$btn-border-width;\\n }\\n\\n // Reset rounded corners\\n > .btn:not(:last-child):not(.dropdown-toggle),\\n > .btn-group:not(:last-child) > .btn {\\n @include border-right-radius(0);\\n }\\n\\n > .btn:not(:first-child),\\n > .btn-group:not(:first-child) > .btn {\\n @include border-left-radius(0);\\n }\\n}\\n\\n// Sizing\\n//\\n// Remix the default button sizing classes into new ones for easier manipulation.\\n\\n.btn-group-sm > .btn { @extend .btn-sm; }\\n.btn-group-lg > .btn { @extend .btn-lg; }\\n\\n\\n//\\n// Split button dropdowns\\n//\\n\\n.dropdown-toggle-split {\\n padding-right: $btn-padding-x * .75;\\n padding-left: $btn-padding-x * .75;\\n\\n &::after,\\n .dropup &::after,\\n .dropright &::after {\\n margin-left: 0;\\n }\\n\\n .dropleft &::before {\\n margin-right: 0;\\n }\\n}\\n\\n.btn-sm + .dropdown-toggle-split {\\n padding-right: $btn-padding-x-sm * .75;\\n padding-left: $btn-padding-x-sm * .75;\\n}\\n\\n.btn-lg + .dropdown-toggle-split {\\n padding-right: $btn-padding-x-lg * .75;\\n padding-left: $btn-padding-x-lg * .75;\\n}\\n\\n\\n// The clickable button for toggling the menu\\n// Set the same inset shadow as the :active state\\n.btn-group.show .dropdown-toggle {\\n @include box-shadow($btn-active-box-shadow);\\n\\n // Show no shadow for `.btn-link` since it has no other button styles.\\n &.btn-link {\\n @include box-shadow(none);\\n }\\n}\\n\\n\\n//\\n// Vertical button groups\\n//\\n\\n.btn-group-vertical {\\n flex-direction: column;\\n align-items: flex-start;\\n justify-content: center;\\n\\n > .btn,\\n > .btn-group {\\n width: 100%;\\n }\\n\\n > .btn:not(:first-child),\\n > .btn-group:not(:first-child) {\\n margin-top: -$btn-border-width;\\n }\\n\\n // Reset rounded corners\\n > .btn:not(:last-child):not(.dropdown-toggle),\\n > .btn-group:not(:last-child) > .btn {\\n @include border-bottom-radius(0);\\n }\\n\\n > .btn:not(:first-child),\\n > .btn-group:not(:first-child) > .btn {\\n @include border-top-radius(0);\\n }\\n}\\n\\n\\n// Checkbox and radio options\\n//\\n// In order to support the browser's form validation feedback, powered by the\\n// `required` attribute, we have to \\\"hide\\\" the inputs via `clip`. We cannot use\\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\\n// certain cases which is prevented by using `clip` and `pointer-events`.\\n// This way, we ensure a DOM element is visible to position the popover from.\\n//\\n// See https://github.com/twbs/bootstrap/pull/12794 and\\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\\n\\n.btn-group-toggle {\\n > .btn,\\n > .btn-group > .btn {\\n margin-bottom: 0; // Override default `<label>` value\\n\\n input[type=\\\"radio\\\"],\\n input[type=\\\"checkbox\\\"] {\\n position: absolute;\\n clip: rect(0, 0, 0, 0);\\n pointer-events: none;\\n }\\n }\\n}\\n\",\"// stylelint-disable selector-no-qualifying-type\\n\\n//\\n// Base styles\\n//\\n\\n.input-group {\\n position: relative;\\n display: flex;\\n flex-wrap: wrap; // For form validation feedback\\n align-items: stretch;\\n width: 100%;\\n\\n > .form-control,\\n > .form-control-plaintext,\\n > .custom-select,\\n > .custom-file {\\n position: relative; // For focus state's z-index\\n flex: 1 1 auto;\\n width: 1%;\\n min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size\\n margin-bottom: 0;\\n\\n + .form-control,\\n + .custom-select,\\n + .custom-file {\\n margin-left: -$input-border-width;\\n }\\n }\\n\\n // Bring the \\\"active\\\" form control to the top of surrounding elements\\n > .form-control:focus,\\n > .custom-select:focus,\\n > .custom-file .custom-file-input:focus ~ .custom-file-label {\\n z-index: 3;\\n }\\n\\n // Bring the custom file input above the label\\n > .custom-file .custom-file-input:focus {\\n z-index: 4;\\n }\\n\\n > .form-control,\\n > .custom-select {\\n &:not(:first-child) { @include border-left-radius(0); }\\n }\\n\\n // Custom file inputs have more complex markup, thus requiring different\\n // border-radius overrides.\\n > .custom-file {\\n display: flex;\\n align-items: center;\\n\\n &:not(:last-child) .custom-file-label,\\n &:not(:last-child) .custom-file-label::after { @include border-right-radius(0); }\\n &:not(:first-child) .custom-file-label { @include border-left-radius(0); }\\n }\\n\\n &:not(.has-validation) {\\n > .form-control:not(:last-child),\\n > .custom-select:not(:last-child),\\n > .custom-file:not(:last-child) .custom-file-label,\\n > .custom-file:not(:last-child) .custom-file-label::after {\\n @include border-right-radius(0);\\n }\\n }\\n\\n &.has-validation {\\n > .form-control:nth-last-child(n + 3),\\n > .custom-select:nth-last-child(n + 3),\\n > .custom-file:nth-last-child(n + 3) .custom-file-label,\\n > .custom-file:nth-last-child(n + 3) .custom-file-label::after {\\n @include border-right-radius(0);\\n }\\n }\\n}\\n\\n\\n// Prepend and append\\n//\\n// While it requires one extra layer of HTML for each, dedicated prepend and\\n// append elements allow us to 1) be less clever, 2) simplify our selectors, and\\n// 3) support HTML5 form validation.\\n\\n.input-group-prepend,\\n.input-group-append {\\n display: flex;\\n\\n // Ensure buttons are always above inputs for more visually pleasing borders.\\n // This isn't needed for `.input-group-text` since it shares the same border-color\\n // as our inputs.\\n .btn {\\n position: relative;\\n z-index: 2;\\n\\n &:focus {\\n z-index: 3;\\n }\\n }\\n\\n .btn + .btn,\\n .btn + .input-group-text,\\n .input-group-text + .input-group-text,\\n .input-group-text + .btn {\\n margin-left: -$input-border-width;\\n }\\n}\\n\\n.input-group-prepend { margin-right: -$input-border-width; }\\n.input-group-append { margin-left: -$input-border-width; }\\n\\n\\n// Textual addons\\n//\\n// Serves as a catch-all element for any text or radio/checkbox input you wish\\n// to prepend or append to an input.\\n\\n.input-group-text {\\n display: flex;\\n align-items: center;\\n padding: $input-padding-y $input-padding-x;\\n margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom\\n @include font-size($input-font-size); // Match inputs\\n font-weight: $font-weight-normal;\\n line-height: $input-line-height;\\n color: $input-group-addon-color;\\n text-align: center;\\n white-space: nowrap;\\n background-color: $input-group-addon-bg;\\n border: $input-border-width solid $input-group-addon-border-color;\\n @include border-radius($input-border-radius);\\n\\n // Nuke default margins from checkboxes and radios to vertically center within.\\n input[type=\\\"radio\\\"],\\n input[type=\\\"checkbox\\\"] {\\n margin-top: 0;\\n }\\n}\\n\\n\\n// Sizing\\n//\\n// Remix the default form control sizing classes into new ones for easier\\n// manipulation.\\n\\n.input-group-lg > .form-control:not(textarea),\\n.input-group-lg > .custom-select {\\n height: $input-height-lg;\\n}\\n\\n.input-group-lg > .form-control,\\n.input-group-lg > .custom-select,\\n.input-group-lg > .input-group-prepend > .input-group-text,\\n.input-group-lg > .input-group-append > .input-group-text,\\n.input-group-lg > .input-group-prepend > .btn,\\n.input-group-lg > .input-group-append > .btn {\\n padding: $input-padding-y-lg $input-padding-x-lg;\\n @include font-size($input-font-size-lg);\\n line-height: $input-line-height-lg;\\n @include border-radius($input-border-radius-lg);\\n}\\n\\n.input-group-sm > .form-control:not(textarea),\\n.input-group-sm > .custom-select {\\n height: $input-height-sm;\\n}\\n\\n.input-group-sm > .form-control,\\n.input-group-sm > .custom-select,\\n.input-group-sm > .input-group-prepend > .input-group-text,\\n.input-group-sm > .input-group-append > .input-group-text,\\n.input-group-sm > .input-group-prepend > .btn,\\n.input-group-sm > .input-group-append > .btn {\\n padding: $input-padding-y-sm $input-padding-x-sm;\\n @include font-size($input-font-size-sm);\\n line-height: $input-line-height-sm;\\n @include border-radius($input-border-radius-sm);\\n}\\n\\n.input-group-lg > .custom-select,\\n.input-group-sm > .custom-select {\\n padding-right: $custom-select-padding-x + $custom-select-indicator-padding;\\n}\\n\\n\\n// Prepend and append rounded corners\\n//\\n// These rulesets must come after the sizing ones to properly override sm and lg\\n// border-radius values when extending. They're more specific than we'd like\\n// with the `.input-group >` part, but without it, we cannot override the sizing.\\n\\n\\n.input-group > .input-group-prepend > .btn,\\n.input-group > .input-group-prepend > .input-group-text,\\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,\\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,\\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn,\\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text,\\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\\n @include border-right-radius(0);\\n}\\n\\n.input-group > .input-group-append > .btn,\\n.input-group > .input-group-append > .input-group-text,\\n.input-group > .input-group-prepend:not(:first-child) > .btn,\\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\\n @include border-left-radius(0);\\n}\\n\",\"// Embedded icons from Open Iconic.\\n// Released under MIT and copyright 2014 Waybury.\\n// https://useiconic.com/open\\n\\n\\n// Checkboxes and radios\\n//\\n// Base class takes care of all the key behavioral aspects.\\n\\n.custom-control {\\n position: relative;\\n z-index: 1;\\n display: block;\\n min-height: $font-size-base * $line-height-base;\\n padding-left: $custom-control-gutter + $custom-control-indicator-size;\\n color-adjust: exact; // Keep themed appearance for print\\n}\\n\\n.custom-control-inline {\\n display: inline-flex;\\n margin-right: $custom-control-spacer-x;\\n}\\n\\n.custom-control-input {\\n position: absolute;\\n left: 0;\\n z-index: -1; // Put the input behind the label so it doesn't overlay text\\n width: $custom-control-indicator-size;\\n height: ($font-size-base * $line-height-base + $custom-control-indicator-size) * .5;\\n opacity: 0;\\n\\n &:checked ~ .custom-control-label::before {\\n color: $custom-control-indicator-checked-color;\\n border-color: $custom-control-indicator-checked-border-color;\\n @include gradient-bg($custom-control-indicator-checked-bg);\\n @include box-shadow($custom-control-indicator-checked-box-shadow);\\n }\\n\\n &:focus ~ .custom-control-label::before {\\n // the mixin is not used here to make sure there is feedback\\n @if $enable-shadows {\\n box-shadow: $input-box-shadow, $custom-control-indicator-focus-box-shadow;\\n } @else {\\n box-shadow: $custom-control-indicator-focus-box-shadow;\\n }\\n }\\n\\n &:focus:not(:checked) ~ .custom-control-label::before {\\n border-color: $custom-control-indicator-focus-border-color;\\n }\\n\\n &:not(:disabled):active ~ .custom-control-label::before {\\n color: $custom-control-indicator-active-color;\\n background-color: $custom-control-indicator-active-bg;\\n border-color: $custom-control-indicator-active-border-color;\\n @include box-shadow($custom-control-indicator-active-box-shadow);\\n }\\n\\n // Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247\\n &[disabled],\\n &:disabled {\\n ~ .custom-control-label {\\n color: $custom-control-label-disabled-color;\\n\\n &::before {\\n background-color: $custom-control-indicator-disabled-bg;\\n }\\n }\\n }\\n}\\n\\n// Custom control indicators\\n//\\n// Build the custom controls out of pseudo-elements.\\n\\n.custom-control-label {\\n position: relative;\\n margin-bottom: 0;\\n color: $custom-control-label-color;\\n vertical-align: top;\\n cursor: $custom-control-cursor;\\n\\n // Background-color and (when enabled) gradient\\n &::before {\\n position: absolute;\\n top: ($font-size-base * $line-height-base - $custom-control-indicator-size) * .5;\\n left: -($custom-control-gutter + $custom-control-indicator-size);\\n display: block;\\n width: $custom-control-indicator-size;\\n height: $custom-control-indicator-size;\\n pointer-events: none;\\n content: \\\"\\\";\\n background-color: $custom-control-indicator-bg;\\n border: $custom-control-indicator-border-color solid $custom-control-indicator-border-width;\\n @include box-shadow($custom-control-indicator-box-shadow);\\n }\\n\\n // Foreground (icon)\\n &::after {\\n position: absolute;\\n top: ($font-size-base * $line-height-base - $custom-control-indicator-size) * .5;\\n left: -($custom-control-gutter + $custom-control-indicator-size);\\n display: block;\\n width: $custom-control-indicator-size;\\n height: $custom-control-indicator-size;\\n content: \\\"\\\";\\n background: 50% / #{$custom-control-indicator-bg-size} no-repeat;\\n }\\n}\\n\\n\\n// Checkboxes\\n//\\n// Tweak just a few things for checkboxes.\\n\\n.custom-checkbox {\\n .custom-control-label::before {\\n @include border-radius($custom-checkbox-indicator-border-radius);\\n }\\n\\n .custom-control-input:checked ~ .custom-control-label {\\n &::after {\\n background-image: escape-svg($custom-checkbox-indicator-icon-checked);\\n }\\n }\\n\\n .custom-control-input:indeterminate ~ .custom-control-label {\\n &::before {\\n border-color: $custom-checkbox-indicator-indeterminate-border-color;\\n @include gradient-bg($custom-checkbox-indicator-indeterminate-bg);\\n @include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);\\n }\\n &::after {\\n background-image: escape-svg($custom-checkbox-indicator-icon-indeterminate);\\n }\\n }\\n\\n .custom-control-input:disabled {\\n &:checked ~ .custom-control-label::before {\\n @include gradient-bg($custom-control-indicator-checked-disabled-bg);\\n }\\n &:indeterminate ~ .custom-control-label::before {\\n @include gradient-bg($custom-control-indicator-checked-disabled-bg);\\n }\\n }\\n}\\n\\n// Radios\\n//\\n// Tweak just a few things for radios.\\n\\n.custom-radio {\\n .custom-control-label::before {\\n // stylelint-disable-next-line property-disallowed-list\\n border-radius: $custom-radio-indicator-border-radius;\\n }\\n\\n .custom-control-input:checked ~ .custom-control-label {\\n &::after {\\n background-image: escape-svg($custom-radio-indicator-icon-checked);\\n }\\n }\\n\\n .custom-control-input:disabled {\\n &:checked ~ .custom-control-label::before {\\n @include gradient-bg($custom-control-indicator-checked-disabled-bg);\\n }\\n }\\n}\\n\\n\\n// switches\\n//\\n// Tweak a few things for switches\\n\\n.custom-switch {\\n padding-left: $custom-switch-width + $custom-control-gutter;\\n\\n .custom-control-label {\\n &::before {\\n left: -($custom-switch-width + $custom-control-gutter);\\n width: $custom-switch-width;\\n pointer-events: all;\\n // stylelint-disable-next-line property-disallowed-list\\n border-radius: $custom-switch-indicator-border-radius;\\n }\\n\\n &::after {\\n top: add(($font-size-base * $line-height-base - $custom-control-indicator-size) * .5, $custom-control-indicator-border-width * 2);\\n left: add(-($custom-switch-width + $custom-control-gutter), $custom-control-indicator-border-width * 2);\\n width: $custom-switch-indicator-size;\\n height: $custom-switch-indicator-size;\\n background-color: $custom-control-indicator-border-color;\\n // stylelint-disable-next-line property-disallowed-list\\n border-radius: $custom-switch-indicator-border-radius;\\n @include transition(transform .15s ease-in-out, $custom-forms-transition);\\n }\\n }\\n\\n .custom-control-input:checked ~ .custom-control-label {\\n &::after {\\n background-color: $custom-control-indicator-bg;\\n transform: translateX($custom-switch-width - $custom-control-indicator-size);\\n }\\n }\\n\\n .custom-control-input:disabled {\\n &:checked ~ .custom-control-label::before {\\n @include gradient-bg($custom-control-indicator-checked-disabled-bg);\\n }\\n }\\n}\\n\\n\\n// Select\\n//\\n// Replaces the browser default select with a custom one, mostly pulled from\\n// https://primer.github.io/.\\n//\\n\\n.custom-select {\\n display: inline-block;\\n width: 100%;\\n height: $custom-select-height;\\n padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;\\n font-family: $custom-select-font-family;\\n @include font-size($custom-select-font-size);\\n font-weight: $custom-select-font-weight;\\n line-height: $custom-select-line-height;\\n color: $custom-select-color;\\n vertical-align: middle;\\n background: $custom-select-bg $custom-select-background;\\n border: $custom-select-border-width solid $custom-select-border-color;\\n @include border-radius($custom-select-border-radius, 0);\\n @include box-shadow($custom-select-box-shadow);\\n appearance: none;\\n\\n &:focus {\\n border-color: $custom-select-focus-border-color;\\n outline: 0;\\n @if $enable-shadows {\\n @include box-shadow($custom-select-box-shadow, $custom-select-focus-box-shadow);\\n } @else {\\n // Avoid using mixin so we can pass custom focus shadow properly\\n box-shadow: $custom-select-focus-box-shadow;\\n }\\n\\n &::-ms-value {\\n // For visual consistency with other platforms/browsers,\\n // suppress the default white text on blue background highlight given to\\n // the selected option text when the (still closed) <select> receives focus\\n // in IE and (under certain conditions) Edge.\\n // See https://github.com/twbs/bootstrap/issues/19398.\\n color: $input-color;\\n background-color: $input-bg;\\n }\\n }\\n\\n &[multiple],\\n &[size]:not([size=\\\"1\\\"]) {\\n height: auto;\\n padding-right: $custom-select-padding-x;\\n background-image: none;\\n }\\n\\n &:disabled {\\n color: $custom-select-disabled-color;\\n background-color: $custom-select-disabled-bg;\\n }\\n\\n // Hides the default caret in IE11\\n &::-ms-expand {\\n display: none;\\n }\\n\\n // Remove outline from select box in FF\\n &:-moz-focusring {\\n color: transparent;\\n text-shadow: 0 0 0 $custom-select-color;\\n }\\n}\\n\\n.custom-select-sm {\\n height: $custom-select-height-sm;\\n padding-top: $custom-select-padding-y-sm;\\n padding-bottom: $custom-select-padding-y-sm;\\n padding-left: $custom-select-padding-x-sm;\\n @include font-size($custom-select-font-size-sm);\\n}\\n\\n.custom-select-lg {\\n height: $custom-select-height-lg;\\n padding-top: $custom-select-padding-y-lg;\\n padding-bottom: $custom-select-padding-y-lg;\\n padding-left: $custom-select-padding-x-lg;\\n @include font-size($custom-select-font-size-lg);\\n}\\n\\n\\n// File\\n//\\n// Custom file input.\\n\\n.custom-file {\\n position: relative;\\n display: inline-block;\\n width: 100%;\\n height: $custom-file-height;\\n margin-bottom: 0;\\n}\\n\\n.custom-file-input {\\n position: relative;\\n z-index: 2;\\n width: 100%;\\n height: $custom-file-height;\\n margin: 0;\\n overflow: hidden;\\n opacity: 0;\\n\\n &:focus ~ .custom-file-label {\\n border-color: $custom-file-focus-border-color;\\n box-shadow: $custom-file-focus-box-shadow;\\n }\\n\\n // Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247\\n &[disabled] ~ .custom-file-label,\\n &:disabled ~ .custom-file-label {\\n background-color: $custom-file-disabled-bg;\\n }\\n\\n @each $lang, $value in $custom-file-text {\\n &:lang(#{$lang}) ~ .custom-file-label::after {\\n content: $value;\\n }\\n }\\n\\n ~ .custom-file-label[data-browse]::after {\\n content: attr(data-browse);\\n }\\n}\\n\\n.custom-file-label {\\n position: absolute;\\n top: 0;\\n right: 0;\\n left: 0;\\n z-index: 1;\\n height: $custom-file-height;\\n padding: $custom-file-padding-y $custom-file-padding-x;\\n overflow: hidden;\\n font-family: $custom-file-font-family;\\n font-weight: $custom-file-font-weight;\\n line-height: $custom-file-line-height;\\n color: $custom-file-color;\\n background-color: $custom-file-bg;\\n border: $custom-file-border-width solid $custom-file-border-color;\\n @include border-radius($custom-file-border-radius);\\n @include box-shadow($custom-file-box-shadow);\\n\\n &::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n z-index: 3;\\n display: block;\\n height: $custom-file-height-inner;\\n padding: $custom-file-padding-y $custom-file-padding-x;\\n line-height: $custom-file-line-height;\\n color: $custom-file-button-color;\\n content: \\\"Browse\\\";\\n @include gradient-bg($custom-file-button-bg);\\n border-left: inherit;\\n @include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);\\n }\\n}\\n\\n// Range\\n//\\n// Style range inputs the same across browsers. Vendor-specific rules for pseudo\\n// elements cannot be mixed. As such, there are no shared styles for focus or\\n// active states on prefixed selectors.\\n\\n.custom-range {\\n width: 100%;\\n height: add($custom-range-thumb-height, $custom-range-thumb-focus-box-shadow-width * 2);\\n padding: 0; // Need to reset padding\\n background-color: transparent;\\n appearance: none;\\n\\n &:focus {\\n outline: 0;\\n\\n // Pseudo-elements must be split across multiple rulesets to have an effect.\\n // No box-shadow() mixin for focus accessibility.\\n &::-webkit-slider-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\\n &::-moz-range-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\\n &::-ms-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\\n }\\n\\n &::-moz-focus-outer {\\n border: 0;\\n }\\n\\n &::-webkit-slider-thumb {\\n width: $custom-range-thumb-width;\\n height: $custom-range-thumb-height;\\n margin-top: ($custom-range-track-height - $custom-range-thumb-height) * .5; // Webkit specific\\n @include gradient-bg($custom-range-thumb-bg);\\n border: $custom-range-thumb-border;\\n @include border-radius($custom-range-thumb-border-radius);\\n @include box-shadow($custom-range-thumb-box-shadow);\\n @include transition($custom-forms-transition);\\n appearance: none;\\n\\n &:active {\\n @include gradient-bg($custom-range-thumb-active-bg);\\n }\\n }\\n\\n &::-webkit-slider-runnable-track {\\n width: $custom-range-track-width;\\n height: $custom-range-track-height;\\n color: transparent; // Why?\\n cursor: $custom-range-track-cursor;\\n background-color: $custom-range-track-bg;\\n border-color: transparent;\\n @include border-radius($custom-range-track-border-radius);\\n @include box-shadow($custom-range-track-box-shadow);\\n }\\n\\n &::-moz-range-thumb {\\n width: $custom-range-thumb-width;\\n height: $custom-range-thumb-height;\\n @include gradient-bg($custom-range-thumb-bg);\\n border: $custom-range-thumb-border;\\n @include border-radius($custom-range-thumb-border-radius);\\n @include box-shadow($custom-range-thumb-box-shadow);\\n @include transition($custom-forms-transition);\\n appearance: none;\\n\\n &:active {\\n @include gradient-bg($custom-range-thumb-active-bg);\\n }\\n }\\n\\n &::-moz-range-track {\\n width: $custom-range-track-width;\\n height: $custom-range-track-height;\\n color: transparent;\\n cursor: $custom-range-track-cursor;\\n background-color: $custom-range-track-bg;\\n border-color: transparent; // Firefox specific?\\n @include border-radius($custom-range-track-border-radius);\\n @include box-shadow($custom-range-track-box-shadow);\\n }\\n\\n &::-ms-thumb {\\n width: $custom-range-thumb-width;\\n height: $custom-range-thumb-height;\\n margin-top: 0; // Edge specific\\n margin-right: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.\\n margin-left: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.\\n @include gradient-bg($custom-range-thumb-bg);\\n border: $custom-range-thumb-border;\\n @include border-radius($custom-range-thumb-border-radius);\\n @include box-shadow($custom-range-thumb-box-shadow);\\n @include transition($custom-forms-transition);\\n appearance: none;\\n\\n &:active {\\n @include gradient-bg($custom-range-thumb-active-bg);\\n }\\n }\\n\\n &::-ms-track {\\n width: $custom-range-track-width;\\n height: $custom-range-track-height;\\n color: transparent;\\n cursor: $custom-range-track-cursor;\\n background-color: transparent;\\n border-color: transparent;\\n border-width: $custom-range-thumb-height * .5;\\n @include box-shadow($custom-range-track-box-shadow);\\n }\\n\\n &::-ms-fill-lower {\\n background-color: $custom-range-track-bg;\\n @include border-radius($custom-range-track-border-radius);\\n }\\n\\n &::-ms-fill-upper {\\n margin-right: 15px; // arbitrary?\\n background-color: $custom-range-track-bg;\\n @include border-radius($custom-range-track-border-radius);\\n }\\n\\n &:disabled {\\n &::-webkit-slider-thumb {\\n background-color: $custom-range-thumb-disabled-bg;\\n }\\n\\n &::-webkit-slider-runnable-track {\\n cursor: default;\\n }\\n\\n &::-moz-range-thumb {\\n background-color: $custom-range-thumb-disabled-bg;\\n }\\n\\n &::-moz-range-track {\\n cursor: default;\\n }\\n\\n &::-ms-thumb {\\n background-color: $custom-range-thumb-disabled-bg;\\n }\\n }\\n}\\n\\n.custom-control-label::before,\\n.custom-file-label,\\n.custom-select {\\n @include transition($custom-forms-transition);\\n}\\n\",\"// Base class\\n//\\n// Kickstart any navigation component with a set of style resets. Works with\\n// `<nav>`s, `<ul>`s or `<ol>`s.\\n\\n.nav {\\n display: flex;\\n flex-wrap: wrap;\\n padding-left: 0;\\n margin-bottom: 0;\\n list-style: none;\\n}\\n\\n.nav-link {\\n display: block;\\n padding: $nav-link-padding-y $nav-link-padding-x;\\n text-decoration: if($link-decoration == none, null, none);\\n\\n @include hover-focus() {\\n text-decoration: none;\\n }\\n\\n // Disabled state lightens text\\n &.disabled {\\n color: $nav-link-disabled-color;\\n pointer-events: none;\\n cursor: default;\\n }\\n}\\n\\n//\\n// Tabs\\n//\\n\\n.nav-tabs {\\n border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;\\n\\n .nav-link {\\n margin-bottom: -$nav-tabs-border-width;\\n border: $nav-tabs-border-width solid transparent;\\n @include border-top-radius($nav-tabs-border-radius);\\n\\n @include hover-focus() {\\n border-color: $nav-tabs-link-hover-border-color;\\n }\\n\\n &.disabled {\\n color: $nav-link-disabled-color;\\n background-color: transparent;\\n border-color: transparent;\\n }\\n }\\n\\n .nav-link.active,\\n .nav-item.show .nav-link {\\n color: $nav-tabs-link-active-color;\\n background-color: $nav-tabs-link-active-bg;\\n border-color: $nav-tabs-link-active-border-color;\\n }\\n\\n .dropdown-menu {\\n // Make dropdown border overlap tab border\\n margin-top: -$nav-tabs-border-width;\\n // Remove the top rounded corners here since there is a hard edge above the menu\\n @include border-top-radius(0);\\n }\\n}\\n\\n\\n//\\n// Pills\\n//\\n\\n.nav-pills {\\n .nav-link {\\n @include border-radius($nav-pills-border-radius);\\n }\\n\\n .nav-link.active,\\n .show > .nav-link {\\n color: $nav-pills-link-active-color;\\n background-color: $nav-pills-link-active-bg;\\n }\\n}\\n\\n\\n//\\n// Justified variants\\n//\\n\\n.nav-fill {\\n > .nav-link,\\n .nav-item {\\n flex: 1 1 auto;\\n text-align: center;\\n }\\n}\\n\\n.nav-justified {\\n > .nav-link,\\n .nav-item {\\n flex-basis: 0;\\n flex-grow: 1;\\n text-align: center;\\n }\\n}\\n\\n\\n// Tabbable tabs\\n//\\n// Hide tabbable panes to start, show them when `.active`\\n\\n.tab-content {\\n > .tab-pane {\\n display: none;\\n }\\n > .active {\\n display: block;\\n }\\n}\\n\",\"// Contents\\n//\\n// Navbar\\n// Navbar brand\\n// Navbar nav\\n// Navbar text\\n// Navbar divider\\n// Responsive navbar\\n// Navbar position\\n// Navbar themes\\n\\n\\n// Navbar\\n//\\n// Provide a static navbar from which we expand to create full-width, fixed, and\\n// other navbar variations.\\n\\n.navbar {\\n position: relative;\\n display: flex;\\n flex-wrap: wrap; // allow us to do the line break for collapsing content\\n align-items: center;\\n justify-content: space-between; // space out brand from logo\\n padding: $navbar-padding-y $navbar-padding-x;\\n\\n // Because flex properties aren't inherited, we need to redeclare these first\\n // few properties so that content nested within behave properly.\\n %container-flex-properties {\\n display: flex;\\n flex-wrap: wrap;\\n align-items: center;\\n justify-content: space-between;\\n }\\n\\n .container,\\n .container-fluid {\\n @extend %container-flex-properties;\\n }\\n\\n @each $breakpoint, $container-max-width in $container-max-widths {\\n > .container#{breakpoint-infix($breakpoint, $container-max-widths)} {\\n @extend %container-flex-properties;\\n }\\n }\\n}\\n\\n\\n// Navbar brand\\n//\\n// Used for brand, project, or site names.\\n\\n.navbar-brand {\\n display: inline-block;\\n padding-top: $navbar-brand-padding-y;\\n padding-bottom: $navbar-brand-padding-y;\\n margin-right: $navbar-padding-x;\\n @include font-size($navbar-brand-font-size);\\n line-height: inherit;\\n white-space: nowrap;\\n\\n @include hover-focus() {\\n text-decoration: none;\\n }\\n}\\n\\n\\n// Navbar nav\\n//\\n// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).\\n\\n.navbar-nav {\\n display: flex;\\n flex-direction: column; // cannot use `inherit` to get the `.navbar`s value\\n padding-left: 0;\\n margin-bottom: 0;\\n list-style: none;\\n\\n .nav-link {\\n padding-right: 0;\\n padding-left: 0;\\n }\\n\\n .dropdown-menu {\\n position: static;\\n float: none;\\n }\\n}\\n\\n\\n// Navbar text\\n//\\n//\\n\\n.navbar-text {\\n display: inline-block;\\n padding-top: $nav-link-padding-y;\\n padding-bottom: $nav-link-padding-y;\\n}\\n\\n\\n// Responsive navbar\\n//\\n// Custom styles for responsive collapsing and toggling of navbar contents.\\n// Powered by the collapse Bootstrap JavaScript plugin.\\n\\n// When collapsed, prevent the toggleable navbar contents from appearing in\\n// the default flexbox row orientation. Requires the use of `flex-wrap: wrap`\\n// on the `.navbar` parent.\\n.navbar-collapse {\\n flex-basis: 100%;\\n flex-grow: 1;\\n // For always expanded or extra full navbars, ensure content aligns itself\\n // properly vertically. Can be easily overridden with flex utilities.\\n align-items: center;\\n}\\n\\n// Button for toggling the navbar when in its collapsed state\\n.navbar-toggler {\\n padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;\\n @include font-size($navbar-toggler-font-size);\\n line-height: 1;\\n background-color: transparent; // remove default button style\\n border: $border-width solid transparent; // remove default button style\\n @include border-radius($navbar-toggler-border-radius);\\n\\n @include hover-focus() {\\n text-decoration: none;\\n }\\n}\\n\\n// Keep as a separate element so folks can easily override it with another icon\\n// or image file as needed.\\n.navbar-toggler-icon {\\n display: inline-block;\\n width: 1.5em;\\n height: 1.5em;\\n vertical-align: middle;\\n content: \\\"\\\";\\n background: 50% / 100% 100% no-repeat;\\n}\\n\\n.navbar-nav-scroll {\\n max-height: $navbar-nav-scroll-max-height;\\n overflow-y: auto;\\n}\\n\\n// Generate series of `.navbar-expand-*` responsive classes for configuring\\n// where your navbar collapses.\\n.navbar-expand {\\n @each $breakpoint in map-keys($grid-breakpoints) {\\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\\n $infix: breakpoint-infix($next, $grid-breakpoints);\\n\\n &#{$infix} {\\n @include media-breakpoint-down($breakpoint) {\\n %container-navbar-expand-#{$breakpoint} {\\n padding-right: 0;\\n padding-left: 0;\\n }\\n\\n > .container,\\n > .container-fluid {\\n @extend %container-navbar-expand-#{$breakpoint};\\n }\\n\\n @each $size, $container-max-width in $container-max-widths {\\n > .container#{breakpoint-infix($size, $container-max-widths)} {\\n @extend %container-navbar-expand-#{$breakpoint};\\n }\\n }\\n }\\n\\n @include media-breakpoint-up($next) {\\n flex-flow: row nowrap;\\n justify-content: flex-start;\\n\\n .navbar-nav {\\n flex-direction: row;\\n\\n .dropdown-menu {\\n position: absolute;\\n }\\n\\n .nav-link {\\n padding-right: $navbar-nav-link-padding-x;\\n padding-left: $navbar-nav-link-padding-x;\\n }\\n }\\n\\n // For nesting containers, have to redeclare for alignment purposes\\n %container-nesting-#{$breakpoint} {\\n flex-wrap: nowrap;\\n }\\n\\n > .container,\\n > .container-fluid {\\n @extend %container-nesting-#{$breakpoint};\\n }\\n\\n @each $size, $container-max-width in $container-max-widths {\\n > .container#{breakpoint-infix($size, $container-max-widths)} {\\n @extend %container-nesting-#{$breakpoint};\\n }\\n }\\n\\n .navbar-nav-scroll {\\n overflow: visible;\\n }\\n\\n .navbar-collapse {\\n display: flex !important; // stylelint-disable-line declaration-no-important\\n\\n // Changes flex-bases to auto because of an IE10 bug\\n flex-basis: auto;\\n }\\n\\n .navbar-toggler {\\n display: none;\\n }\\n }\\n }\\n }\\n}\\n\\n\\n// Navbar themes\\n//\\n// Styles for switching between navbars with light or dark background.\\n\\n// Dark links against a light background\\n.navbar-light {\\n .navbar-brand {\\n color: $navbar-light-brand-color;\\n\\n @include hover-focus() {\\n color: $navbar-light-brand-hover-color;\\n }\\n }\\n\\n .navbar-nav {\\n .nav-link {\\n color: $navbar-light-color;\\n\\n @include hover-focus() {\\n color: $navbar-light-hover-color;\\n }\\n\\n &.disabled {\\n color: $navbar-light-disabled-color;\\n }\\n }\\n\\n .show > .nav-link,\\n .active > .nav-link,\\n .nav-link.show,\\n .nav-link.active {\\n color: $navbar-light-active-color;\\n }\\n }\\n\\n .navbar-toggler {\\n color: $navbar-light-color;\\n border-color: $navbar-light-toggler-border-color;\\n }\\n\\n .navbar-toggler-icon {\\n background-image: escape-svg($navbar-light-toggler-icon-bg);\\n }\\n\\n .navbar-text {\\n color: $navbar-light-color;\\n a {\\n color: $navbar-light-active-color;\\n\\n @include hover-focus() {\\n color: $navbar-light-active-color;\\n }\\n }\\n }\\n}\\n\\n// White links against a dark background\\n.navbar-dark {\\n .navbar-brand {\\n color: $navbar-dark-brand-color;\\n\\n @include hover-focus() {\\n color: $navbar-dark-brand-hover-color;\\n }\\n }\\n\\n .navbar-nav {\\n .nav-link {\\n color: $navbar-dark-color;\\n\\n @include hover-focus() {\\n color: $navbar-dark-hover-color;\\n }\\n\\n &.disabled {\\n color: $navbar-dark-disabled-color;\\n }\\n }\\n\\n .show > .nav-link,\\n .active > .nav-link,\\n .nav-link.show,\\n .nav-link.active {\\n color: $navbar-dark-active-color;\\n }\\n }\\n\\n .navbar-toggler {\\n color: $navbar-dark-color;\\n border-color: $navbar-dark-toggler-border-color;\\n }\\n\\n .navbar-toggler-icon {\\n background-image: escape-svg($navbar-dark-toggler-icon-bg);\\n }\\n\\n .navbar-text {\\n color: $navbar-dark-color;\\n a {\\n color: $navbar-dark-active-color;\\n\\n @include hover-focus() {\\n color: $navbar-dark-active-color;\\n }\\n }\\n }\\n}\\n\",\"//\\n// Base styles\\n//\\n\\n.card {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106\\n height: $card-height;\\n word-wrap: break-word;\\n background-color: $card-bg;\\n background-clip: border-box;\\n border: $card-border-width solid $card-border-color;\\n @include border-radius($card-border-radius);\\n\\n > hr {\\n margin-right: 0;\\n margin-left: 0;\\n }\\n\\n > .list-group {\\n border-top: inherit;\\n border-bottom: inherit;\\n\\n &:first-child {\\n border-top-width: 0;\\n @include border-top-radius($card-inner-border-radius);\\n }\\n\\n &:last-child {\\n border-bottom-width: 0;\\n @include border-bottom-radius($card-inner-border-radius);\\n }\\n }\\n\\n // Due to specificity of the above selector (`.card > .list-group`), we must\\n // use a child selector here to prevent double borders.\\n > .card-header + .list-group,\\n > .list-group + .card-footer {\\n border-top: 0;\\n }\\n}\\n\\n.card-body {\\n // Enable `flex-grow: 1` for decks and groups so that card blocks take up\\n // as much space as possible, ensuring footers are aligned to the bottom.\\n flex: 1 1 auto;\\n // Workaround for the image size bug in IE\\n // See: https://github.com/twbs/bootstrap/pull/28855\\n min-height: 1px;\\n padding: $card-spacer-x;\\n color: $card-color;\\n}\\n\\n.card-title {\\n margin-bottom: $card-spacer-y;\\n}\\n\\n.card-subtitle {\\n margin-top: -$card-spacer-y * .5;\\n margin-bottom: 0;\\n}\\n\\n.card-text:last-child {\\n margin-bottom: 0;\\n}\\n\\n.card-link {\\n @include hover() {\\n text-decoration: none;\\n }\\n\\n + .card-link {\\n margin-left: $card-spacer-x;\\n }\\n}\\n\\n//\\n// Optional textual caps\\n//\\n\\n.card-header {\\n padding: $card-spacer-y $card-spacer-x;\\n margin-bottom: 0; // Removes the default margin-bottom of <hN>\\n color: $card-cap-color;\\n background-color: $card-cap-bg;\\n border-bottom: $card-border-width solid $card-border-color;\\n\\n &:first-child {\\n @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);\\n }\\n}\\n\\n.card-footer {\\n padding: $card-spacer-y $card-spacer-x;\\n color: $card-cap-color;\\n background-color: $card-cap-bg;\\n border-top: $card-border-width solid $card-border-color;\\n\\n &:last-child {\\n @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);\\n }\\n}\\n\\n\\n//\\n// Header navs\\n//\\n\\n.card-header-tabs {\\n margin-right: -$card-spacer-x * .5;\\n margin-bottom: -$card-spacer-y;\\n margin-left: -$card-spacer-x * .5;\\n border-bottom: 0;\\n}\\n\\n.card-header-pills {\\n margin-right: -$card-spacer-x * .5;\\n margin-left: -$card-spacer-x * .5;\\n}\\n\\n// Card image\\n.card-img-overlay {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n padding: $card-img-overlay-padding;\\n @include border-radius($card-inner-border-radius);\\n}\\n\\n.card-img,\\n.card-img-top,\\n.card-img-bottom {\\n flex-shrink: 0; // For IE: https://github.com/twbs/bootstrap/issues/29396\\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\\n}\\n\\n.card-img,\\n.card-img-top {\\n @include border-top-radius($card-inner-border-radius);\\n}\\n\\n.card-img,\\n.card-img-bottom {\\n @include border-bottom-radius($card-inner-border-radius);\\n}\\n\\n\\n// Card deck\\n\\n.card-deck {\\n .card {\\n margin-bottom: $card-deck-margin;\\n }\\n\\n @include media-breakpoint-up(sm) {\\n display: flex;\\n flex-flow: row wrap;\\n margin-right: -$card-deck-margin;\\n margin-left: -$card-deck-margin;\\n\\n .card {\\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\\n flex: 1 0 0%;\\n margin-right: $card-deck-margin;\\n margin-bottom: 0; // Override the default\\n margin-left: $card-deck-margin;\\n }\\n }\\n}\\n\\n\\n//\\n// Card groups\\n//\\n\\n.card-group {\\n // The child selector allows nested `.card` within `.card-group`\\n // to display properly.\\n > .card {\\n margin-bottom: $card-group-margin;\\n }\\n\\n @include media-breakpoint-up(sm) {\\n display: flex;\\n flex-flow: row wrap;\\n // The child selector allows nested `.card` within `.card-group`\\n // to display properly.\\n > .card {\\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\\n flex: 1 0 0%;\\n margin-bottom: 0;\\n\\n + .card {\\n margin-left: 0;\\n border-left: 0;\\n }\\n\\n // Handle rounded corners\\n @if $enable-rounded {\\n &:not(:last-child) {\\n @include border-right-radius(0);\\n\\n .card-img-top,\\n .card-header {\\n // stylelint-disable-next-line property-disallowed-list\\n border-top-right-radius: 0;\\n }\\n .card-img-bottom,\\n .card-footer {\\n // stylelint-disable-next-line property-disallowed-list\\n border-bottom-right-radius: 0;\\n }\\n }\\n\\n &:not(:first-child) {\\n @include border-left-radius(0);\\n\\n .card-img-top,\\n .card-header {\\n // stylelint-disable-next-line property-disallowed-list\\n border-top-left-radius: 0;\\n }\\n .card-img-bottom,\\n .card-footer {\\n // stylelint-disable-next-line property-disallowed-list\\n border-bottom-left-radius: 0;\\n }\\n }\\n }\\n }\\n }\\n}\\n\\n\\n//\\n// Columns\\n//\\n\\n.card-columns {\\n .card {\\n margin-bottom: $card-columns-margin;\\n }\\n\\n @include media-breakpoint-up(sm) {\\n column-count: $card-columns-count;\\n column-gap: $card-columns-gap;\\n orphans: 1;\\n widows: 1;\\n\\n .card {\\n display: inline-block; // Don't let them vertically span multiple columns\\n width: 100%; // Don't let their width change\\n }\\n }\\n}\\n\\n\\n//\\n// Accordion\\n//\\n\\n.accordion {\\n overflow-anchor: none;\\n\\n > .card {\\n overflow: hidden;\\n\\n &:not(:last-of-type) {\\n border-bottom: 0;\\n @include border-bottom-radius(0);\\n }\\n\\n &:not(:first-of-type) {\\n @include border-top-radius(0);\\n }\\n\\n > .card-header {\\n @include border-radius(0);\\n margin-bottom: -$card-border-width;\\n }\\n }\\n}\\n\",\".breadcrumb {\\n display: flex;\\n flex-wrap: wrap;\\n padding: $breadcrumb-padding-y $breadcrumb-padding-x;\\n margin-bottom: $breadcrumb-margin-bottom;\\n @include font-size($breadcrumb-font-size);\\n list-style: none;\\n background-color: $breadcrumb-bg;\\n @include border-radius($breadcrumb-border-radius);\\n}\\n\\n.breadcrumb-item {\\n // The separator between breadcrumbs (by default, a forward-slash: \\\"/\\\")\\n + .breadcrumb-item {\\n padding-left: $breadcrumb-item-padding;\\n\\n &::before {\\n float: left; // Suppress inline spacings and underlining of the separator\\n padding-right: $breadcrumb-item-padding;\\n color: $breadcrumb-divider-color;\\n content: escape-svg($breadcrumb-divider);\\n }\\n }\\n\\n // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built\\n // without `<ul>`s. The `::before` pseudo-element generates an element\\n // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.\\n //\\n // To trick IE into suppressing the underline, we give the pseudo-element an\\n // underline and then immediately remove it.\\n + .breadcrumb-item:hover::before {\\n text-decoration: underline;\\n }\\n // stylelint-disable-next-line no-duplicate-selectors\\n + .breadcrumb-item:hover::before {\\n text-decoration: none;\\n }\\n\\n &.active {\\n color: $breadcrumb-active-color;\\n }\\n}\\n\",\".pagination {\\n display: flex;\\n @include list-unstyled();\\n @include border-radius();\\n}\\n\\n.page-link {\\n position: relative;\\n display: block;\\n padding: $pagination-padding-y $pagination-padding-x;\\n margin-left: -$pagination-border-width;\\n line-height: $pagination-line-height;\\n color: $pagination-color;\\n text-decoration: if($link-decoration == none, null, none);\\n background-color: $pagination-bg;\\n border: $pagination-border-width solid $pagination-border-color;\\n\\n &:hover {\\n z-index: 2;\\n color: $pagination-hover-color;\\n text-decoration: none;\\n background-color: $pagination-hover-bg;\\n border-color: $pagination-hover-border-color;\\n }\\n\\n &:focus {\\n z-index: 3;\\n outline: $pagination-focus-outline;\\n box-shadow: $pagination-focus-box-shadow;\\n }\\n}\\n\\n.page-item {\\n &:first-child {\\n .page-link {\\n margin-left: 0;\\n @include border-left-radius($border-radius);\\n }\\n }\\n &:last-child {\\n .page-link {\\n @include border-right-radius($border-radius);\\n }\\n }\\n\\n &.active .page-link {\\n z-index: 3;\\n color: $pagination-active-color;\\n background-color: $pagination-active-bg;\\n border-color: $pagination-active-border-color;\\n }\\n\\n &.disabled .page-link {\\n color: $pagination-disabled-color;\\n pointer-events: none;\\n // Opinionated: remove the \\\"hand\\\" cursor set previously for .page-link\\n cursor: auto;\\n background-color: $pagination-disabled-bg;\\n border-color: $pagination-disabled-border-color;\\n }\\n}\\n\\n\\n//\\n// Sizing\\n//\\n\\n.pagination-lg {\\n @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $pagination-border-radius-lg);\\n}\\n\\n.pagination-sm {\\n @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $pagination-border-radius-sm);\\n}\\n\",\"// Pagination\\n\\n@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\\n .page-link {\\n padding: $padding-y $padding-x;\\n @include font-size($font-size);\\n line-height: $line-height;\\n }\\n\\n .page-item {\\n &:first-child {\\n .page-link {\\n @include border-left-radius($border-radius);\\n }\\n }\\n &:last-child {\\n .page-link {\\n @include border-right-radius($border-radius);\\n }\\n }\\n }\\n}\\n\",\"// Base class\\n//\\n// Requires one of the contextual, color modifier classes for `color` and\\n// `background-color`.\\n\\n.badge {\\n display: inline-block;\\n padding: $badge-padding-y $badge-padding-x;\\n @include font-size($badge-font-size);\\n font-weight: $badge-font-weight;\\n line-height: 1;\\n text-align: center;\\n white-space: nowrap;\\n vertical-align: baseline;\\n @include border-radius($badge-border-radius);\\n @include transition($badge-transition);\\n\\n @at-root a#{&} {\\n @include hover-focus() {\\n text-decoration: none;\\n }\\n }\\n\\n // Empty badges collapse automatically\\n &:empty {\\n display: none;\\n }\\n}\\n\\n// Quick fix for badges in buttons\\n.btn .badge {\\n position: relative;\\n top: -1px;\\n}\\n\\n// Pill badges\\n//\\n// Make them extra rounded with a modifier to replace v3's badges.\\n\\n.badge-pill {\\n padding-right: $badge-pill-padding-x;\\n padding-left: $badge-pill-padding-x;\\n @include border-radius($badge-pill-border-radius);\\n}\\n\\n// Colors\\n//\\n// Contextual variations (linked badges get darker on :hover).\\n\\n@each $color, $value in $theme-colors {\\n .badge-#{$color} {\\n @include badge-variant($value);\\n }\\n}\\n\",\"@mixin badge-variant($bg) {\\n color: color-yiq($bg);\\n background-color: $bg;\\n\\n @at-root a#{&} {\\n @include hover-focus() {\\n color: color-yiq($bg);\\n background-color: darken($bg, 10%);\\n }\\n\\n &:focus,\\n &.focus {\\n outline: 0;\\n box-shadow: 0 0 0 $badge-focus-width rgba($bg, .5);\\n }\\n }\\n}\\n\",\".jumbotron {\\n padding: $jumbotron-padding ($jumbotron-padding * .5);\\n margin-bottom: $jumbotron-padding;\\n color: $jumbotron-color;\\n background-color: $jumbotron-bg;\\n @include border-radius($border-radius-lg);\\n\\n @include media-breakpoint-up(sm) {\\n padding: ($jumbotron-padding * 2) $jumbotron-padding;\\n }\\n}\\n\\n.jumbotron-fluid {\\n padding-right: 0;\\n padding-left: 0;\\n @include border-radius(0);\\n}\\n\",\"//\\n// Base styles\\n//\\n\\n.alert {\\n position: relative;\\n padding: $alert-padding-y $alert-padding-x;\\n margin-bottom: $alert-margin-bottom;\\n border: $alert-border-width solid transparent;\\n @include border-radius($alert-border-radius);\\n}\\n\\n// Headings for larger alerts\\n.alert-heading {\\n // Specified to prevent conflicts of changing $headings-color\\n color: inherit;\\n}\\n\\n// Provide class for links that match alerts\\n.alert-link {\\n font-weight: $alert-link-font-weight;\\n}\\n\\n\\n// Dismissible alerts\\n//\\n// Expand the right padding and account for the close button's positioning.\\n\\n.alert-dismissible {\\n padding-right: $close-font-size + $alert-padding-x * 2;\\n\\n // Adjust close link position\\n .close {\\n position: absolute;\\n top: 0;\\n right: 0;\\n z-index: 2;\\n padding: $alert-padding-y $alert-padding-x;\\n color: inherit;\\n }\\n}\\n\\n\\n// Alternate styles\\n//\\n// Generate contextual modifier classes for colorizing the alert.\\n\\n@each $color, $value in $theme-colors {\\n .alert-#{$color} {\\n @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));\\n }\\n}\\n\",\"@mixin alert-variant($background, $border, $color) {\\n color: $color;\\n @include gradient-bg($background);\\n border-color: $border;\\n\\n hr {\\n border-top-color: darken($border, 5%);\\n }\\n\\n .alert-link {\\n color: darken($color, 10%);\\n }\\n}\\n\",\"// Disable animation if transitions are disabled\\n@if $enable-transitions {\\n @keyframes progress-bar-stripes {\\n from { background-position: $progress-height 0; }\\n to { background-position: 0 0; }\\n }\\n}\\n\\n.progress {\\n display: flex;\\n height: $progress-height;\\n overflow: hidden; // force rounded corners by cropping it\\n line-height: 0;\\n @include font-size($progress-font-size);\\n background-color: $progress-bg;\\n @include border-radius($progress-border-radius);\\n @include box-shadow($progress-box-shadow);\\n}\\n\\n.progress-bar {\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n overflow: hidden;\\n color: $progress-bar-color;\\n text-align: center;\\n white-space: nowrap;\\n background-color: $progress-bar-bg;\\n @include transition($progress-bar-transition);\\n}\\n\\n.progress-bar-striped {\\n @include gradient-striped();\\n background-size: $progress-height $progress-height;\\n}\\n\\n@if $enable-transitions {\\n .progress-bar-animated {\\n animation: $progress-bar-animation-timing progress-bar-stripes;\\n\\n @if $enable-prefers-reduced-motion-media-query {\\n @media (prefers-reduced-motion: reduce) {\\n animation: none;\\n }\\n }\\n }\\n}\\n\",\".media {\\n display: flex;\\n align-items: flex-start;\\n}\\n\\n.media-body {\\n flex: 1;\\n}\\n\",\"// Base class\\n//\\n// Easily usable on <ul>, <ol>, or <div>.\\n\\n.list-group {\\n display: flex;\\n flex-direction: column;\\n\\n // No need to set list-style: none; since .list-group-item is block level\\n padding-left: 0; // reset padding because ul and ol\\n margin-bottom: 0;\\n @include border-radius($list-group-border-radius);\\n}\\n\\n\\n// Interactive list items\\n//\\n// Use anchor or button elements instead of `li`s or `div`s to create interactive\\n// list items. Includes an extra `.active` modifier class for selected items.\\n\\n.list-group-item-action {\\n width: 100%; // For `<button>`s (anchors become 100% by default though)\\n color: $list-group-action-color;\\n text-align: inherit; // For `<button>`s (anchors inherit)\\n\\n // Hover state\\n @include hover-focus() {\\n z-index: 1; // Place hover/focus items above their siblings for proper border styling\\n color: $list-group-action-hover-color;\\n text-decoration: none;\\n background-color: $list-group-hover-bg;\\n }\\n\\n &:active {\\n color: $list-group-action-active-color;\\n background-color: $list-group-action-active-bg;\\n }\\n}\\n\\n\\n// Individual list items\\n//\\n// Use on `li`s or `div`s within the `.list-group` parent.\\n\\n.list-group-item {\\n position: relative;\\n display: block;\\n padding: $list-group-item-padding-y $list-group-item-padding-x;\\n color: $list-group-color;\\n text-decoration: if($link-decoration == none, null, none);\\n background-color: $list-group-bg;\\n border: $list-group-border-width solid $list-group-border-color;\\n\\n &:first-child {\\n @include border-top-radius(inherit);\\n }\\n\\n &:last-child {\\n @include border-bottom-radius(inherit);\\n }\\n\\n &.disabled,\\n &:disabled {\\n color: $list-group-disabled-color;\\n pointer-events: none;\\n background-color: $list-group-disabled-bg;\\n }\\n\\n // Include both here for `<a>`s and `<button>`s\\n &.active {\\n z-index: 2; // Place active items above their siblings for proper border styling\\n color: $list-group-active-color;\\n background-color: $list-group-active-bg;\\n border-color: $list-group-active-border-color;\\n }\\n\\n & + & {\\n border-top-width: 0;\\n\\n &.active {\\n margin-top: -$list-group-border-width;\\n border-top-width: $list-group-border-width;\\n }\\n }\\n}\\n\\n\\n// Horizontal\\n//\\n// Change the layout of list group items from vertical (default) to horizontal.\\n\\n@each $breakpoint in map-keys($grid-breakpoints) {\\n @include media-breakpoint-up($breakpoint) {\\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\\n\\n .list-group-horizontal#{$infix} {\\n flex-direction: row;\\n\\n > .list-group-item {\\n &:first-child {\\n @include border-bottom-left-radius($list-group-border-radius);\\n @include border-top-right-radius(0);\\n }\\n\\n &:last-child {\\n @include border-top-right-radius($list-group-border-radius);\\n @include border-bottom-left-radius(0);\\n }\\n\\n &.active {\\n margin-top: 0;\\n }\\n\\n + .list-group-item {\\n border-top-width: $list-group-border-width;\\n border-left-width: 0;\\n\\n &.active {\\n margin-left: -$list-group-border-width;\\n border-left-width: $list-group-border-width;\\n }\\n }\\n }\\n }\\n }\\n}\\n\\n\\n// Flush list items\\n//\\n// Remove borders and border-radius to keep list group items edge-to-edge. Most\\n// useful within other components (e.g., cards).\\n\\n.list-group-flush {\\n @include border-radius(0);\\n\\n > .list-group-item {\\n border-width: 0 0 $list-group-border-width;\\n\\n &:last-child {\\n border-bottom-width: 0;\\n }\\n }\\n}\\n\\n\\n// Contextual variants\\n//\\n// Add modifier classes to change text and background color on individual items.\\n// Organizationally, this must come after the `:hover` states.\\n\\n@each $color, $value in $theme-colors {\\n @include list-group-item-variant($color, theme-color-level($color, -9), theme-color-level($color, 6));\\n}\\n\",\"// List Groups\\n\\n@mixin list-group-item-variant($state, $background, $color) {\\n .list-group-item-#{$state} {\\n color: $color;\\n background-color: $background;\\n\\n &.list-group-item-action {\\n @include hover-focus() {\\n color: $color;\\n background-color: darken($background, 5%);\\n }\\n\\n &.active {\\n color: $white;\\n background-color: $color;\\n border-color: $color;\\n }\\n }\\n }\\n}\\n\",\".close {\\n float: right;\\n @include font-size($close-font-size);\\n font-weight: $close-font-weight;\\n line-height: 1;\\n color: $close-color;\\n text-shadow: $close-text-shadow;\\n opacity: .5;\\n\\n // Override <a>'s hover style\\n @include hover() {\\n color: $close-color;\\n text-decoration: none;\\n }\\n\\n &:not(:disabled):not(.disabled) {\\n @include hover-focus() {\\n opacity: .75;\\n }\\n }\\n}\\n\\n// Additional properties for button version\\n// iOS requires the button element instead of an anchor tag.\\n// If you want the anchor version, it requires `href=\\\"#\\\"`.\\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\\n\\n// stylelint-disable-next-line selector-no-qualifying-type\\nbutton.close {\\n padding: 0;\\n background-color: transparent;\\n border: 0;\\n}\\n\\n// Future-proof disabling of clicks on `<a>` elements\\n\\n// stylelint-disable-next-line selector-no-qualifying-type\\na.close.disabled {\\n pointer-events: none;\\n}\\n\",\".toast {\\n // Prevents from shrinking in IE11, when in a flex container\\n // See https://github.com/twbs/bootstrap/issues/28341\\n flex-basis: $toast-max-width;\\n max-width: $toast-max-width;\\n @include font-size($toast-font-size);\\n color: $toast-color;\\n background-color: $toast-background-color;\\n background-clip: padding-box;\\n border: $toast-border-width solid $toast-border-color;\\n box-shadow: $toast-box-shadow;\\n opacity: 0;\\n @include border-radius($toast-border-radius);\\n\\n &:not(:last-child) {\\n margin-bottom: $toast-padding-x;\\n }\\n\\n &.showing {\\n opacity: 1;\\n }\\n\\n &.show {\\n display: block;\\n opacity: 1;\\n }\\n\\n &.hide {\\n display: none;\\n }\\n}\\n\\n.toast-header {\\n display: flex;\\n align-items: center;\\n padding: $toast-padding-y $toast-padding-x;\\n color: $toast-header-color;\\n background-color: $toast-header-background-color;\\n background-clip: padding-box;\\n border-bottom: $toast-border-width solid $toast-header-border-color;\\n @include border-top-radius(subtract($toast-border-radius, $toast-border-width));\\n}\\n\\n.toast-body {\\n padding: $toast-padding-x; // apply to both vertical and horizontal\\n}\\n\",\"// .modal-open - body class for killing the scroll\\n// .modal - container to scroll within\\n// .modal-dialog - positioning shell for the actual modal\\n// .modal-content - actual modal w/ bg and corners and stuff\\n\\n\\n.modal-open {\\n // Kill the scroll on the body\\n overflow: hidden;\\n\\n .modal {\\n overflow-x: hidden;\\n overflow-y: auto;\\n }\\n}\\n\\n// Container that the modal scrolls within\\n.modal {\\n position: fixed;\\n top: 0;\\n left: 0;\\n z-index: $zindex-modal;\\n display: none;\\n width: 100%;\\n height: 100%;\\n overflow: hidden;\\n // Prevent Chrome on Windows from adding a focus outline. For details, see\\n // https://github.com/twbs/bootstrap/pull/10951.\\n outline: 0;\\n // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a\\n // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342\\n // See also https://github.com/twbs/bootstrap/issues/17695\\n}\\n\\n// Shell div to position the modal with bottom padding\\n.modal-dialog {\\n position: relative;\\n width: auto;\\n margin: $modal-dialog-margin;\\n // allow clicks to pass through for custom click handling to close modal\\n pointer-events: none;\\n\\n // When fading in the modal, animate it to slide down\\n .modal.fade & {\\n @include transition($modal-transition);\\n transform: $modal-fade-transform;\\n }\\n .modal.show & {\\n transform: $modal-show-transform;\\n }\\n\\n // When trying to close, animate focus to scale\\n .modal.modal-static & {\\n transform: $modal-scale-transform;\\n }\\n}\\n\\n.modal-dialog-scrollable {\\n display: flex; // IE10/11\\n max-height: subtract(100%, $modal-dialog-margin * 2);\\n\\n .modal-content {\\n max-height: subtract(100vh, $modal-dialog-margin * 2); // IE10/11\\n overflow: hidden;\\n }\\n\\n .modal-header,\\n .modal-footer {\\n flex-shrink: 0;\\n }\\n\\n .modal-body {\\n overflow-y: auto;\\n }\\n}\\n\\n.modal-dialog-centered {\\n display: flex;\\n align-items: center;\\n min-height: subtract(100%, $modal-dialog-margin * 2);\\n\\n // Ensure `modal-dialog-centered` extends the full height of the view (IE10/11)\\n &::before {\\n display: block; // IE10\\n height: subtract(100vh, $modal-dialog-margin * 2);\\n height: min-content; // Reset height to 0 except on IE\\n content: \\\"\\\";\\n }\\n\\n // Ensure `.modal-body` shows scrollbar (IE10/11)\\n &.modal-dialog-scrollable {\\n flex-direction: column;\\n justify-content: center;\\n height: 100%;\\n\\n .modal-content {\\n max-height: none;\\n }\\n\\n &::before {\\n content: none;\\n }\\n }\\n}\\n\\n// Actual modal\\n.modal-content {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`\\n // counteract the pointer-events: none; in the .modal-dialog\\n color: $modal-content-color;\\n pointer-events: auto;\\n background-color: $modal-content-bg;\\n background-clip: padding-box;\\n border: $modal-content-border-width solid $modal-content-border-color;\\n @include border-radius($modal-content-border-radius);\\n @include box-shadow($modal-content-box-shadow-xs);\\n // Remove focus outline from opened modal\\n outline: 0;\\n}\\n\\n// Modal background\\n.modal-backdrop {\\n position: fixed;\\n top: 0;\\n left: 0;\\n z-index: $zindex-modal-backdrop;\\n width: 100vw;\\n height: 100vh;\\n background-color: $modal-backdrop-bg;\\n\\n // Fade for backdrop\\n &.fade { opacity: 0; }\\n &.show { opacity: $modal-backdrop-opacity; }\\n}\\n\\n// Modal header\\n// Top section of the modal w/ title and dismiss\\n.modal-header {\\n display: flex;\\n align-items: flex-start; // so the close btn always stays on the upper right corner\\n justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends\\n padding: $modal-header-padding;\\n border-bottom: $modal-header-border-width solid $modal-header-border-color;\\n @include border-top-radius($modal-content-inner-border-radius);\\n\\n .close {\\n padding: $modal-header-padding;\\n // auto on the left force icon to the right even when there is no .modal-title\\n margin: (-$modal-header-padding-y) (-$modal-header-padding-x) (-$modal-header-padding-y) auto;\\n }\\n}\\n\\n// Title text within header\\n.modal-title {\\n margin-bottom: 0;\\n line-height: $modal-title-line-height;\\n}\\n\\n// Modal body\\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\\n.modal-body {\\n position: relative;\\n // Enable `flex-grow: 1` so that the body take up as much space as possible\\n // when there should be a fixed height on `.modal-dialog`.\\n flex: 1 1 auto;\\n padding: $modal-inner-padding;\\n}\\n\\n// Footer (for actions)\\n.modal-footer {\\n display: flex;\\n flex-wrap: wrap;\\n align-items: center; // vertically center\\n justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items\\n padding: $modal-inner-padding - $modal-footer-margin-between * .5;\\n border-top: $modal-footer-border-width solid $modal-footer-border-color;\\n @include border-bottom-radius($modal-content-inner-border-radius);\\n\\n // Place margin between footer elements\\n // This solution is far from ideal because of the universal selector usage,\\n // but is needed to fix https://github.com/twbs/bootstrap/issues/24800\\n > * {\\n margin: $modal-footer-margin-between * .5;\\n }\\n}\\n\\n// Measure scrollbar width for padding body during modal show/hide\\n.modal-scrollbar-measure {\\n position: absolute;\\n top: -9999px;\\n width: 50px;\\n height: 50px;\\n overflow: scroll;\\n}\\n\\n// Scale up the modal\\n@include media-breakpoint-up(sm) {\\n // Automatically set modal's width for larger viewports\\n .modal-dialog {\\n max-width: $modal-md;\\n margin: $modal-dialog-margin-y-sm-up auto;\\n }\\n\\n .modal-dialog-scrollable {\\n max-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);\\n\\n .modal-content {\\n max-height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);\\n }\\n }\\n\\n .modal-dialog-centered {\\n min-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);\\n\\n &::before {\\n height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);\\n height: min-content;\\n }\\n }\\n\\n .modal-content {\\n @include box-shadow($modal-content-box-shadow-sm-up);\\n }\\n\\n .modal-sm { max-width: $modal-sm; }\\n}\\n\\n@include media-breakpoint-up(lg) {\\n .modal-lg,\\n .modal-xl {\\n max-width: $modal-lg;\\n }\\n}\\n\\n@include media-breakpoint-up(xl) {\\n .modal-xl { max-width: $modal-xl; }\\n}\\n\",\"// Base class\\n.tooltip {\\n position: absolute;\\n z-index: $zindex-tooltip;\\n display: block;\\n margin: $tooltip-margin;\\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\\n // So reset our font and text properties to avoid inheriting weird values.\\n @include reset-text();\\n @include font-size($tooltip-font-size);\\n // Allow breaking very long words so they don't overflow the tooltip's bounds\\n word-wrap: break-word;\\n opacity: 0;\\n\\n &.show { opacity: $tooltip-opacity; }\\n\\n .arrow {\\n position: absolute;\\n display: block;\\n width: $tooltip-arrow-width;\\n height: $tooltip-arrow-height;\\n\\n &::before {\\n position: absolute;\\n content: \\\"\\\";\\n border-color: transparent;\\n border-style: solid;\\n }\\n }\\n}\\n\\n.bs-tooltip-top {\\n padding: $tooltip-arrow-height 0;\\n\\n .arrow {\\n bottom: 0;\\n\\n &::before {\\n top: 0;\\n border-width: $tooltip-arrow-height ($tooltip-arrow-width * .5) 0;\\n border-top-color: $tooltip-arrow-color;\\n }\\n }\\n}\\n\\n.bs-tooltip-right {\\n padding: 0 $tooltip-arrow-height;\\n\\n .arrow {\\n left: 0;\\n width: $tooltip-arrow-height;\\n height: $tooltip-arrow-width;\\n\\n &::before {\\n right: 0;\\n border-width: ($tooltip-arrow-width * .5) $tooltip-arrow-height ($tooltip-arrow-width * .5) 0;\\n border-right-color: $tooltip-arrow-color;\\n }\\n }\\n}\\n\\n.bs-tooltip-bottom {\\n padding: $tooltip-arrow-height 0;\\n\\n .arrow {\\n top: 0;\\n\\n &::before {\\n bottom: 0;\\n border-width: 0 ($tooltip-arrow-width * .5) $tooltip-arrow-height;\\n border-bottom-color: $tooltip-arrow-color;\\n }\\n }\\n}\\n\\n.bs-tooltip-left {\\n padding: 0 $tooltip-arrow-height;\\n\\n .arrow {\\n right: 0;\\n width: $tooltip-arrow-height;\\n height: $tooltip-arrow-width;\\n\\n &::before {\\n left: 0;\\n border-width: ($tooltip-arrow-width * .5) 0 ($tooltip-arrow-width * .5) $tooltip-arrow-height;\\n border-left-color: $tooltip-arrow-color;\\n }\\n }\\n}\\n\\n.bs-tooltip-auto {\\n &[x-placement^=\\\"top\\\"] {\\n @extend .bs-tooltip-top;\\n }\\n &[x-placement^=\\\"right\\\"] {\\n @extend .bs-tooltip-right;\\n }\\n &[x-placement^=\\\"bottom\\\"] {\\n @extend .bs-tooltip-bottom;\\n }\\n &[x-placement^=\\\"left\\\"] {\\n @extend .bs-tooltip-left;\\n }\\n}\\n\\n// Wrapper for the tooltip content\\n.tooltip-inner {\\n max-width: $tooltip-max-width;\\n padding: $tooltip-padding-y $tooltip-padding-x;\\n color: $tooltip-color;\\n text-align: center;\\n background-color: $tooltip-bg;\\n @include border-radius($tooltip-border-radius);\\n}\\n\",\"@mixin reset-text() {\\n font-family: $font-family-base;\\n // We deliberately do NOT reset font-size or word-wrap.\\n font-style: normal;\\n font-weight: $font-weight-normal;\\n line-height: $line-height-base;\\n text-align: left; // Fallback for where `start` is not supported\\n text-align: start;\\n text-decoration: none;\\n text-shadow: none;\\n text-transform: none;\\n letter-spacing: normal;\\n word-break: normal;\\n word-spacing: normal;\\n white-space: normal;\\n line-break: auto;\\n}\\n\",\".popover {\\n position: absolute;\\n top: 0;\\n left: 0;\\n z-index: $zindex-popover;\\n display: block;\\n max-width: $popover-max-width;\\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\\n // So reset our font and text properties to avoid inheriting weird values.\\n @include reset-text();\\n @include font-size($popover-font-size);\\n // Allow breaking very long words so they don't overflow the popover's bounds\\n word-wrap: break-word;\\n background-color: $popover-bg;\\n background-clip: padding-box;\\n border: $popover-border-width solid $popover-border-color;\\n @include border-radius($popover-border-radius);\\n @include box-shadow($popover-box-shadow);\\n\\n .arrow {\\n position: absolute;\\n display: block;\\n width: $popover-arrow-width;\\n height: $popover-arrow-height;\\n margin: 0 $popover-border-radius;\\n\\n &::before,\\n &::after {\\n position: absolute;\\n display: block;\\n content: \\\"\\\";\\n border-color: transparent;\\n border-style: solid;\\n }\\n }\\n}\\n\\n.bs-popover-top {\\n margin-bottom: $popover-arrow-height;\\n\\n > .arrow {\\n bottom: subtract(-$popover-arrow-height, $popover-border-width);\\n\\n &::before {\\n bottom: 0;\\n border-width: $popover-arrow-height ($popover-arrow-width * .5) 0;\\n border-top-color: $popover-arrow-outer-color;\\n }\\n\\n &::after {\\n bottom: $popover-border-width;\\n border-width: $popover-arrow-height ($popover-arrow-width * .5) 0;\\n border-top-color: $popover-arrow-color;\\n }\\n }\\n}\\n\\n.bs-popover-right {\\n margin-left: $popover-arrow-height;\\n\\n > .arrow {\\n left: subtract(-$popover-arrow-height, $popover-border-width);\\n width: $popover-arrow-height;\\n height: $popover-arrow-width;\\n margin: $popover-border-radius 0; // make sure the arrow does not touch the popover's rounded corners\\n\\n &::before {\\n left: 0;\\n border-width: ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5) 0;\\n border-right-color: $popover-arrow-outer-color;\\n }\\n\\n &::after {\\n left: $popover-border-width;\\n border-width: ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5) 0;\\n border-right-color: $popover-arrow-color;\\n }\\n }\\n}\\n\\n.bs-popover-bottom {\\n margin-top: $popover-arrow-height;\\n\\n > .arrow {\\n top: subtract(-$popover-arrow-height, $popover-border-width);\\n\\n &::before {\\n top: 0;\\n border-width: 0 ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5);\\n border-bottom-color: $popover-arrow-outer-color;\\n }\\n\\n &::after {\\n top: $popover-border-width;\\n border-width: 0 ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5);\\n border-bottom-color: $popover-arrow-color;\\n }\\n }\\n\\n // This will remove the popover-header's border just below the arrow\\n .popover-header::before {\\n position: absolute;\\n top: 0;\\n left: 50%;\\n display: block;\\n width: $popover-arrow-width;\\n margin-left: -$popover-arrow-width * .5;\\n content: \\\"\\\";\\n border-bottom: $popover-border-width solid $popover-header-bg;\\n }\\n}\\n\\n.bs-popover-left {\\n margin-right: $popover-arrow-height;\\n\\n > .arrow {\\n right: subtract(-$popover-arrow-height, $popover-border-width);\\n width: $popover-arrow-height;\\n height: $popover-arrow-width;\\n margin: $popover-border-radius 0; // make sure the arrow does not touch the popover's rounded corners\\n\\n &::before {\\n right: 0;\\n border-width: ($popover-arrow-width * .5) 0 ($popover-arrow-width * .5) $popover-arrow-height;\\n border-left-color: $popover-arrow-outer-color;\\n }\\n\\n &::after {\\n right: $popover-border-width;\\n border-width: ($popover-arrow-width * .5) 0 ($popover-arrow-width * .5) $popover-arrow-height;\\n border-left-color: $popover-arrow-color;\\n }\\n }\\n}\\n\\n.bs-popover-auto {\\n &[x-placement^=\\\"top\\\"] {\\n @extend .bs-popover-top;\\n }\\n &[x-placement^=\\\"right\\\"] {\\n @extend .bs-popover-right;\\n }\\n &[x-placement^=\\\"bottom\\\"] {\\n @extend .bs-popover-bottom;\\n }\\n &[x-placement^=\\\"left\\\"] {\\n @extend .bs-popover-left;\\n }\\n}\\n\\n\\n// Offset the popover to account for the popover arrow\\n.popover-header {\\n padding: $popover-header-padding-y $popover-header-padding-x;\\n margin-bottom: 0; // Reset the default from Reboot\\n @include font-size($font-size-base);\\n color: $popover-header-color;\\n background-color: $popover-header-bg;\\n border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);\\n @include border-top-radius($popover-inner-border-radius);\\n\\n &:empty {\\n display: none;\\n }\\n}\\n\\n.popover-body {\\n padding: $popover-body-padding-y $popover-body-padding-x;\\n color: $popover-body-color;\\n}\\n\",\"// Notes on the classes:\\n//\\n// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)\\n// even when their scroll action started on a carousel, but for compatibility (with Firefox)\\n// we're preventing all actions instead\\n// 2. The .carousel-item-left and .carousel-item-right is used to indicate where\\n// the active slide is heading.\\n// 3. .active.carousel-item is the current slide.\\n// 4. .active.carousel-item-left and .active.carousel-item-right is the current\\n// slide in its in-transition state. Only one of these occurs at a time.\\n// 5. .carousel-item-next.carousel-item-left and .carousel-item-prev.carousel-item-right\\n// is the upcoming slide in transition.\\n\\n.carousel {\\n position: relative;\\n}\\n\\n.carousel.pointer-event {\\n touch-action: pan-y;\\n}\\n\\n.carousel-inner {\\n position: relative;\\n width: 100%;\\n overflow: hidden;\\n @include clearfix();\\n}\\n\\n.carousel-item {\\n position: relative;\\n display: none;\\n float: left;\\n width: 100%;\\n margin-right: -100%;\\n backface-visibility: hidden;\\n @include transition($carousel-transition);\\n}\\n\\n.carousel-item.active,\\n.carousel-item-next,\\n.carousel-item-prev {\\n display: block;\\n}\\n\\n.carousel-item-next:not(.carousel-item-left),\\n.active.carousel-item-right {\\n transform: translateX(100%);\\n}\\n\\n.carousel-item-prev:not(.carousel-item-right),\\n.active.carousel-item-left {\\n transform: translateX(-100%);\\n}\\n\\n\\n//\\n// Alternate transitions\\n//\\n\\n.carousel-fade {\\n .carousel-item {\\n opacity: 0;\\n transition-property: opacity;\\n transform: none;\\n }\\n\\n .carousel-item.active,\\n .carousel-item-next.carousel-item-left,\\n .carousel-item-prev.carousel-item-right {\\n z-index: 1;\\n opacity: 1;\\n }\\n\\n .active.carousel-item-left,\\n .active.carousel-item-right {\\n z-index: 0;\\n opacity: 0;\\n @include transition(opacity 0s $carousel-transition-duration);\\n }\\n}\\n\\n\\n//\\n// Left/right controls for nav\\n//\\n\\n.carousel-control-prev,\\n.carousel-control-next {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n z-index: 1;\\n // Use flex for alignment (1-3)\\n display: flex; // 1. allow flex styles\\n align-items: center; // 2. vertically center contents\\n justify-content: center; // 3. horizontally center contents\\n width: $carousel-control-width;\\n padding: 0;\\n color: $carousel-control-color;\\n text-align: center;\\n background: none;\\n border: 0;\\n opacity: $carousel-control-opacity;\\n @include transition($carousel-control-transition);\\n\\n // Hover/focus state\\n @include hover-focus() {\\n color: $carousel-control-color;\\n text-decoration: none;\\n outline: 0;\\n opacity: $carousel-control-hover-opacity;\\n }\\n}\\n.carousel-control-prev {\\n left: 0;\\n @if $enable-gradients {\\n background-image: linear-gradient(90deg, rgba($black, .25), rgba($black, .001));\\n }\\n}\\n.carousel-control-next {\\n right: 0;\\n @if $enable-gradients {\\n background-image: linear-gradient(270deg, rgba($black, .25), rgba($black, .001));\\n }\\n}\\n\\n// Icons for within\\n.carousel-control-prev-icon,\\n.carousel-control-next-icon {\\n display: inline-block;\\n width: $carousel-control-icon-width;\\n height: $carousel-control-icon-width;\\n background: 50% / 100% 100% no-repeat;\\n}\\n.carousel-control-prev-icon {\\n background-image: escape-svg($carousel-control-prev-icon-bg);\\n}\\n.carousel-control-next-icon {\\n background-image: escape-svg($carousel-control-next-icon-bg);\\n}\\n\\n\\n// Optional indicator pips\\n//\\n// Add an ordered list with the following class and add a list item for each\\n// slide your carousel holds.\\n\\n.carousel-indicators {\\n position: absolute;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 15;\\n display: flex;\\n justify-content: center;\\n padding-left: 0; // override <ol> default\\n // Use the .carousel-control's width as margin so we don't overlay those\\n margin-right: $carousel-control-width;\\n margin-left: $carousel-control-width;\\n list-style: none;\\n\\n li {\\n box-sizing: content-box;\\n flex: 0 1 auto;\\n width: $carousel-indicator-width;\\n height: $carousel-indicator-height;\\n margin-right: $carousel-indicator-spacer;\\n margin-left: $carousel-indicator-spacer;\\n text-indent: -999px;\\n cursor: pointer;\\n background-color: $carousel-indicator-active-bg;\\n background-clip: padding-box;\\n // Use transparent borders to increase the hit area by 10px on top and bottom.\\n border-top: $carousel-indicator-hit-area-height solid transparent;\\n border-bottom: $carousel-indicator-hit-area-height solid transparent;\\n opacity: .5;\\n @include transition($carousel-indicator-transition);\\n }\\n\\n .active {\\n opacity: 1;\\n }\\n}\\n\\n\\n// Optional captions\\n//\\n//\\n\\n.carousel-caption {\\n position: absolute;\\n right: (100% - $carousel-caption-width) * .5;\\n bottom: 20px;\\n left: (100% - $carousel-caption-width) * .5;\\n z-index: 10;\\n padding-top: 20px;\\n padding-bottom: 20px;\\n color: $carousel-caption-color;\\n text-align: center;\\n}\\n\",\"@mixin clearfix() {\\n &::after {\\n display: block;\\n clear: both;\\n content: \\\"\\\";\\n }\\n}\\n\",\"//\\n// Rotating border\\n//\\n\\n@keyframes spinner-border {\\n to { transform: rotate(360deg); }\\n}\\n\\n.spinner-border {\\n display: inline-block;\\n width: $spinner-width;\\n height: $spinner-height;\\n vertical-align: $spinner-vertical-align;\\n border: $spinner-border-width solid currentColor;\\n border-right-color: transparent;\\n // stylelint-disable-next-line property-disallowed-list\\n border-radius: 50%;\\n animation: .75s linear infinite spinner-border;\\n}\\n\\n.spinner-border-sm {\\n width: $spinner-width-sm;\\n height: $spinner-height-sm;\\n border-width: $spinner-border-width-sm;\\n}\\n\\n//\\n// Growing circle\\n//\\n\\n@keyframes spinner-grow {\\n 0% {\\n transform: scale(0);\\n }\\n 50% {\\n opacity: 1;\\n transform: none;\\n }\\n}\\n\\n.spinner-grow {\\n display: inline-block;\\n width: $spinner-width;\\n height: $spinner-height;\\n vertical-align: $spinner-vertical-align;\\n background-color: currentColor;\\n // stylelint-disable-next-line property-disallowed-list\\n border-radius: 50%;\\n opacity: 0;\\n animation: .75s linear infinite spinner-grow;\\n}\\n\\n.spinner-grow-sm {\\n width: $spinner-width-sm;\\n height: $spinner-height-sm;\\n}\\n\\n@if $enable-prefers-reduced-motion-media-query {\\n @media (prefers-reduced-motion: reduce) {\\n .spinner-border,\\n .spinner-grow {\\n animation-duration: 1.5s;\\n }\\n }\\n}\\n\",\"// stylelint-disable declaration-no-important\\n\\n.align-baseline { vertical-align: baseline !important; } // Browser default\\n.align-top { vertical-align: top !important; }\\n.align-middle { vertical-align: middle !important; }\\n.align-bottom { vertical-align: bottom !important; }\\n.align-text-bottom { vertical-align: text-bottom !important; }\\n.align-text-top { vertical-align: text-top !important; }\\n\",\"// stylelint-disable declaration-no-important\\n\\n// Contextual backgrounds\\n\\n@mixin bg-variant($parent, $color, $ignore-warning: false) {\\n #{$parent} {\\n background-color: $color !important;\\n }\\n a#{$parent},\\n button#{$parent} {\\n @include hover-focus() {\\n background-color: darken($color, 10%) !important;\\n }\\n }\\n @include deprecate(\\\"The `bg-variant` mixin\\\", \\\"v4.4.0\\\", \\\"v5\\\", $ignore-warning);\\n}\\n\\n@mixin bg-gradient-variant($parent, $color, $ignore-warning: false) {\\n #{$parent} {\\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;\\n }\\n @include deprecate(\\\"The `bg-gradient-variant` mixin\\\", \\\"v4.5.0\\\", \\\"v5\\\", $ignore-warning);\\n}\\n\",\"// stylelint-disable declaration-no-important\\n\\n@each $color, $value in $theme-colors {\\n @include bg-variant(\\\".bg-#{$color}\\\", $value, true);\\n}\\n\\n@if $enable-gradients {\\n @each $color, $value in $theme-colors {\\n @include bg-gradient-variant(\\\".bg-gradient-#{$color}\\\", $value, true);\\n }\\n}\\n\\n.bg-white {\\n background-color: $white !important;\\n}\\n\\n.bg-transparent {\\n background-color: transparent !important;\\n}\\n\",\"// stylelint-disable property-disallowed-list, declaration-no-important\\n\\n//\\n// Border\\n//\\n\\n.border { border: $border-width solid $border-color !important; }\\n.border-top { border-top: $border-width solid $border-color !important; }\\n.border-right { border-right: $border-width solid $border-color !important; }\\n.border-bottom { border-bottom: $border-width solid $border-color !important; }\\n.border-left { border-left: $border-width solid $border-color !important; }\\n\\n.border-0 { border: 0 !important; }\\n.border-top-0 { border-top: 0 !important; }\\n.border-right-0 { border-right: 0 !important; }\\n.border-bottom-0 { border-bottom: 0 !important; }\\n.border-left-0 { border-left: 0 !important; }\\n\\n@each $color, $value in $theme-colors {\\n .border-#{$color} {\\n border-color: $value !important;\\n }\\n}\\n\\n.border-white {\\n border-color: $white !important;\\n}\\n\\n//\\n// Border-radius\\n//\\n\\n.rounded-sm {\\n border-radius: $border-radius-sm !important;\\n}\\n\\n.rounded {\\n border-radius: $border-radius !important;\\n}\\n\\n.rounded-top {\\n border-top-left-radius: $border-radius !important;\\n border-top-right-radius: $border-radius !important;\\n}\\n\\n.rounded-right {\\n border-top-right-radius: $border-radius !important;\\n border-bottom-right-radius: $border-radius !important;\\n}\\n\\n.rounded-bottom {\\n border-bottom-right-radius: $border-radius !important;\\n border-bottom-left-radius: $border-radius !important;\\n}\\n\\n.rounded-left {\\n border-top-left-radius: $border-radius !important;\\n border-bottom-left-radius: $border-radius !important;\\n}\\n\\n.rounded-lg {\\n border-radius: $border-radius-lg !important;\\n}\\n\\n.rounded-circle {\\n border-radius: 50% !important;\\n}\\n\\n.rounded-pill {\\n border-radius: $rounded-pill !important;\\n}\\n\\n.rounded-0 {\\n border-radius: 0 !important;\\n}\\n\",\"// stylelint-disable declaration-no-important\\n\\n//\\n// Utilities for common `display` values\\n//\\n\\n@each $breakpoint in map-keys($grid-breakpoints) {\\n @include media-breakpoint-up($breakpoint) {\\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\\n\\n @each $value in $displays {\\n .d#{$infix}-#{$value} { display: $value !important; }\\n }\\n }\\n}\\n\\n\\n//\\n// Utilities for toggling `display` in print\\n//\\n\\n@media print {\\n @each $value in $displays {\\n .d-print-#{$value} { display: $value !important; }\\n }\\n}\\n\",\"// Credit: Nicolas Gallagher and SUIT CSS.\\n\\n.embed-responsive {\\n position: relative;\\n display: block;\\n width: 100%;\\n padding: 0;\\n overflow: hidden;\\n\\n &::before {\\n display: block;\\n content: \\\"\\\";\\n }\\n\\n .embed-responsive-item,\\n iframe,\\n embed,\\n object,\\n video {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n border: 0;\\n }\\n}\\n\\n@each $embed-responsive-aspect-ratio in $embed-responsive-aspect-ratios {\\n $embed-responsive-aspect-ratio-x: nth($embed-responsive-aspect-ratio, 1);\\n $embed-responsive-aspect-ratio-y: nth($embed-responsive-aspect-ratio, 2);\\n\\n .embed-responsive-#{$embed-responsive-aspect-ratio-x}by#{$embed-responsive-aspect-ratio-y} {\\n &::before {\\n padding-top: percentage(divide($embed-responsive-aspect-ratio-y, $embed-responsive-aspect-ratio-x));\\n }\\n }\\n}\\n\",\"// stylelint-disable declaration-no-important\\n\\n// Flex variation\\n//\\n// Custom styles for additional flex alignment options.\\n\\n@each $breakpoint in map-keys($grid-breakpoints) {\\n @include media-breakpoint-up($breakpoint) {\\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\\n\\n .flex#{$infix}-row { flex-direction: row !important; }\\n .flex#{$infix}-column { flex-direction: column !important; }\\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\\n\\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\\n\\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\\n .justify-content#{$infix}-center { justify-content: center !important; }\\n .justify-content#{$infix}-between { justify-content: space-between !important; }\\n .justify-content#{$infix}-around { justify-content: space-around !important; }\\n\\n .align-items#{$infix}-start { align-items: flex-start !important; }\\n .align-items#{$infix}-end { align-items: flex-end !important; }\\n .align-items#{$infix}-center { align-items: center !important; }\\n .align-items#{$infix}-baseline { align-items: baseline !important; }\\n .align-items#{$infix}-stretch { align-items: stretch !important; }\\n\\n .align-content#{$infix}-start { align-content: flex-start !important; }\\n .align-content#{$infix}-end { align-content: flex-end !important; }\\n .align-content#{$infix}-center { align-content: center !important; }\\n .align-content#{$infix}-between { align-content: space-between !important; }\\n .align-content#{$infix}-around { align-content: space-around !important; }\\n .align-content#{$infix}-stretch { align-content: stretch !important; }\\n\\n .align-self#{$infix}-auto { align-self: auto !important; }\\n .align-self#{$infix}-start { align-self: flex-start !important; }\\n .align-self#{$infix}-end { align-self: flex-end !important; }\\n .align-self#{$infix}-center { align-self: center !important; }\\n .align-self#{$infix}-baseline { align-self: baseline !important; }\\n .align-self#{$infix}-stretch { align-self: stretch !important; }\\n }\\n}\\n\",\"// stylelint-disable declaration-no-important\\n\\n@each $breakpoint in map-keys($grid-breakpoints) {\\n @include media-breakpoint-up($breakpoint) {\\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\\n\\n .float#{$infix}-left { float: left !important; }\\n .float#{$infix}-right { float: right !important; }\\n .float#{$infix}-none { float: none !important; }\\n }\\n}\\n\",\"// stylelint-disable declaration-no-important\\n\\n@each $value in $user-selects {\\n .user-select-#{$value} { user-select: $value !important; }\\n}\\n\",\"// stylelint-disable declaration-no-important\\n\\n@each $value in $overflows {\\n .overflow-#{$value} { overflow: $value !important; }\\n}\\n\",\"// stylelint-disable declaration-no-important\\n\\n// Common values\\n@each $position in $positions {\\n .position-#{$position} { position: $position !important; }\\n}\\n\\n// Shorthand\\n\\n.fixed-top {\\n position: fixed;\\n top: 0;\\n right: 0;\\n left: 0;\\n z-index: $zindex-fixed;\\n}\\n\\n.fixed-bottom {\\n position: fixed;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: $zindex-fixed;\\n}\\n\\n.sticky-top {\\n @supports (position: sticky) {\\n position: sticky;\\n top: 0;\\n z-index: $zindex-sticky;\\n }\\n}\\n\",\"//\\n// Screenreaders\\n//\\n\\n.sr-only {\\n @include sr-only();\\n}\\n\\n.sr-only-focusable {\\n @include sr-only-focusable();\\n}\\n\",\"// Only display content to screen readers\\n//\\n// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/\\n// See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/\\n\\n@mixin sr-only() {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px; // Fix for https://github.com/twbs/bootstrap/issues/25686\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border: 0;\\n}\\n\\n// Use in conjunction with .sr-only to only display content when it's focused.\\n//\\n// Useful for \\\"Skip to main content\\\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\\n//\\n// Credit: HTML5 Boilerplate\\n\\n@mixin sr-only-focusable() {\\n &:active,\\n &:focus {\\n position: static;\\n width: auto;\\n height: auto;\\n overflow: visible;\\n clip: auto;\\n white-space: normal;\\n }\\n}\\n\",\"// stylelint-disable declaration-no-important\\n\\n.shadow-sm { box-shadow: $box-shadow-sm !important; }\\n.shadow { box-shadow: $box-shadow !important; }\\n.shadow-lg { box-shadow: $box-shadow-lg !important; }\\n.shadow-none { box-shadow: none !important; }\\n\",\"// stylelint-disable declaration-no-important\\n\\n// Width and height\\n\\n@each $prop, $abbrev in (width: w, height: h) {\\n @each $size, $length in $sizes {\\n .#{$abbrev}-#{$size} { #{$prop}: $length !important; }\\n }\\n}\\n\\n.mw-100 { max-width: 100% !important; }\\n.mh-100 { max-height: 100% !important; }\\n\\n// Viewport additional helpers\\n\\n.min-vw-100 { min-width: 100vw !important; }\\n.min-vh-100 { min-height: 100vh !important; }\\n\\n.vw-100 { width: 100vw !important; }\\n.vh-100 { height: 100vh !important; }\\n\",\"// stylelint-disable declaration-no-important\\n\\n// Margin and Padding\\n\\n@each $breakpoint in map-keys($grid-breakpoints) {\\n @include media-breakpoint-up($breakpoint) {\\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\\n\\n @each $prop, $abbrev in (margin: m, padding: p) {\\n @each $size, $length in $spacers {\\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\\n .#{$abbrev}t#{$infix}-#{$size},\\n .#{$abbrev}y#{$infix}-#{$size} {\\n #{$prop}-top: $length !important;\\n }\\n .#{$abbrev}r#{$infix}-#{$size},\\n .#{$abbrev}x#{$infix}-#{$size} {\\n #{$prop}-right: $length !important;\\n }\\n .#{$abbrev}b#{$infix}-#{$size},\\n .#{$abbrev}y#{$infix}-#{$size} {\\n #{$prop}-bottom: $length !important;\\n }\\n .#{$abbrev}l#{$infix}-#{$size},\\n .#{$abbrev}x#{$infix}-#{$size} {\\n #{$prop}-left: $length !important;\\n }\\n }\\n }\\n\\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\\n @each $size, $length in $spacers {\\n @if \\\"#{$size}\\\" != \\\"0\\\" {\\n .m#{$infix}-n#{$size} { margin: -$length !important; }\\n .mt#{$infix}-n#{$size},\\n .my#{$infix}-n#{$size} {\\n margin-top: -$length !important;\\n }\\n .mr#{$infix}-n#{$size},\\n .mx#{$infix}-n#{$size} {\\n margin-right: -$length !important;\\n }\\n .mb#{$infix}-n#{$size},\\n .my#{$infix}-n#{$size} {\\n margin-bottom: -$length !important;\\n }\\n .ml#{$infix}-n#{$size},\\n .mx#{$infix}-n#{$size} {\\n margin-left: -$length !important;\\n }\\n }\\n }\\n\\n // Some special margin utils\\n .m#{$infix}-auto { margin: auto !important; }\\n .mt#{$infix}-auto,\\n .my#{$infix}-auto {\\n margin-top: auto !important;\\n }\\n .mr#{$infix}-auto,\\n .mx#{$infix}-auto {\\n margin-right: auto !important;\\n }\\n .mb#{$infix}-auto,\\n .my#{$infix}-auto {\\n margin-bottom: auto !important;\\n }\\n .ml#{$infix}-auto,\\n .mx#{$infix}-auto {\\n margin-left: auto !important;\\n }\\n }\\n}\\n\",\"//\\n// Stretched link\\n//\\n\\n.stretched-link {\\n &::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 1;\\n // Just in case `pointer-events: none` is set on a parent\\n pointer-events: auto;\\n content: \\\"\\\";\\n // IE10 bugfix, see https://stackoverflow.com/questions/16947967/ie10-hover-pseudo-class-doesnt-work-without-background-color\\n background-color: rgba(0, 0, 0, 0);\\n }\\n}\\n\",\"// stylelint-disable declaration-no-important\\n\\n//\\n// Text\\n//\\n\\n.text-monospace { font-family: $font-family-monospace !important; }\\n\\n// Alignment\\n\\n.text-justify { text-align: justify !important; }\\n.text-wrap { white-space: normal !important; }\\n.text-nowrap { white-space: nowrap !important; }\\n.text-truncate { @include text-truncate(); }\\n\\n// Responsive alignment\\n\\n@each $breakpoint in map-keys($grid-breakpoints) {\\n @include media-breakpoint-up($breakpoint) {\\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\\n\\n .text#{$infix}-left { text-align: left !important; }\\n .text#{$infix}-right { text-align: right !important; }\\n .text#{$infix}-center { text-align: center !important; }\\n }\\n}\\n\\n// Transformation\\n\\n.text-lowercase { text-transform: lowercase !important; }\\n.text-uppercase { text-transform: uppercase !important; }\\n.text-capitalize { text-transform: capitalize !important; }\\n\\n// Weight and italics\\n\\n.font-weight-light { font-weight: $font-weight-light !important; }\\n.font-weight-lighter { font-weight: $font-weight-lighter !important; }\\n.font-weight-normal { font-weight: $font-weight-normal !important; }\\n.font-weight-bold { font-weight: $font-weight-bold !important; }\\n.font-weight-bolder { font-weight: $font-weight-bolder !important; }\\n.font-italic { font-style: italic !important; }\\n\\n// Contextual colors\\n\\n.text-white { color: $white !important; }\\n\\n@each $color, $value in $theme-colors {\\n @include text-emphasis-variant(\\\".text-#{$color}\\\", $value, true);\\n}\\n\\n.text-body { color: $body-color !important; }\\n.text-muted { color: $text-muted !important; }\\n\\n.text-black-50 { color: rgba($black, .5) !important; }\\n.text-white-50 { color: rgba($white, .5) !important; }\\n\\n// Misc\\n\\n.text-hide {\\n @include text-hide($ignore-warning: true);\\n}\\n\\n.text-decoration-none { text-decoration: none !important; }\\n\\n.text-break {\\n word-break: break-word !important; // Deprecated, but avoids issues with flex containers\\n word-wrap: break-word !important; // Used instead of `overflow-wrap` for IE & Edge Legacy\\n}\\n\\n// Reset\\n\\n.text-reset { color: inherit !important; }\\n\",\"// Text truncate\\n// Requires inline-block or block for proper styling\\n\\n@mixin text-truncate() {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n\",\"// stylelint-disable declaration-no-important\\n\\n// Typography\\n\\n@mixin text-emphasis-variant($parent, $color, $ignore-warning: false) {\\n #{$parent} {\\n color: $color !important;\\n }\\n @if $emphasized-link-hover-darken-percentage != 0 {\\n a#{$parent} {\\n @include hover-focus() {\\n color: darken($color, $emphasized-link-hover-darken-percentage) !important;\\n }\\n }\\n }\\n @include deprecate(\\\"`text-emphasis-variant()`\\\", \\\"v4.4.0\\\", \\\"v5\\\", $ignore-warning);\\n}\\n\",\"// CSS image replacement\\n@mixin text-hide($ignore-warning: false) {\\n // stylelint-disable-next-line font-family-no-missing-generic-family-keyword\\n font: 0/0 a;\\n color: transparent;\\n text-shadow: none;\\n background-color: transparent;\\n border: 0;\\n\\n @include deprecate(\\\"`text-hide()`\\\", \\\"v4.1.0\\\", \\\"v5\\\", $ignore-warning);\\n}\\n\",\"// stylelint-disable declaration-no-important\\n\\n//\\n// Visibility utilities\\n//\\n\\n.visible {\\n visibility: visible !important;\\n}\\n\\n.invisible {\\n visibility: hidden !important;\\n}\\n\",\"// stylelint-disable declaration-no-important, selector-no-qualifying-type\\n\\n// Source: https://github.com/h5bp/main.css/blob/master/src/_print.css\\n\\n// ==========================================================================\\n// Print styles.\\n// Inlined to avoid the additional HTTP request:\\n// https://www.phpied.com/delay-loading-your-print-css/\\n// ==========================================================================\\n\\n@if $enable-print-styles {\\n @media print {\\n *,\\n *::before,\\n *::after {\\n // Bootstrap specific; comment out `color` and `background`\\n //color: $black !important; // Black prints faster\\n text-shadow: none !important;\\n //background: transparent !important;\\n box-shadow: none !important;\\n }\\n\\n a {\\n &:not(.btn) {\\n text-decoration: underline;\\n }\\n }\\n\\n // Bootstrap specific; comment the following selector out\\n //a[href]::after {\\n // content: \\\" (\\\" attr(href) \\\")\\\";\\n //}\\n\\n abbr[title]::after {\\n content: \\\" (\\\" attr(title) \\\")\\\";\\n }\\n\\n // Bootstrap specific; comment the following selector out\\n //\\n // Don't show links that are fragment identifiers,\\n // or use the `javascript:` pseudo protocol\\n //\\n\\n //a[href^=\\\"#\\\"]::after,\\n //a[href^=\\\"javascript:\\\"]::after {\\n // content: \\\"\\\";\\n //}\\n\\n pre {\\n white-space: pre-wrap !important;\\n }\\n pre,\\n blockquote {\\n border: $border-width solid $gray-500; // Bootstrap custom code; using `$border-width` instead of 1px\\n page-break-inside: avoid;\\n }\\n\\n tr,\\n img {\\n page-break-inside: avoid;\\n }\\n\\n p,\\n h2,\\n h3 {\\n orphans: 3;\\n widows: 3;\\n }\\n\\n h2,\\n h3 {\\n page-break-after: avoid;\\n }\\n\\n // Bootstrap specific changes start\\n\\n // Specify a size and min-width to make printing closer across browsers.\\n // We don't set margin here because it breaks `size` in Chrome. We also\\n // don't use `!important` on `size` as it breaks in Chrome.\\n @page {\\n size: $print-page-size;\\n }\\n body {\\n min-width: $print-body-min-width !important;\\n }\\n .container {\\n min-width: $print-body-min-width !important;\\n }\\n\\n // Bootstrap components\\n .navbar {\\n display: none;\\n }\\n .badge {\\n border: $border-width solid $black;\\n }\\n\\n .table {\\n border-collapse: collapse !important;\\n\\n td,\\n th {\\n background-color: $white !important;\\n }\\n }\\n\\n .table-bordered {\\n th,\\n td {\\n border: 1px solid $gray-300 !important;\\n }\\n }\\n\\n .table-dark {\\n color: inherit;\\n\\n th,\\n td,\\n thead th,\\n tbody + tbody {\\n border-color: $table-border-color;\\n }\\n }\\n\\n .table .thead-dark th {\\n color: inherit;\\n border-color: $table-border-color;\\n }\\n\\n // Bootstrap specific changes end\\n }\\n}\\n\",\"body {\\n -moz-osx-font-smoothing: grayscale;\\n -webkit-font-smoothing: antialiased;\\n}\\n\\n.font-xs {\\n font-size: .75rem !important;\\n}\\n\\n.font-sm {\\n font-size: .85rem !important;\\n}\\n\\n.font-lg {\\n font-size: 1rem !important;\\n}\\n\\n.font-xl {\\n font-size: 1.25rem !important;\\n}\\n\\n.font-2xl {\\n font-size: 1.5rem !important;\\n}\\n\\n.font-3xl {\\n font-size: 1.75rem !important;\\n}\\n\\n.font-4xl {\\n font-size: 2rem !important;\\n}\\n\\n.font-5xl {\\n font-size: 2.5rem !important;\\n}\\n\",\"// scss-lint:disable all\\n.animated {\\n animation-duration: 1s;\\n // animation-fill-mode: both;\\n}\\n\\n.animated.infinite {\\n animation-iteration-count: infinite;\\n}\\n\\n.animated.hinge {\\n animation-duration: 2s;\\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\",\".aside-menu {\\n z-index: $zindex-sticky - 1;\\n width: $aside-menu-width;\\n color: $aside-menu-color;\\n background: $aside-menu-bg;\\n @include borders($aside-menu-borders);\\n\\n .nav-tabs {\\n border-color: $border-color;\\n .nav-link {\\n padding: $aside-menu-nav-padding-y $aside-menu-nav-padding-x;\\n color: $body-color;\\n border-top: 0;\\n &.active {\\n color: theme-color(\\\"primary\\\");\\n border-right-color: $border-color;\\n border-left-color: $border-color;\\n }\\n }\\n .nav-item:first-child {\\n .nav-link {\\n border-left: 0;\\n }\\n }\\n }\\n\\n .tab-content {\\n position: relative;\\n overflow-x: hidden;\\n overflow-y: auto;\\n border: 0;\\n border-top: 1px solid $border-color;\\n -ms-overflow-style: -ms-autohiding-scrollbar;\\n\\n &::-webkit-scrollbar {\\n width: 10px;\\n margin-left: -10px;\\n -webkit-appearance: none;\\n }\\n\\n // &::-webkit-scrollbar-button { }\\n\\n &::-webkit-scrollbar-track {\\n background-color: lighten($aside-menu-bg, 5%);\\n border-right: 1px solid darken($aside-menu-bg, 5%);\\n border-left: 1px solid darken($aside-menu-bg, 5%);\\n }\\n\\n // &::-webkit-scrollbar-track-piece { }\\n\\n &::-webkit-scrollbar-thumb {\\n height: 50px;\\n background-color: darken($aside-menu-bg, 10%);\\n background-clip: content-box;\\n border-color: transparent;\\n border-style: solid;\\n border-width: 1px 2px;\\n }\\n\\n .tab-pane {\\n padding: 0;\\n }\\n }\\n}\\n\",\"// scss-lint:disable all\\n// Core Admin Variables\\n\\n$enable-sidebar-nav-rounded: false !default;\\n\\n$border-color: $gray-200 !default;\\n$layout-transition-speed: .25s !default;\\n\\n// Social Colors\\n\\n$facebook: #3b5998 !default;\\n$twitter: #00aced !default;\\n$linkedin: #4875b4 !default;\\n$google-plus: #d34836 !default;\\n$flickr: #ff0084 !default;\\n$tumblr: #32506d !default;\\n$xing: #026466 !default;\\n$github: #4183c4 !default;\\n$html5: #e34f26 !default;\\n$openid: #f78c40 !default;\\n$stack-overflow: #fe7a15 !default;\\n$youtube: #b00 !default;\\n$css3: #0170ba !default;\\n$dribbble: #ea4c89 !default;\\n$google-plus: #bb4b39 !default;\\n$instagram: #517fa4 !default;\\n$pinterest: #cb2027 !default;\\n$vk: #45668e !default;\\n$yahoo: #400191 !default;\\n$behance: #1769ff !default;\\n$dropbox: #007ee5 !default;\\n$reddit: #ff4500 !default;\\n$spotify: #7ab800 !default;\\n$vine: #00bf8f !default;\\n$foursquare: #1073af !default;\\n$vimeo: #aad450 !default;\\n\\n// Navbar\\n\\n$navbar-height: 55px !default;\\n$navbar-bg: #fff !default;\\n$navbar-border: (\\n bottom: (\\n size: 1px,\\n style: solid,\\n color: $border-color\\n )\\n) !default;\\n$navbar-brand-width: 155px !default;\\n$navbar-brand-bg: #fff !default;\\n$navbar-brand-logo: url('../public_src/img/signal-k-logo-image-text.svg') !default;\\n$navbar-brand-logo-size: 150px auto !default;\\n$navbar-brand-border: (\\n bottom: (\\n size: 1px,\\n style: solid,\\n color: $border-color\\n )\\n) !default;\\n\\n$navbar-brand-minimized-width: 50px !default;\\n$navbar-brand-minimized-bg: $navbar-brand-bg !default;\\n$navbar-brand-minimized-logo: url('../public_src/img/signal-k-logo-image-text.svg') !default;\\n$navbar-brand-minimized-logo-size: 24px !default;\\n$navbar-brand-minimized-border: $navbar-brand-border !default;\\n\\n$navbar-color: $gray-600 !default;\\n$navbar-hover-color: $gray-800 !default;\\n$navbar-active-color: $gray-800 !default;\\n$navbar-disabled-color: $gray-300 !default;\\n\\n$navbar-toggler-icon: str-replace(url(\\\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-color}' stroke-width='2.25' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\\\"), \\\"#\\\", \\\"%23\\\") !default;\\n$navbar-toggler-icon-hover: str-replace(url(\\\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-hover-color}' stroke-width='2.25' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\\\"), \\\"#\\\", \\\"%23\\\") !default;\\n\\n// Sidebar\\n\\n$sidebar-width: 200px !default;\\n$sidebar-padding: 0 !default;\\n$sidebar-minimized-width: 50px !default;\\n$sidebar-minimized-height: $sidebar-minimized-width !default;\\n$sidebar-compact-width: 150px !default;\\n$sidebar-compact-height: $sidebar-compact-width !default;\\n$sidebar-color: #fff !default;\\n$sidebar-bg: $gray-800 !default;\\n$sidebar-borders: none !default;\\n$mobile-sidebar-width: 220px !default;\\n\\n// Sidebar Header\\n\\n$sidebar-header-height: auto !default;\\n$sidebar-header-bg: rgba(0,0,0,.2) !default;\\n$sidebar-header-padding-y: .75rem !default;\\n$sidebar-header-padding-x: 1rem !default;\\n\\n// Sidebar Form\\n\\n$sidebar-form-border: 0 !default;\\n$sidebar-form-bg: darken($sidebar-bg,10%) !default;\\n$sidebar-form-color: #fff !default;\\n$sidebar-form-placeholder-color: rgba(255,255,255,.7) !default;\\n\\n// Sidebar Navigation\\n\\n$sidebar-nav-color: #fff !default;\\n$sidebar-nav-title-padding-y: .75rem !default;\\n$sidebar-nav-title-padding-x: 1rem !default;\\n$sidebar-nav-title-color: $gray-200 !default;\\n$sidebar-nav-link-padding-y: .75rem !default;\\n$sidebar-nav-link-padding-x: 1rem !default;\\n$sidebar-nav-link-color: #fff !default;\\n$sidebar-nav-link-bg: transparent !default;\\n$sidebar-nav-link-icon-color: $gray-600 !default;\\n$sidebar-nav-link-borders: 0 !default;\\n\\n$sidebar-nav-link-hover-color: #fff !default;\\n$sidebar-nav-link-hover-bg: theme-color(\\\"primary\\\") !default;\\n$sidebar-nav-link-hover-icon-color: #fff !default;\\n$sidebar-nav-link-hover-borders: 0 !default;\\n\\n$sidebar-nav-link-active-color: #fff !default;\\n$sidebar-nav-link-active-bg: lighten($sidebar-bg, 5%) !default;\\n$sidebar-nav-link-active-icon-color: theme-color(\\\"primary\\\") !default;\\n$sidebar-nav-link-active-borders: 0 !default;\\n\\n$sidebar-nav-dropdown-color: #fff !default;\\n$sidebar-nav-dropdown-bg: rgba(0,0,0,.2) !default;\\n$sidebar-nav-dropdown-borders: 0 !default;\\n$sidebar-nav-dropdown-indicator-color:$gray-600 !default;\\n$sidebar-nav-dropdown-indicator: str-replace(url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='#{$sidebar-nav-dropdown-indicator-color}' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E\\\"), \\\"#\\\", \\\"%23\\\") !default;\\n$sidebar-nav-dropdown-indicator-hover-color:$sidebar-nav-link-hover-color;\\n$sidebar-nav-dropdown-indicator-hover:str-replace(url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='#{$sidebar-nav-dropdown-indicator-hover-color}' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E\\\"), \\\"#\\\", \\\"%23\\\") !default;\\n\\n// Sidebar Footer\\n\\n$sidebar-footer-height: auto !default;\\n$sidebar-footer-bg: rgba(0,0,0,.2) !default;\\n$sidebar-footer-padding-y: .75rem !default;\\n$sidebar-footer-padding-x: 1rem !default;\\n$sidebar-footer-borders: 0 !default;\\n\\n// Sidebar Minimizer\\n\\n$sidebar-minimizer-height: 50px !default;\\n$sidebar-minimizer-bg: rgba(0,0,0,.2) !default;\\n$sidebar-minimizer-borders: 0 !default;\\n$sidebar-minimizer-indicator-color: $gray-600 !default;\\n$sidebar-minimizer-indicator: str-replace(url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='#{$sidebar-minimizer-indicator-color}' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E\\\"), \\\"#\\\", \\\"%23\\\") !default;\\n$sidebar-minimizer-hover-bg: rgba(0,0,0,.3) !default;\\n$sidebar-minimizer-hover-indicator-color:$sidebar-nav-link-hover-color !default;\\n$sidebar-minimizer-hover-indicator: str-replace(url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='#{$sidebar-minimizer-hover-indicator-color}' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E\\\"), \\\"#\\\", \\\"%23\\\") !default;\\n\\n\\n// Top Navigation\\n\\n$top-nav-bg: #fff !default;\\n$top-nav-color: $body-color !default;\\n$top-nav-borders: (\\n bottom: (\\n size: 1px,\\n style: solid,\\n color: $border-color\\n )\\n) !default;\\n$top-nav-ul-borders: (\\n all: (\\n size: 1px,\\n style: solid,\\n color: $border-color\\n )\\n) !default;\\n\\n$top-nav-hover-color: #fff !default;\\n$top-nav-hover-bg: theme-color(\\\"primary\\\") !default;\\n$top-nav-active-color: #fff !default;\\n$top-nav-active-bg: theme-color(\\\"primary\\\") !default;\\n$top-nav-height: $navbar-height - 15px !default;\\n\\n// Breadcrumb\\n$breadcrumb-borders: (\\n bottom: (\\n size: 1px,\\n style: solid,\\n color: $border-color\\n )\\n) !default;\\n\\n// Aside\\n\\n$aside-menu-width: 250px !default;\\n$aside-menu-color: $gray-800 !default;\\n$aside-menu-bg: #fff !default;\\n$aside-menu-borders: (\\n left: (\\n size: 1px,\\n style: solid,\\n color: $border-color\\n )\\n) !default;\\n\\n$aside-menu-nav-padding-y: .75rem !default;\\n$aside-menu-nav-padding-x: 1rem !default;\\n\\n// Footer\\n\\n$footer-height: 50px !default;\\n$footer-bg: $gray-100 !default;\\n$footer-color: $body-color !default;\\n$footer-borders: (\\n top: (\\n size: 1px,\\n style: solid,\\n color: $border-color\\n )\\n) !default;\\n\\n// Cards\\n\\n$card-icon-bg: transparent !default;\\n$card-icon-color: $body-color !default;\\n\",\"@mixin button-social-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\\n padding: $padding-y $padding-x;\\n font-size: $font-size;\\n line-height: $line-height;\\n border: 0;\\n @include border-radius($border-radius);\\n\\n &::before {\\n width: ($padding-y * 2) + ($font-size * $line-height);\\n height: ($padding-y * 2) + ($font-size * $line-height);\\n padding: $padding-y 0;\\n font-size: $font-size;\\n line-height: $line-height;\\n @include border-radius($border-radius);\\n }\\n\\n span {\\n margin-left: ($padding-y * 2) + ($font-size * $line-height);\\n }\\n\\n &.icon {\\n width: ($padding-y * 2) + ($font-size * $line-height);\\n height: ($padding-y * 2) + ($font-size * $line-height);\\n }\\n}\\n\\n@mixin avatar($width, $status-width) {\\n position: relative;\\n display: inline-block;\\n width: $width;\\n\\n .img-avatar {\\n width: $width;\\n height: $width;\\n }\\n\\n .avatar-status {\\n position: absolute;\\n right: 0;\\n bottom: 0;\\n display: block;\\n width: $status-width;\\n height: $status-width;\\n border: 1px solid #fff;\\n border-radius: 50em;\\n }\\n}\\n\\n@mixin borders($borders) {\\n @each $border in $borders {\\n $direction: nth($border, 1);\\n @if $direction == \\\"all\\\" {\\n $size: map-get(map-get($borders, $direction), size);\\n $style: map-get(map-get($borders, $direction), style);\\n $color: map-get(map-get($borders, $direction), color);\\n border: $size $style $color;\\n } @else if $direction == \\\"top\\\" {\\n $size: map-get(map-get($borders, $direction), size);\\n $style: map-get(map-get($borders, $direction), style);\\n $color: map-get(map-get($borders, $direction), color);\\n border-top: $size $style $color;\\n } @else if $direction == \\\"right\\\" {\\n $size: map-get(map-get($borders, $direction), size);\\n $style: map-get(map-get($borders, $direction), style);\\n $color: map-get(map-get($borders, $direction), color);\\n border-right: $size $style $color;\\n } @else if $direction == \\\"bottom\\\" {\\n $size: map-get(map-get($borders, $direction), size);\\n $style: map-get(map-get($borders, $direction), style);\\n $color: map-get(map-get($borders, $direction), color);\\n border-bottom: $size $style $color;\\n } @else if $direction == \\\"left\\\" {\\n $size: map-get(map-get($borders, $direction), size);\\n $style: map-get(map-get($borders, $direction), style);\\n $color: map-get(map-get($borders, $direction), color);\\n border-left: $size $style $color;\\n }\\n }\\n}\\n\\n@mixin sidebar-width($borders, $width) {\\n $sidebar-width: $width;\\n\\n @each $border in $borders {\\n $direction: nth($border, 1);\\n @if $direction == \\\"all\\\" {\\n $size: map-get(map-get($borders, $direction), size);\\n $sidebar-width: ($sidebar-width - (2 * $size));\\n } @else if $direction == \\\"right\\\" {\\n $size: map-get(map-get($borders, $direction), size);\\n $sidebar-width: $sidebar-width - $size;\\n } @else if $direction == \\\"left\\\" {\\n $size: map-get(map-get($borders, $direction), size);\\n $sidebar-width: $sidebar-width - $size;\\n }\\n width: $sidebar-width;\\n }\\n}\\n\\n@mixin bg-variant($parent, $color) {\\n #{$parent} {\\n @include border-radius($card-border-radius-inner $card-border-radius-inner $card-border-radius-inner $card-border-radius-inner);\\n color: #fff !important;\\n background-color: $color !important;\\n }\\n a#{$parent} {\\n @include hover-focus {\\n background-color: darken($color, 10%);\\n }\\n }\\n}\\n\\n@mixin card-accent-variant($color) {\\n border-top-width: 2px;\\n border-top-color: $color;\\n}\\n\",\".img-avatar {\\n border-radius: 50em;\\n}\\n\\n.avatar {\\n $width: 36px;\\n $status-width: 10px;\\n @include avatar($width,$status-width);\\n}\\n\\n.avatar.avatar-xs {\\n $width: 20px;\\n $status-width: 8px;\\n @include avatar($width,$status-width);\\n}\\n\\n.avatar.avatar-sm {\\n $width: 24px;\\n $status-width: 8px;\\n @include avatar($width,$status-width);\\n}\\n\\n.avatar.avatar-lg {\\n $width: 72px;\\n $status-width: 12px;\\n @include avatar($width,$status-width);\\n}\\n\\n.avatars-stack {\\n .avatar.avatar-xs {\\n margin-right: -10px;\\n }\\n\\n // .avatar.avatar-sm {\\n //\\n // }\\n\\n .avatar {\\n margin-right: -15px;\\n transition: margin-left $layout-transition-speed, margin-right $layout-transition-speed;\\n\\n &:hover {\\n margin-right: 0 !important;\\n }\\n }\\n\\n // .avatar.avatar-lg {\\n //\\n // }\\n\\n}\\n\",\".badge-pill {\\n border-radius: $badge-pill-border-radius;\\n}\\n\",\".breadcrumb-menu {\\n margin-left: auto;\\n\\n &::before {\\n display: none;\\n }\\n\\n .btn-group {\\n vertical-align: top;\\n }\\n\\n .btn {\\n padding: 0 $input-btn-padding-x;\\n color: $text-muted;\\n vertical-align: top;\\n border: 0;\\n\\n &:hover, &.active {\\n color: $body-color;\\n background: transparent;\\n }\\n }\\n\\n .open {\\n .btn {\\n color: $body-color;\\n background: transparent;\\n }\\n }\\n\\n .dropdown-menu {\\n min-width: 180px;\\n line-height: $line-height-base;\\n }\\n}\\n\",\".breadcrumb {\\n position: relative;\\n @include borders($breadcrumb-borders);\\n}\\n\",\"button {\\n cursor: pointer;\\n}\\n\\n.btn {\\n .badge {\\n position: absolute;\\n top: 2px;\\n right: 6px;\\n font-size: 9px;\\n }\\n}\\n\\n.btn-transparent {\\n color: #fff;\\n background-color: transparent;\\n border-color: transparent;\\n}\\n\\n.btn {\\n [class^=\\\"icon-\\\"], [class*=\\\" icon-\\\"] {\\n display: inline-block;\\n margin-top: -2px;\\n vertical-align: middle;\\n }\\n}\\n\\n.btn-facebook,\\n.btn-twitter,\\n.btn-linkedin,\\n.btn-flickr,\\n.btn-tumblr,\\n.btn-xing,\\n.btn-github,\\n.btn-html5,\\n.btn-openid,\\n.btn-stack-overflow,\\n.btn-youtube,\\n.btn-css3,\\n.btn-dribbble,\\n.btn-google-plus,\\n.btn-instagram,\\n.btn-pinterest,\\n.btn-vk,\\n.btn-yahoo,\\n.btn-behance,\\n.btn-dropbox,\\n.btn-reddit,\\n.btn-spotify,\\n.btn-vine,\\n.btn-foursquare,\\n.btn-vimeo {\\n position: relative;\\n overflow: hidden;\\n color: #fff !important;\\n text-align: center;\\n\\n &::before {\\n position: absolute;\\n top: 0;\\n left: 0;\\n display: block;\\n font-family: \\\"FontAwesome\\\";\\n font-style: normal;\\n font-weight: normal;\\n -moz-osx-font-smoothing: grayscale;\\n -webkit-font-smoothing: antialiased;\\n }\\n\\n &:hover {\\n color: #fff;\\n }\\n\\n &.icon {\\n\\n span {\\n display: none;\\n }\\n }\\n\\n &.text {\\n &::before {\\n display: none;\\n }\\n\\n span {\\n margin-left: 0 !important;\\n }\\n }\\n @include button-social-size($input-btn-padding-y, $input-btn-padding-x, $font-size-base, $line-height-base, $btn-border-radius);\\n\\n &.btn-lg {\\n @include button-social-size($input-btn-padding-y-lg, $input-btn-padding-x-lg, $font-size-lg, $line-height-lg, $btn-border-radius-lg);\\n }\\n\\n &.btn-sm {\\n @include button-social-size($input-btn-padding-y-sm, $input-btn-padding-x-sm, $font-size-sm, $line-height-sm, $btn-border-radius-sm);\\n }\\n\\n}\\n\\n.btn-facebook {\\n $color: $facebook;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f09a\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-twitter {\\n $color: $twitter;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f099\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-linkedin {\\n $color: $linkedin;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f0e1\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-flickr {\\n $color: $flickr;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f16e\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-tumblr {\\n $color: $tumblr;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f173\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-xing {\\n $color: $xing;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f168\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-github {\\n $color: $github;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f09b\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-html5 {\\n $color: $html5;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f13b\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-openid {\\n $color: $openid;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f19b\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-stack-overflow {\\n $color: $stack-overflow;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f16c\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-css3 {\\n $color: $css3;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f13c\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-youtube {\\n $color: $youtube;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f167\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-dribbble {\\n $color: $dribbble;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f17d\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-google-plus {\\n $color: $google-plus;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f0d5\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-instagram {\\n $color: $instagram;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f16d\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-pinterest {\\n $color: $pinterest;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f0d2\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-vk {\\n $color: $vk;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f189\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-yahoo {\\n $color: $yahoo;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f19e\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-behance {\\n $color: $behance;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f1b4\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-dropbox {\\n $color: $dropbox;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f16b\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-reddit {\\n $color: $reddit;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f1a1\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-spotify {\\n $color: $spotify;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f1bc\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-vine {\\n $color: $vine;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f1ca\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-foursquare {\\n $color: $foursquare;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f180\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\\n.btn-vimeo {\\n $color: $vimeo;\\n\\n background: $color;\\n &::before {\\n content: \\\"\\\\f194\\\";\\n background: darken($color, 5%);\\n\\n }\\n\\n &:hover {\\n background: darken($color, 5%);\\n\\n &::before {\\n background: darken($color, 10%);\\n }\\n }\\n}\\n\",\".callout {\\n position: relative;\\n padding: 0 $spacer;\\n margin: $spacer 0;\\n border: 0 solid $border-color;\\n border-left-width: .25rem;\\n\\n @if $enable-rounded {\\n border-radius: .25rem;\\n }\\n\\n .chart-wrapper {\\n position: absolute;\\n top: 10px;\\n left: 50%;\\n float: right;\\n width: 50%;\\n }\\n}\\n\\n.callout-bordered {\\n border: 1px solid $border-color;\\n border-left-width: .25rem;\\n}\\n.callout code {\\n border-radius: .25rem;\\n}\\n.callout h4 {\\n margin-top: 0;\\n margin-bottom: .25rem;\\n}\\n.callout p:last-child {\\n margin-bottom: 0;\\n}\\n.callout + .callout {\\n margin-top: - .25rem;\\n}\\n\\n.callout-default {\\n border-left-color: $text-muted;\\n\\n h4 {\\n color: $text-muted;\\n }\\n}\\n\\n@each $color, $value in $theme-colors {\\n .callout-#{$color} {\\n border-left-color: $value;\\n\\n h4 {\\n color: $value;\\n }\\n }\\n}\\n\",\".card {\\n margin-bottom: 1.5 * $spacer;\\n\\n // Cards with color accent\\n @each $color, $value in $theme-colors {\\n &.bg-#{$color} {\\n border-color: darken($value, 12.5%);\\n .card-header {\\n background-color: darken($value, 3%);\\n border-color: darken($value, 12.5%);\\n }\\n }\\n }\\n}\\n\\n.text-white .text-muted {\\n color: rgba(255,255,255,.6) !important;\\n}\\n\\n.card-header {\\n\\n .icon-bg {\\n display: inline-body;\\n padding: $card-spacer-y $card-spacer-x !important;\\n margin-top: -$card-spacer-y;\\n margin-right: $card-spacer-x;\\n margin-bottom: -$card-spacer-y;\\n margin-left: -$card-spacer-x;\\n line-height: inherit;\\n color: $card-icon-color;\\n vertical-align: bottom;\\n background: $card-icon-bg;\\n border-right: $card-border-width solid $card-border-color;\\n }\\n\\n .nav.nav-tabs {\\n margin-top: -$card-spacer-y;\\n margin-bottom: -$card-spacer-y;\\n border-bottom: 0;\\n\\n .nav-item {\\n border-top: 0;\\n }\\n\\n .nav-link {\\n padding: $card-spacer-y $card-spacer-x / 2;\\n color: $text-muted;\\n border-top: 0;\\n\\n &.active {\\n color: $body-color;\\n background: #fff;\\n }\\n }\\n }\\n\\n &.card-header-inverse {\\n color: #fff;\\n }\\n\\n .btn {\\n margin-top: - $input-btn-padding-y;\\n }\\n .btn-sm {\\n margin-top: - $input-btn-padding-y-sm;\\n }\\n .btn-lg {\\n margin-top: - $input-btn-padding-y-lg;\\n }\\n}\\n//\\n.card-footer {\\n\\n ul {\\n display: table;\\n width: 100%;\\n padding: 0;\\n margin: 0;\\n table-layout: fixed;\\n\\n li {\\n display: table-cell;\\n padding: 0 $card-spacer-x;\\n text-align: center;\\n }\\n }\\n}\\n\\n[class*=\\\"card-outline-\\\"] {\\n .card-body {\\n background: #fff !important;\\n }\\n\\n &.card-outline-top {\\n border-top-width: 2px;\\n border-right-color: $border-color;\\n border-bottom-color: $border-color;\\n border-left-color: $border-color;\\n }\\n}\\n\\n// Cards with color accent\\n@each $color, $value in $theme-colors {\\n .card-accent-#{$color} {\\n @include card-accent-variant($value);\\n }\\n}\\n\\n// Card Actions\\n.card-header {\\n > i {\\n margin-right: $spacer / 2;\\n }\\n .card-actions {\\n position: absolute;\\n top: 0;\\n right: 0;\\n //height: inherit;\\n\\n a, button {\\n display: block;\\n float: left;\\n width: 50px;\\n padding: $card-spacer-y 0;\\n margin: 0 !important;\\n color: $body-color;\\n text-align: center;\\n background: transparent;\\n border: 0;\\n border-left: 1px solid $border-color;\\n box-shadow: 0;\\n\\n &:hover {\\n text-decoration: none;\\n }\\n\\n [class^=\\\"icon-\\\"], [class*=\\\" icon-\\\"] {\\n display: inline-body;\\n vertical-align: middle;\\n }\\n\\n i {\\n display: inline-body;\\n transition: .4s;\\n }\\n\\n .r180 {\\n transform: rotate(180deg);\\n }\\n }\\n\\n .input-group {\\n width: 230px;\\n margin: 6px;\\n\\n .input-group-addon {\\n background: #fff;\\n }\\n\\n input {\\n border-left: 0;\\n }\\n }\\n }\\n}\\n\\n.card-full {\\n margin-top: - $spacer;\\n margin-right: - $grid-gutter-width / 2;\\n margin-left: - $grid-gutter-width / 2;\\n border: 0;\\n border-bottom: $card-border-width solid $border-color;\\n}\\n\\n@include media-breakpoint-up(sm) {\\n .card-columns {\\n\\n &.cols-2 {\\n column-count: 2;\\n }\\n }\\n}\\n\\n.card {\\n &.drag, .drag {\\n cursor: move;\\n }\\n}\\n\\n.card-placeholder {\\n background: rgba(0,0,0,.025);\\n border: 1px dashed $gray-300;\\n}\\n\",\".chart-wrapper {\\n canvas {\\n width: 100% !important;\\n }\\n}\\n// scss-lint:disable QualifyingElement\\nbase-chart.chart {\\n display: block !important;\\n}\\n\",\"// Links, buttons, and more within the dropdown menu\\n.dropdown-item {\\n position: relative;\\n padding: 10px 20px;\\n border-bottom: 1px solid $dropdown-border-color;\\n\\n &:last-child {\\n border-bottom: 0;\\n }\\n\\n i {\\n display: inline-block;\\n width: 20px;\\n margin-right: 10px;\\n margin-left: -10px;\\n color: $dropdown-border-color;\\n text-align: center;\\n }\\n\\n .badge {\\n position: absolute;\\n right: 10px;\\n margin-top: 2px;\\n }\\n}\\n\\n// Dropdown section headers\\n.dropdown-header {\\n padding: 8px 20px;\\n background: $dropdown-divider-bg;\\n border-bottom: 1px solid $dropdown-border-color;\\n\\n .btn {\\n margin-top: -7px;\\n color: $dropdown-header-color;\\n\\n &:hover {\\n color: $body-color;\\n }\\n\\n &.pull-right {\\n margin-right: -20px;\\n }\\n }\\n}\\n\\n.dropdown-menu-lg {\\n width: 250px;\\n}\\n.app-header {\\n .navbar-nav {\\n .dropdown-menu {\\n position: absolute;\\n }\\n // Menu positioning\\n //\\n // Add extra class to `.dropdown-menu` to flip the alignment of the dropdown\\n // menu with the parent.\\n .dropdown-menu-right {\\n right: 0;\\n left: auto; // Reset the default from `.dropdown-menu`\\n }\\n\\n .dropdown-menu-left {\\n right: auto;\\n left: 0;\\n }\\n }\\n}\\n\",\".app-footer {\\n display: flex;\\n flex-wrap: wrap;\\n align-items: center;\\n padding: 0 $spacer;\\n color: $footer-color;\\n background: $footer-bg;\\n @include borders($footer-borders);\\n}\\n\",\".row.row-equal {\\n padding-right: ($grid-gutter-width / 4);\\n padding-left: ($grid-gutter-width / 4);\\n margin-right: ($grid-gutter-width / -2);\\n margin-left: ($grid-gutter-width / -2);\\n\\n [class*=\\\"col-\\\"] {\\n padding-right: ($grid-gutter-width / 4);\\n padding-left: ($grid-gutter-width / 4);\\n }\\n}\\n\\n.main .container-fluid {\\n padding: 0 30px;\\n}\\n\",\".input-group-addon,\\n.input-group-btn {\\n min-width: 40px;\\n white-space: nowrap;\\n vertical-align: middle; // Match the inputs\\n}\\n\",\"// Angular Version\\n// Make clicks pass-through\\n// scss-lint:disable all\\n#loading-bar,\\n#loading-bar-spinner {\\n -webkit-pointer-events: none;\\n pointer-events: none;\\n -moz-transition: 350ms linear all;\\n -o-transition: 350ms linear all;\\n -webkit-transition: 350ms linear all;\\n transition: 350ms linear all;\\n}\\n\\n#loading-bar.ng-enter,\\n#loading-bar.ng-leave.ng-leave-active,\\n#loading-bar-spinner.ng-enter,\\n#loading-bar-spinner.ng-leave.ng-leave-active {\\n opacity: 0;\\n}\\n\\n#loading-bar.ng-enter.ng-enter-active,\\n#loading-bar.ng-leave,\\n#loading-bar-spinner.ng-enter.ng-enter-active,\\n#loading-bar-spinner.ng-leave {\\n opacity: 1;\\n}\\n\\n#loading-bar .bar {\\n position: fixed;\\n top: 0;\\n left: 0;\\n z-index: 20002;\\n width: 100%;\\n height: 2px;\\n background: theme-color(\\\"primary\\\");\\n border-top-right-radius: 1px;\\n border-bottom-right-radius: 1px;\\n -moz-transition: width 350ms;\\n -o-transition: width 350ms;\\n -webkit-transition: width 350ms;\\n transition: width 350ms;\\n}\\n\\n// Fancy blur effect\\n#loading-bar .peg {\\n position: absolute;\\n top: 0;\\n right: 0;\\n width: 70px;\\n height: 2px;\\n -moz-border-radius: 100%;\\n -webkit-border-radius: 100%;\\n border-radius: 100%;\\n -moz-box-shadow: #29d 1px 0 6px 1px;\\n -ms-box-shadow: #29d 1px 0 6px 1px;\\n -webkit-box-shadow: #29d 1px 0 6px 1px;\\n box-shadow: #29d 1px 0 6px 1px;\\n opacity: .45;\\n}\\n\\n#loading-bar-spinner {\\n position: fixed;\\n top: 10px;\\n left: 10px;\\n z-index: 10002;\\n display: block;\\n}\\n\\n#loading-bar-spinner .spinner-icon {\\n width: 14px;\\n height: 14px;\\n\\n border: solid 2px transparent;\\n border-top-color: #29d;\\n border-left-color: #29d;\\n border-radius: 50%;\\n\\n -moz-animation: loading-bar-spinner 400ms linear infinite;\\n -ms-animation: loading-bar-spinner 400ms linear infinite;\\n -o-animation: loading-bar-spinner 400ms linear infinite;\\n -webkit-animation: loading-bar-spinner 400ms linear infinite;\\n animation: loading-bar-spinner 400ms linear infinite;\\n}\\n\\n@-webkit-keyframes loading-bar-spinner {\\n 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); }\\n 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }\\n}\\n@-moz-keyframes loading-bar-spinner {\\n 0% { -moz-transform: rotate(0deg); transform: rotate(0deg); }\\n 100% { -moz-transform: rotate(360deg); transform: rotate(360deg); }\\n}\\n@-o-keyframes loading-bar-spinner {\\n 0% { -o-transform: rotate(0deg); transform: rotate(0deg); }\\n 100% { -o-transform: rotate(360deg); transform: rotate(360deg); }\\n}\\n@-ms-keyframes loading-bar-spinner {\\n 0% { -ms-transform: rotate(0deg); transform: rotate(0deg); }\\n 100% { -ms-transform: rotate(360deg); transform: rotate(360deg); }\\n}\\n@keyframes loading-bar-spinner {\\n 0% { transform: rotate(0deg); transform: rotate(0deg); }\\n 100% { transform: rotate(360deg); transform: rotate(360deg); }\\n}\\n\\n//Ajax & Static Version\\n.pace {\\n -webkit-pointer-events: none;\\n pointer-events: none;\\n\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n user-select: none;\\n}\\n\\n.pace-inactive {\\n display: none;\\n}\\n\\n.pace .pace-progress {\\n position: fixed;\\n top: 0;\\n right: 100%;\\n z-index: 2000;\\n width: 100%;\\n height: 2px;\\n background: theme-color(\\\"primary\\\");\\n}\\n\",\"@each $color, $value in $theme-colors {\\n .modal-#{$color} {\\n\\n .modal-content {\\n border-color: $value;\\n }\\n\\n .modal-header {\\n color: #fff;\\n background-color: $value;\\n }\\n }\\n}\\n\",\".nav-tabs {\\n .nav-link {\\n color: $gray-600;\\n &.active {\\n color: $gray-800;\\n background: #fff;\\n border-color: $border-color;\\n border-bottom-color: #fff;\\n &:focus {\\n background: #fff;\\n border-color: $border-color;\\n border-bottom-color: #fff;\\n }\\n }\\n }\\n}\\n\\n.tab-content {\\n margin-top: -1px;\\n background: #fff;\\n border: 1px solid $border-color;\\n .tab-pane {\\n padding: $spacer;\\n }\\n}\\n\\n.card-block {\\n .tab-content {\\n margin-top: 0;\\n border: 0;\\n }\\n}\\n\",\".app-header.navbar {\\n position: relative;\\n flex-direction: row;\\n height: $navbar-height;\\n padding: 0;\\n margin: 0;\\n background-color: $navbar-bg;\\n @include borders($navbar-border);\\n\\n .navbar-brand {\\n display: inline-block;\\n width: $navbar-brand-width;\\n height: $navbar-height;\\n padding: $navbar-padding-y $navbar-padding-x;\\n margin-right: 0;\\n background-color: $navbar-brand-bg;\\n background-image: $navbar-brand-logo;\\n background-repeat: no-repeat;\\n background-position: center center;\\n background-size: $navbar-brand-logo-size;\\n @include borders($navbar-brand-border);\\n }\\n\\n .navbar-toggler {\\n min-width: 50px;\\n padding: $navbar-toggler-padding-y 0;\\n\\n &:hover .navbar-toggler-icon {\\n background-image: $navbar-toggler-icon-hover;\\n }\\n }\\n\\n .navbar-toggler-icon {\\n height: 23px;\\n background-image: $navbar-toggler-icon;\\n }\\n\\n .navbar-nav {\\n flex-direction: row;\\n align-items: center;\\n }\\n\\n .nav-item {\\n position: relative;\\n min-width: 50px;\\n margin: 0 !important;\\n text-align: center;\\n\\n button {\\n margin: 0 auto;\\n }\\n\\n .nav-link {\\n padding-top: 0;\\n padding-bottom: 0;\\n background: 0;\\n border: 0;\\n\\n .badge {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n margin-top: -16px;\\n margin-left: 0;\\n }\\n\\n > .img-avatar {\\n height: $navbar-height - 20px;\\n margin: 0 10px;\\n }\\n }\\n }\\n\\n .dropdown-menu {\\n padding-bottom: 0;\\n line-height: $line-height-base;\\n }\\n\\n .dropdown-item {\\n min-width: 180px;\\n }\\n}\\n\\n.navbar-brand {\\n color: $navbar-active-color;\\n\\n @include hover-focus {\\n color: $navbar-active-color;\\n }\\n}\\n\\n.navbar-nav {\\n .nav-link {\\n color: $navbar-color;\\n\\n @include hover-focus {\\n color: $navbar-hover-color;\\n }\\n }\\n\\n .open > .nav-link,\\n .active > .nav-link,\\n .nav-link.open,\\n .nav-link.active {\\n @include plain-hover-focus {\\n color: $navbar-active-color;\\n }\\n }\\n}\\n\\n.navbar-divider {\\n background-color: rgba(0,0,0,.075);\\n}\\n\\n@include media-breakpoint-up(lg) {\\n .brand-minimized {\\n .app-header.navbar {\\n .navbar-brand {\\n width: $navbar-brand-minimized-width;\\n background-color: $navbar-brand-minimized-bg;\\n background-image: $navbar-brand-minimized-logo;\\n background-size: $navbar-brand-minimized-logo-size;\\n @include borders($navbar-brand-minimized-border);\\n }\\n }\\n }\\n}\\n\",\".progress-xs {\\n height: 4px;\\n}\\n\\n.progress-sm {\\n height: 8px;\\n}\\n\\n// White progress bar\\n.progress-white {\\n background-color: rgba(255,255,255,.2) !important;\\n .progress-bar {\\n background-color: #fff;\\n }\\n}\\n\",\"// scss-lint:disable NestingDepth, SelectorDepth\\n.sidebar {\\n display: flex;\\n flex-direction: column;\\n padding: $sidebar-padding;\\n color: $sidebar-color;\\n background: $sidebar-bg;\\n @include borders($sidebar-borders);\\n\\n .sidebar-close {\\n position: absolute;\\n right: 0;\\n display: none;\\n padding: 0 $spacer;\\n font-size: 24px;\\n font-weight: 800;\\n line-height: $navbar-height;\\n color: $sidebar-color;\\n background: 0;\\n border: 0;\\n opacity: .8;\\n\\n &:hover {\\n opacity: 1;\\n }\\n }\\n\\n // Will be added soon\\n // .sidebar-brand { }\\n\\n .sidebar-header {\\n flex: 0 0 $sidebar-header-height;\\n padding: $sidebar-header-padding-y $sidebar-header-padding-x;\\n text-align: center;\\n background: $sidebar-header-bg;\\n }\\n\\n .sidebar-form .form-control {\\n color: $sidebar-form-color;\\n background: $sidebar-form-bg;\\n border: $sidebar-form-border;\\n\\n &::placeholder {\\n color: $sidebar-form-placeholder-color;\\n }\\n }\\n\\n .sidebar-nav {\\n position: relative;\\n flex: 1;\\n overflow-x: hidden;\\n overflow-y: auto;\\n -ms-overflow-style: -ms-autohiding-scrollbar;\\n @include sidebar-width($sidebar-borders, $sidebar-width);\\n\\n &::-webkit-scrollbar {\\n position: absolute;\\n width: 10px;\\n margin-left: -10px;\\n -webkit-appearance: none;\\n }\\n\\n &::-webkit-scrollbar-track {\\n background-color: lighten($sidebar-bg, 5%);\\n border-right: 1px solid darken($sidebar-bg, 5%);\\n border-left: 1px solid darken($sidebar-bg, 5%);\\n }\\n\\n &::-webkit-scrollbar-thumb {\\n height: 50px;\\n background-color: darken($sidebar-bg, 10%);\\n background-clip: content-box;\\n border-color: transparent;\\n border-style: solid;\\n border-width: 1px 2px;\\n }\\n }\\n\\n .nav {\\n @include sidebar-width($sidebar-borders, $sidebar-width);\\n flex-direction: column;\\n min-height: 100%;\\n }\\n\\n .nav-title {\\n padding: $sidebar-nav-title-padding-y $sidebar-nav-title-padding-x;\\n font-size: 11px;\\n font-weight: 600;\\n color: $sidebar-nav-title-color;\\n text-transform: uppercase;\\n }\\n\\n .nav-divider, .divider {\\n height: 10px;\\n }\\n\\n .nav-item {\\n position: relative;\\n margin: 0;\\n transition: background .3s ease-in-out;\\n }\\n\\n .nav-dropdown-items {\\n max-height: 0;\\n padding: 0;\\n margin: 0;\\n overflow-y: hidden;\\n transition: max-height .3s ease-in-out;\\n\\n .nav-item {\\n padding: 0;\\n list-style: none;\\n }\\n }\\n\\n .nav-link {\\n display: block;\\n padding: $sidebar-nav-link-padding-y $sidebar-nav-link-padding-x;\\n color: $sidebar-nav-link-color;\\n text-decoration: none;\\n background: $sidebar-nav-link-bg;\\n @include borders($sidebar-nav-link-borders);\\n @if $enable-sidebar-nav-rounded {\\n border-radius: $border-radius;\\n }\\n\\n i {\\n display: inline-block;\\n width: 20px;\\n margin: 0 ($sidebar-nav-link-padding-x / 2) 0 0;\\n font-size: 14px;\\n color: $sidebar-nav-link-icon-color;\\n text-align: center;\\n }\\n\\n .badge {\\n float: right;\\n margin-top: 2px;\\n }\\n\\n &.active {\\n color: $sidebar-nav-link-active-color;\\n background: $sidebar-nav-link-active-bg;\\n @include borders($sidebar-nav-link-active-borders);\\n\\n i {\\n color: $sidebar-nav-link-active-icon-color;\\n }\\n }\\n\\n &:hover {\\n color: $sidebar-nav-link-hover-color;\\n background: $sidebar-nav-link-hover-bg;\\n @include borders($sidebar-nav-link-hover-borders);\\n\\n i {\\n color: $sidebar-nav-link-hover-icon-color;\\n }\\n\\n &.nav-dropdown-toggle::before {\\n background-image: $sidebar-nav-dropdown-indicator-hover;\\n }\\n }\\n\\n @each $color, $value in $theme-colors {\\n &.nav-link-#{$color} {\\n background: $value;\\n i {\\n color: rgba(255,255,255,.7);\\n }\\n &:hover {\\n background: darken($value,5%) !important;\\n i {\\n color: #fff;\\n }\\n }\\n }\\n }\\n }\\n\\n // ex. <a class=\\\"nav-link nav-dropdown-toggle\\\" href=\\\"#\\\">Components</a>\\n .nav-dropdown-toggle {\\n position: relative;\\n\\n &::before {\\n position: absolute;\\n top: 50%;\\n right: $sidebar-nav-link-padding-x;\\n display: block;\\n width: 8px;\\n height: 8px;\\n padding: 0;\\n margin-top: -4px;\\n content: \\\"\\\";\\n background-image: $sidebar-nav-dropdown-indicator;\\n background-repeat: no-repeat;\\n background-position: center;\\n transition: transform .3s;\\n }\\n }\\n\\n // ex. <li class=\\\"nav-item nav-dropdown\\\">\\n .nav-dropdown.open {\\n background: $sidebar-nav-dropdown-bg;\\n @include borders($sidebar-nav-dropdown-borders);\\n @if $enable-sidebar-nav-rounded {\\n border-radius: $border-radius;\\n }\\n > .nav-dropdown-items {\\n max-height: 1000px;\\n }\\n\\n .nav-link {\\n color: $sidebar-nav-dropdown-color;\\n border-left: 0 !important;\\n }\\n\\n > .nav-link.nav-dropdown-toggle::before {\\n transform: rotate(-90deg);\\n }\\n\\n .nav-dropdown.open {\\n border-left: 0;\\n }\\n }\\n\\n .nav-label {\\n display: block;\\n padding: ($sidebar-nav-link-padding-y / 8) $sidebar-nav-link-padding-x;\\n color: $sidebar-nav-title-color;\\n\\n &:hover {\\n color: $sidebar-color;\\n text-decoration: none;\\n }\\n\\n i {\\n width: 20px;\\n margin: -3px ($sidebar-nav-link-padding-x / 2) 0 0;\\n font-size: 10px;\\n color: $sidebar-nav-link-icon-color;\\n text-align: center;\\n vertical-align: middle;\\n }\\n }\\n\\n @if (lightness( $sidebar-bg ) < 40) {\\n .progress {\\n background-color: lighten($sidebar-bg, 15%) !important;\\n }\\n }\\n\\n .sidebar-footer {\\n flex: 0 0 $sidebar-footer-height;\\n padding: $sidebar-footer-padding-y $sidebar-footer-padding-x;\\n background: $sidebar-footer-bg;\\n @include borders($sidebar-footer-borders);\\n }\\n\\n .sidebar-minimizer {\\n position: relative;\\n flex: 0 0 $sidebar-minimizer-height;\\n background-color: $sidebar-minimizer-bg;\\n border: 0;\\n @include borders($sidebar-minimizer-borders);\\n\\n &::before {\\n position: absolute;\\n top: 0;\\n right: 0;\\n width: $sidebar-minimizer-height;\\n height: $sidebar-minimizer-height;\\n content: \\\"\\\";\\n background-image: $sidebar-minimizer-indicator;\\n background-repeat: no-repeat;\\n background-position: center;\\n background-size: $sidebar-minimizer-height / 4;\\n transition: .3s;\\n }\\n\\n &:focus,\\n &.focus {\\n outline: 0;\\n }\\n\\n &:hover {\\n background-color: $sidebar-minimizer-hover-bg;\\n &::before {\\n background-image: $sidebar-minimizer-hover-indicator;\\n }\\n }\\n }\\n}\\n\\n@include media-breakpoint-up(lg) {\\n .sidebar-compact {\\n .sidebar {\\n .sidebar-nav {\\n @include sidebar-width($sidebar-borders, $sidebar-compact-width);\\n }\\n\\n .nav {\\n @include sidebar-width($sidebar-borders, $sidebar-compact-width);\\n\\n .nav-title {\\n text-align: center;\\n }\\n\\n .nav-item {\\n width: $sidebar-compact-width;\\n border-left: 0 !important;\\n\\n .nav-link {\\n text-align: center;\\n\\n i {\\n display: block;\\n width: 100%;\\n margin: $spacer / 4 0;\\n font-size: 24px;\\n }\\n\\n .badge {\\n position: absolute;\\n top: 18px;\\n right: 10px;\\n }\\n\\n &.nav-dropdown-toggle {\\n\\n &::before {\\n top: 30px;\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n\\n // Minimized Sidebar\\n .sidebar-minimized {\\n .hidden-cn {\\n display: none;\\n }\\n .sidebar {\\n z-index: $zindex-sticky - 1;\\n\\n .sidebar-nav {\\n overflow: visible;\\n @include sidebar-width($sidebar-borders, $sidebar-minimized-width);\\n }\\n\\n .nav {\\n @include sidebar-width($sidebar-borders, $sidebar-minimized-width);\\n }\\n\\n .nav-divider, .divider,\\n .nav-title,\\n .sidebar-footer,\\n .sidebar-form,\\n .sidebar-header {\\n display: none;\\n }\\n\\n .sidebar-minimizer::before {\\n width: 100%;\\n transform: rotate(-180deg);\\n }\\n\\n .nav-item {\\n width: $sidebar-minimized-width;\\n overflow: hidden;\\n border-left: 0 !important;\\n\\n &:hover {\\n width: $sidebar-width + $sidebar-minimized-width;\\n overflow: visible;\\n\\n > .nav-link {\\n background: $sidebar-nav-link-hover-bg;\\n\\n i {\\n color: $sidebar-nav-link-hover-color;\\n }\\n }\\n }\\n }\\n\\n .nav-link {\\n position: relative;\\n padding-left: 0;\\n margin: 0;\\n white-space: nowrap;\\n border-left: 0 !important;\\n\\n i {\\n display: block;\\n float: left;\\n width: $sidebar-minimized-height;\\n // padding: 0;\\n // margin: 0 !important;\\n font-size: 18px;\\n }\\n\\n .badge {\\n position: absolute;\\n right: 15px;\\n display: none;\\n }\\n\\n &:hover {\\n width: $sidebar-width + $sidebar-minimized-width;\\n background: $sidebar-nav-link-hover-bg;\\n\\n .badge {\\n display: inline;\\n }\\n }\\n\\n &.nav-dropdown-toggle::before {\\n display: none;\\n }\\n }\\n\\n .nav-dropdown-items {\\n .nav-item {\\n width: $sidebar-width;\\n\\n .nav-link {\\n width: $sidebar-width;\\n }\\n }\\n }\\n\\n .nav > .nav-dropdown {\\n > .nav-dropdown-items {\\n display: none;\\n max-height: 1000px;\\n background: $sidebar-bg;\\n }\\n\\n &:hover {\\n background: $sidebar-nav-link-hover-bg;\\n > .nav-dropdown-items {\\n position: absolute;\\n left: $sidebar-minimized-width;\\n display: inline;\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"@mixin switch-size($width, $height, $font-size, $handle-margin) {\\n width: $width;\\n height: $height;\\n\\n .switch-label {\\n font-size: $font-size;\\n }\\n\\n .switch-handle {\\n width: $height - $handle-margin * 2;\\n height: $height - $handle-margin * 2;\\n }\\n\\n .switch-input:checked ~ .switch-handle {\\n left: $width - $height + $handle-margin;\\n }\\n}\\n\\n@mixin switch($type, $width, $height, $font-size, $handle-margin) {\\n position: relative;\\n display: inline-block;\\n vertical-align: top;\\n width: $width;\\n height: $height;\\n background-color: transparent;\\n cursor: pointer;\\n\\n .switch-input {\\n position: absolute;\\n top: 0;\\n left: 0;\\n opacity: 0;\\n }\\n\\n .switch-label {\\n position: relative;\\n display: block;\\n height: inherit;\\n @if $type == icon {\\n font-family: FontAwesome;\\n }\\n font-size: $font-size;\\n font-weight: 600;\\n text-transform: uppercase;\\n @if $type == ddd {\\n background-color: $gray-100;\\n } @else {\\n background-color: #fff;\\n }\\n border: 1px solid $border-color;\\n border-radius: 2px;\\n transition: opacity background .15s ease-out;\\n }\\n @if $type == text or $type == icon {\\n .switch-label::before,\\n .switch-label::after {\\n position: absolute;\\n top: 50%;\\n width: 50%;\\n margin-top: -.5em;\\n line-height: 1;\\n text-align: center;\\n transition: inherit;\\n }\\n .switch-label::before {\\n right: 1px;\\n color: $gray-200;\\n content: attr(data-off);\\n }\\n .switch-label::after {\\n left: 1px;\\n color: #fff;\\n content: attr(data-on);\\n opacity: 0;\\n }\\n }\\n .switch-input:checked ~ .switch-label {\\n //background: $gray-lightest;\\n }\\n .switch-input:checked ~ .switch-label::before {\\n opacity: 0;\\n }\\n .switch-input:checked ~ .switch-label::after {\\n opacity: 1;\\n }\\n\\n .switch-handle {\\n position: absolute;\\n top: $handle-margin;\\n left: $handle-margin;\\n width: $height - $handle-margin * 2;\\n height: $height - $handle-margin * 2;\\n background: #fff;\\n border: 1px solid $border-color;\\n border-radius: 1px;\\n transition: left .15s ease-out;\\n @if $type == ddd {\\n border: 0;\\n box-shadow: 0 2px 5px rgba(0, 0, 0, .3);\\n }\\n }\\n\\n .switch-input:checked ~ .switch-handle {\\n left: $width - $height + $handle-margin;\\n }\\n\\n\\n @if $type == ddd {\\n @extend .switch-pill;\\n }\\n\\n //size variations\\n @if $type == default {\\n\\n &.switch-lg {\\n @include switch-size($switch-lg-width, $switch-lg-height, $switch-lg-font-size, $handle-margin);\\n }\\n &.switch-sm {\\n @include switch-size($switch-sm-width, $switch-sm-height, $switch-sm-font-size, $handle-margin);\\n }\\n &.switch-xs {\\n @include switch-size($switch-xs-width, $switch-xs-height, $switch-xs-font-size, $handle-margin);\\n }\\n\\n } @else if $type == text {\\n\\n &.switch-lg {\\n @include switch-size($switch-text-lg-width, $switch-text-lg-height, $switch-text-lg-font-size, $handle-margin);\\n }\\n &.switch-sm {\\n @include switch-size($switch-text-sm-width, $switch-text-sm-height, $switch-text-sm-font-size, $handle-margin);\\n }\\n &.switch-xs {\\n @include switch-size($switch-text-xs-width, $switch-text-xs-height, $switch-text-xs-font-size, $handle-margin);\\n }\\n\\n } @else if $type == icon {\\n\\n &.switch-lg {\\n @include switch-size($switch-icon-lg-width, $switch-icon-lg-height, $switch-icon-lg-font-size, $handle-margin);\\n }\\n &.switch-sm {\\n @include switch-size($switch-icon-sm-width, $switch-icon-sm-height, $switch-icon-sm-font-size, $handle-margin);\\n }\\n &.switch-xs {\\n @include switch-size($switch-icon-xs-width, $switch-icon-xs-height, $switch-icon-xs-font-size, $handle-margin);\\n }\\n\\n } @else if $type == ddd {\\n\\n &.switch-lg {\\n @include switch-size($switch-lg-width, $switch-lg-height, $switch-lg-font-size, 0);\\n }\\n &.switch-sm {\\n @include switch-size($switch-sm-width, $switch-sm-height, $switch-sm-font-size, 0);\\n }\\n &.switch-xs {\\n @include switch-size($switch-xs-width, $switch-xs-height, $switch-xs-font-size, 0);\\n }\\n }\\n}\\n\\n@mixin switch-variant($color) {\\n > .switch-input:checked ~ .switch-label {\\n background: $color !important;\\n border-color: darken($color,10%);\\n }\\n\\n > .switch-input:checked ~ .switch-handle {\\n border-color: darken($color,10%);\\n }\\n}\\n\\n@mixin switch-outline-variant($color) {\\n > .switch-input:checked ~ .switch-label {\\n background: #fff !important;\\n border-color: $color;\\n\\n &::after {\\n color: $color;\\n }\\n }\\n\\n > .switch-input:checked ~ .switch-handle {\\n border-color: $color;\\n }\\n}\\n\\n@mixin switch-outline-alt-variant($color) {\\n > .switch-input:checked ~ .switch-label {\\n background: #fff !important;\\n border-color: $color;\\n\\n &::after {\\n color: $color;\\n }\\n }\\n\\n > .switch-input:checked ~ .switch-handle {\\n background: $color !important;\\n border-color: $color;\\n }\\n}\\n\\n$switch-lg-width: 48px;\\n$switch-lg-height: 28px;\\n$switch-lg-font-size: 12px;\\n\\n$switch-width: 40px;\\n$switch-height: 24px;\\n$switch-font-size: 10px;\\n\\n$handle-margin: 2px;\\n\\n$switch-sm-width: 32px;\\n$switch-sm-height: 20px;\\n$switch-sm-font-size: 8px;\\n\\n$switch-xs-width: 24px;\\n$switch-xs-height: 16px;\\n$switch-xs-font-size: 7px;\\n\\n\\n$switch-text-lg-width: 56px;\\n$switch-text-lg-height: 28px;\\n$switch-text-lg-font-size: 12px;\\n\\n$switch-text-width: 48px;\\n$switch-text-height: 24px;\\n$switch-text-font-size: 10px;\\n\\n$switch-text-sm-width: 40px;\\n$switch-text-sm-height: 20px;\\n$switch-text-sm-font-size: 8px;\\n\\n$switch-text-xs-width: 32px;\\n$switch-text-xs-height: 16px;\\n$switch-text-xs-font-size: 7px;\\n\\n\\n$switch-icon-lg-width: 56px;\\n$switch-icon-lg-height: 28px;\\n$switch-icon-lg-font-size: 12px;\\n\\n$switch-icon-width: 48px;\\n$switch-icon-height: 24px;\\n$switch-icon-font-size: 10px;\\n\\n$switch-icon-sm-width: 40px;\\n$switch-icon-sm-height: 20px;\\n$switch-icon-sm-font-size: 8px;\\n\\n$switch-icon-xs-width: 32px;\\n$switch-icon-xs-height: 16px;\\n$switch-icon-xs-font-size: 7px;\\n\\n.switch.switch-default {\\n @include switch('default', $switch-width, $switch-height, $switch-font-size, $handle-margin);\\n}\\n\\n.switch.switch-text {\\n @include switch('text', $switch-text-width, $switch-text-height, $switch-text-font-size, $handle-margin);\\n}\\n\\n.switch.switch-icon {\\n @include switch('icon', $switch-icon-width, $switch-icon-height, $switch-icon-font-size, $handle-margin);\\n}\\n\\n.switch.switch-3d {\\n @include switch('ddd', $switch-width, $switch-height, $switch-font-size, 0);\\n}\\n\\n//pills style\\n.switch-pill {\\n .switch-label,\\n .switch-handle {\\n border-radius: 50em !important;\\n }\\n\\n .switch-label::before {\\n right: 2px !important;\\n }\\n .switch-label::after {\\n left: 2px !important;\\n }\\n}\\n\\n@each $color, $value in $theme-colors {\\n //normal style\\n .switch-#{$color} {\\n @include switch-variant($value);\\n }\\n //outline style\\n .switch-#{$color}-outline {\\n @include switch-outline-variant($value);\\n }\\n //outline alternative style\\n .switch-#{$color}-outline-alt {\\n @include switch-outline-alt-variant($value);\\n }\\n}\\n\",\".table-outline {\\n border: 1px solid $table-border-color;\\n\\n td {\\n vertical-align: middle;\\n }\\n}\\n\\n.table-align-middle {\\n\\n td {\\n vertical-align: middle;\\n }\\n}\\n\\n.table-clear {\\n td {\\n border: 0;\\n }\\n}\\n\",\"// .social-box\\n.social-box {\\n min-height: 160px;\\n margin-bottom: 2 * $card-spacer-y;\\n text-align: center;\\n background: #fff;\\n border: $card-border-width solid $card-border-color;\\n @include border-radius($card-border-radius);\\n\\n i {\\n display: block;\\n margin: -1px -1px 0;\\n font-size: 40px;\\n line-height: 90px;\\n background: $gray-200;\\n\\n @include border-radius($card-border-radius $card-border-radius 0 0);\\n }\\n\\n .chart-wrapper {\\n height: 90px;\\n margin: -90px 0 0;\\n\\n canvas {\\n width: 100% !important;\\n height: 90px !important;\\n }\\n }\\n\\n ul {\\n padding: 10px 0;\\n list-style: none;\\n\\n\\n li {\\n display: block;\\n float: left;\\n width: 50%;\\n\\n &:first-child {\\n border-right: 1px solid $border-color;\\n }\\n\\n strong {\\n display: block;\\n font-size: 20px;\\n }\\n\\n span {\\n font-size: 10px;\\n font-weight: 500;\\n color: $border-color;\\n text-transform: uppercase;\\n }\\n }\\n }\\n\\n &.facebook {\\n i {\\n color: #fff;\\n background: $facebook;\\n }\\n }\\n\\n &.twitter {\\n i {\\n color: #fff;\\n background: $twitter;\\n }\\n }\\n\\n &.linkedin {\\n i {\\n color: #fff;\\n background: $linkedin;\\n }\\n }\\n\\n &.google-plus {\\n i {\\n color: #fff;\\n background: $google-plus;\\n }\\n }\\n}\\n\\n.horizontal-bars {\\n padding: 0;\\n margin: 0;\\n list-style: none;\\n\\n li {\\n position: relative;\\n height: 40px;\\n line-height: 40px;\\n vertical-align: middle;\\n\\n .title {\\n width: 100px;\\n font-size: 12px;\\n font-weight: 600;\\n color: $text-muted;\\n vertical-align: middle;\\n }\\n\\n .bars {\\n position: absolute;\\n top: 15px;\\n width: 100%;\\n padding-left: 100px;\\n\\n .progress:first-child {\\n margin-bottom: 2px;\\n }\\n }\\n\\n &.legend {\\n text-align: center;\\n\\n .badge {\\n display: inline-block;\\n width: 8px;\\n height: 8px;\\n padding: 0;\\n }\\n }\\n\\n &.divider {\\n height: 40px;\\n\\n i {\\n margin: 0 !important;\\n }\\n }\\n }\\n\\n &.type-2 {\\n\\n li {\\n overflow: hidden;\\n\\n i {\\n display: inline-block;\\n margin-right: $spacer;\\n margin-left: 5px;\\n font-size: 18px;\\n line-height: 40px;\\n }\\n\\n .title {\\n display: inline-block;\\n width: auto;\\n margin-top: -9px;\\n font-size: $font-size-base;\\n font-weight: normal;\\n line-height: 40px;\\n color: $body-color;\\n }\\n\\n .value {\\n float: right;\\n font-weight: 600;\\n }\\n\\n .bars {\\n position: absolute;\\n top: auto;\\n bottom: 0;\\n padding: 0;\\n }\\n }\\n }\\n}\\n\\n.icons-list {\\n padding: 0;\\n margin: 0;\\n list-style: none;\\n\\n li {\\n position: relative;\\n height: 40px;\\n vertical-align: middle;\\n\\n i {\\n display: block;\\n float: left;\\n width: 35px !important;\\n height: 35px !important;\\n margin: 2px;\\n line-height: 35px !important;\\n text-align: center;\\n }\\n\\n .desc {\\n height: 40px;\\n margin-left: 50px;\\n border-bottom: 1px solid $border-color;\\n\\n .title {\\n padding: 2px 0 0;\\n margin: 0;\\n }\\n small {\\n display: block;\\n margin-top: -4px;\\n color: $text-muted;\\n }\\n }\\n\\n .value {\\n position: absolute;\\n top: 2px;\\n right: 45px;\\n text-align: right;\\n\\n strong {\\n display: block;\\n margin-top: -3px;\\n }\\n }\\n\\n .actions {\\n position: absolute;\\n top: -4px;\\n right: 10px;\\n width: 40px;\\n height: 40px;\\n line-height: 40px;\\n text-align: center;\\n\\n i {\\n float: none;\\n width: auto;\\n height: auto;\\n padding: 0;\\n margin: 0;\\n line-height: normal;\\n }\\n }\\n\\n &.divider {\\n height: 40px;\\n\\n i {\\n width: auto;\\n height: auto;\\n margin: 2px 0 0;\\n font-size: 18px;\\n }\\n }\\n }\\n}\\n\",\"// IE10&11 Flexbox fix\\n@media all and (-ms-high-contrast:none) {\\n html {\\n display: flex;\\n flex-direction: column;\\n }\\n}\\n\\n// app-dashboard and app-root are Angular2+ selectors. You can add here your own selectors if you need.\\n.app,\\napp-dashboard,\\napp-root {\\n display: flex;\\n flex-direction: column;\\n min-height: 100vh;\\n}\\n\\n.app-header {\\n flex: 0 0 $navbar-height;\\n}\\n\\n.app-footer {\\n flex: 0 0 $footer-height;\\n}\\n\\n.app-body {\\n display: flex;\\n flex-direction: row;\\n flex-grow: 1;\\n overflow-x: hidden;\\n\\n .main {\\n flex: 1;\\n min-width: 0;\\n }\\n\\n .sidebar {\\n // $sidebar-width is the width of the columns\\n flex: 0 0 $sidebar-width;\\n // put the nav on the left\\n order: -1;\\n }\\n\\n .aside-menu {\\n // $aside-menu-width is the width of the columns\\n flex: 0 0 $aside-menu-width;\\n }\\n}\\n\\n//\\n// header\\n//\\n.header-fixed {\\n .app-header {\\n position: fixed;\\n z-index: $zindex-sticky;\\n width: 100%;\\n }\\n .app-body {\\n margin-top: $navbar-height;\\n }\\n}\\n\\n//\\n// Sidebar\\n//\\n.sidebar-hidden {\\n .sidebar {\\n margin-left: - $sidebar-width;\\n }\\n}\\n\\n.sidebar-fixed {\\n .sidebar {\\n position: fixed;\\n z-index: $zindex-sticky - 1;\\n width: $sidebar-width;\\n height: calc(100vh - #{$navbar-height});\\n // margin-top: - $navbar-height;\\n\\n // .sidebar-nav {\\n // height: calc(100vh - #{$navbar-height});\\n // }\\n }\\n\\n .main, .app-footer {\\n margin-left: $sidebar-width;\\n }\\n\\n &.sidebar-hidden {\\n .main, .app-footer {\\n margin-left: 0;\\n }\\n }\\n}\\n\\n.sidebar-off-canvas {\\n .sidebar {\\n position: fixed;\\n z-index: $zindex-sticky - 1;\\n height: calc(100vh - #{$navbar-height});\\n }\\n}\\n\\n@include media-breakpoint-up(lg) {\\n .sidebar-compact {\\n .sidebar {\\n flex: 0 0 $sidebar-compact-width;\\n }\\n\\n &.sidebar-hidden {\\n .sidebar {\\n margin-left: - $sidebar-compact-width;\\n }\\n }\\n\\n &.sidebar-fixed {\\n .main, .app-footer {\\n margin-left: $sidebar-compact-width;\\n }\\n\\n .sidebar {\\n width: $sidebar-compact-width;\\n }\\n\\n &.sidebar-hidden {\\n .main, .app-footer {\\n margin-left: 0;\\n }\\n }\\n }\\n }\\n\\n .sidebar-minimized {\\n .sidebar {\\n flex: 0 0 $sidebar-minimized-width;\\n }\\n\\n &.sidebar-hidden {\\n .sidebar {\\n margin-left: - $sidebar-minimized-width;\\n }\\n }\\n\\n &.sidebar-fixed {\\n .main, .app-footer {\\n margin-left: $sidebar-minimized-width;\\n }\\n\\n .sidebar {\\n width: $sidebar-minimized-width;\\n }\\n\\n &.sidebar-hidden {\\n .main, .app-footer {\\n margin-left: 0;\\n }\\n }\\n }\\n }\\n}\\n\\n//\\n// Aside Menu\\n//\\n.aside-menu-hidden {\\n .aside-menu {\\n margin-right: - $aside-menu-width;\\n }\\n}\\n\\n.aside-menu-fixed {\\n .aside-menu {\\n position: fixed;\\n right: 0;\\n height: 100%;\\n\\n .tab-content {\\n height: calc(100vh - #{$aside-menu-nav-padding-y * 2 + $font-size-base} - #{$navbar-height});\\n }\\n }\\n\\n .main, .app-footer {\\n margin-right: $aside-menu-width;\\n }\\n\\n &.aside-menu-hidden {\\n .main, .app-footer {\\n margin-right: 0;\\n }\\n }\\n}\\n\\n.aside-menu-off-canvas {\\n .aside-menu {\\n position: fixed;\\n right: 0;\\n z-index: $zindex-sticky - 1;\\n height: 100%;\\n\\n .tab-content {\\n height: calc(100vh - #{$aside-menu-nav-padding-y * 2 + $font-size-base} - #{$navbar-height});\\n }\\n }\\n}\\n\\n//\\n// Breadcrumb\\n//\\n.breadcrumb-fixed {\\n .main {\\n $breadcrumb-height: 2 * $breadcrumb-padding-y + $font-size-base + 1.5 * $spacer;\\n padding-top: $breadcrumb-height;\\n }\\n\\n .breadcrumb {\\n position: fixed;\\n top: $navbar-height;\\n right: 0;\\n left: 0;\\n z-index: $zindex-sticky - 2;\\n }\\n\\n // if sidebar + main + aside\\n .main:nth-child(2) {\\n .breadcrumb {\\n right: $aside-menu-width;\\n left: $sidebar-width;\\n }\\n }\\n\\n // if sidebar + main\\n .main:first-child {\\n .breadcrumb {\\n right: $aside-menu-width;\\n left: 0;\\n }\\n }\\n\\n // if main + aside\\n .main:last-child {\\n .breadcrumb {\\n right: 0;\\n }\\n }\\n\\n &.sidebar-minimized {\\n .main .breadcrumb {\\n left: $sidebar-minimized-width;\\n }\\n }\\n\\n &.sidebar-hidden, &.sidebar-off-canvas {\\n .main .breadcrumb {\\n left: 0;\\n }\\n }\\n\\n &.aside-menu-hidden, &.aside-menu-off-canvas {\\n .main .breadcrumb {\\n right: 0;\\n }\\n }\\n}\\n\\n//\\n// Footer\\n//\\n.footer-fixed {\\n .app-footer {\\n position: fixed;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: $zindex-sticky;\\n height: $footer-height;\\n }\\n\\n .app-body {\\n margin-bottom: $footer-height;\\n }\\n}\\n\\n//\\n// Animations\\n//\\n.app-header,\\n.app-footer,\\n.sidebar,\\n.main,\\n.aside-menu {\\n transition: margin-left $layout-transition-speed, margin-right $layout-transition-speed, width $layout-transition-speed, flex $layout-transition-speed;\\n}\\n.sidebar-nav {\\n transition: width $layout-transition-speed;\\n}\\n.breadcrumb {\\n transition: left $layout-transition-speed, right $layout-transition-speed, width $layout-transition-speed;\\n}\\n\\n//\\n// Mobile layout\\n//\\n\\n@include media-breakpoint-down(md) {\\n .app-header.navbar {\\n position: fixed !important;\\n z-index: $zindex-sticky;\\n width: 100%;\\n text-align: center;\\n background-color: $navbar-brand-bg;\\n @include borders($navbar-brand-border);\\n\\n .navbar-toggler {\\n @if (lightness( $navbar-brand-bg ) > 40) {\\n color: $navbar-color;\\n } @else {\\n color: #fff;\\n }\\n }\\n\\n .navbar-brand {\\n position: absolute;\\n left: 50%;\\n margin-left: - ($navbar-brand-width / 2);\\n }\\n }\\n\\n .app-body {\\n margin-top: $navbar-height;\\n }\\n\\n .breadcrumb-fixed {\\n .main:nth-child(2) .breadcrumb {\\n right: auto;\\n left: auto;\\n width: 100%;\\n }\\n }\\n\\n .sidebar {\\n position: fixed;\\n z-index: $zindex-sticky - 1;\\n width: $mobile-sidebar-width;\\n height: calc(100vh - #{$navbar-height});\\n margin-left: - $mobile-sidebar-width;\\n\\n .sidebar-nav,\\n .nav {\\n width: $mobile-sidebar-width;\\n min-height: calc(100vh - #{$navbar-height});\\n }\\n\\n .sidebar-minimizer {\\n display: none;\\n }\\n }\\n\\n .main, .app-footer {\\n margin-left: 0 !important;\\n }\\n\\n // .aside-menu {\\n // margin-right: - $aside-menu-width;\\n // }\\n\\n .sidebar-hidden {\\n .sidebar {\\n margin-left: - $mobile-sidebar-width;\\n }\\n }\\n\\n .sidebar-mobile-show {\\n .sidebar {\\n width: $mobile-sidebar-width;\\n margin-left: 0;\\n }\\n\\n .main {\\n margin-right: - $mobile-sidebar-width !important;\\n margin-left: $mobile-sidebar-width !important;\\n }\\n }\\n}\\n\",\"// scss-lint:disable QualifyingElement\\nhr.transparent {\\n border-top: 1px solid transparent;\\n}\\n\",\".bg-primary,\\n.bg-success,\\n.bg-info,\\n.bg-warning,\\n.bg-danger,\\n.bg-inverse {\\n color: #fff;\\n}\\n\",\"//border\\n@each $prop, $abbrev in (border: b) {\\n @each $size in (0,1,2) {\\n @if $size == 0 {\\n .#{$abbrev}-a-#{$size} { #{$prop}: 0 !important; } // a = All sides\\n .#{$abbrev}-t-#{$size} { #{$prop}-top: 0 !important; }\\n .#{$abbrev}-r-#{$size} { #{$prop}-right: 0 !important; }\\n .#{$abbrev}-b-#{$size} { #{$prop}-bottom: 0 !important; }\\n .#{$abbrev}-l-#{$size} { #{$prop}-left: 0 !important; }\\n } @else {\\n .#{$abbrev}-a-#{$size} { #{$prop}: $size * $border-width solid $border-color !important; } // a = All sides\\n .#{$abbrev}-t-#{$size} { #{$prop}-top: $size * $border-width solid $border-color !important; }\\n .#{$abbrev}-r-#{$size} { #{$prop}-right: $size * $border-width solid $border-color !important; }\\n .#{$abbrev}-b-#{$size} { #{$prop}-bottom: $size * $border-width solid $border-color !important; }\\n .#{$abbrev}-l-#{$size} { #{$prop}-left: $size * $border-width solid $border-color !important; }\\n }\\n }\\n}\\n\",\"//\\n// Utilities for common `display` values\\n//\\n\\n@each $breakpoint in map-keys($grid-breakpoints) {\\n @include media-breakpoint-down($breakpoint) {\\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\\n\\n .d#{$infix}-down-none { display: none !important; }\\n // .d#{$infix}-inline { display: inline !important; }\\n // .d#{$infix}-inline-block { display: inline-block !important; }\\n // .d#{$infix}-block { display: block !important; }\\n // .d#{$infix}-table { display: table !important; }\\n // .d#{$infix}-table-cell { display: table-cell !important; }\\n // .d#{$infix}-flex { display: flex !important; }\\n // .d#{$infix}-inline-flex { display: inline-flex !important; }\\n }\\n}\\n\",\".pagination-datatables, .pagination {\\n li {\\n @extend .page-item;\\n\\n a {\\n @extend .page-link;\\n }\\n }\\n}\\n\\n.label-pill {\\n border-radius: 1rem !important;\\n}\\n\\n// temp fix for Vue & React\\n\\n// Open state for the dropdown\\n.open, .show {\\n // Remove the outline when :focus is triggered\\n > a {\\n outline: 0;\\n }\\n}\\n\\n// navbar dropdown fix\\n.navbar .dropdown-toggle {\\n @extend .nav-link;\\n\\n .img-avatar {\\n height: $navbar-height - 20px;\\n margin: 0 10px;\\n }\\n}\\n\\n.card-block {\\n @extend .card-body;\\n}\\n\",\"//\\n// RTL Support\\n//\\n// scss-lint:disable NestingDepth, SelectorDepth\\n*[dir=\\\"rtl\\\"] {\\n direction: rtl;\\n unicode-bidi: embed;\\n\\n ul {\\n -webkit-padding-start: 0;\\n }\\n\\n table tr th {\\n text-align: right;\\n }\\n\\n // Breadcrumb\\n\\n .breadcrumb-item {\\n float: right;\\n }\\n\\n .breadcrumb-menu {\\n right: auto;\\n left: $breadcrumb-padding-x;\\n }\\n\\n // Dropdown\\n .dropdown-item {\\n text-align: right;\\n\\n i {\\n margin-right: -10px;\\n margin-left: 10px;\\n }\\n\\n .badge {\\n right: auto;\\n left: 10px;\\n }\\n }\\n\\n //\\n // Sidebar\\n //\\n .sidebar-hidden {\\n .sidebar {\\n margin-right: - $sidebar-width;\\n }\\n }\\n\\n .sidebar-fixed {\\n .main, .app-footer {\\n margin-right: $sidebar-width;\\n }\\n\\n &.sidebar-hidden {\\n .main, .app-footer {\\n margin-right: 0;\\n }\\n }\\n }\\n\\n .sidebar-minimized {\\n .sidebar {\\n flex: 0 0 $sidebar-minimized-width;\\n }\\n\\n &.sidebar-hidden {\\n .sidebar {\\n margin-right: - $sidebar-minimized-width;\\n margin-left: 0;\\n }\\n }\\n\\n &.sidebar-fixed {\\n .main, .app-footer {\\n margin-right: $sidebar-minimized-width;\\n }\\n\\n &.sidebar-hidden {\\n .main, .app-footer {\\n margin-left: 0;\\n }\\n }\\n }\\n }\\n\\n //\\n // Aside Menu\\n //\\n .aside-menu-hidden {\\n .aside-menu {\\n margin-right: 0;\\n margin-left: - $aside-menu-width;\\n }\\n }\\n\\n .aside-menu-fixed {\\n .aside-menu {\\n right: auto;\\n left: 0;\\n }\\n\\n .main, .app-footer {\\n //margin-right: 0;\\n margin-left: $aside-menu-width;\\n }\\n\\n &.aside-menu-hidden {\\n .main, .app-footer {\\n margin-left: 0;\\n }\\n }\\n }\\n\\n .aside-menu-off-canvas {\\n .aside-menu {\\n position: fixed;\\n right: 0;\\n z-index: $zindex-sticky - 1;\\n height: 100%;\\n\\n .tab-content {\\n height: calc(100vh - #{$aside-menu-nav-padding-y * 2 + $font-size-base} - #{$navbar-height});\\n }\\n }\\n }\\n\\n // Sidebar Menu\\n .sidebar {\\n .sidebar-nav {\\n .nav {\\n .nav-item {\\n .nav-link {\\n direction: rtl;\\n i {\\n margin: 0 0 0 ($sidebar-nav-link-padding-x / 2);\\n }\\n .badge {\\n float: left;\\n margin-top: 2px;\\n // margin-left: 10px;\\n }\\n &.nav-dropdown-toggle {\\n &::before {\\n position: absolute;\\n right: auto !important;\\n left: $sidebar-nav-link-padding-x;\\n transform: rotate(180deg);\\n }\\n }\\n }\\n &.nav-dropdown {\\n &.open {\\n > .nav-link.nav-dropdown-toggle::before {\\n transform: rotate(270deg);\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n\\n .sidebar-minimized .sidebar {\\n .nav-link {\\n padding-right: 0;\\n i {\\n float: right;\\n padding: 0;\\n margin: 0;\\n }\\n .badge {\\n right: auto;\\n left: 15px;\\n }\\n }\\n .nav > .nav-dropdown {\\n\\n &:hover {\\n > .nav-dropdown-items {\\n right: $sidebar-minimized-width;\\n left: 0;\\n }\\n }\\n }\\n }\\n\\n // Horizontal bars\\n .horizontal-bars {\\n\\n li {\\n\\n .bars {\\n padding-right: 100px;\\n padding-left: 0;\\n\\n .progress:first-child {\\n margin-bottom: 2px;\\n }\\n }\\n }\\n\\n &.type-2 {\\n\\n li {\\n\\n i {\\n margin-right: 5px;\\n margin-left: $spacer;\\n }\\n\\n .value {\\n float: left;\\n font-weight: 600;\\n }\\n\\n .bars {\\n padding: 0;\\n }\\n }\\n }\\n }\\n\\n // Icon list\\n .icons-list {\\n\\n li {\\n position: relative;\\n height: 40px;\\n vertical-align: middle;\\n\\n i {\\n float: right;\\n }\\n\\n .desc {\\n margin-right: 50px;\\n margin-left: 0;\\n }\\n\\n .value {\\n right: auto;\\n left: 45px;\\n text-align: left;\\n\\n strong {\\n display: block;\\n margin-top: -3px;\\n }\\n }\\n\\n .actions {\\n right: auto;\\n left: 10px;\\n }\\n }\\n }\\n\\n // Callouts\\n .callout {\\n border: 0 solid $border-color;\\n border-right-width: .25rem;\\n\\n @each $color, $value in $theme-colors {\\n &.callout-#{$color} {\\n border-right-color: $value;\\n }\\n }\\n\\n .chart-wrapper {\\n left: 0;\\n float: left;\\n }\\n }\\n\\n .callout-default {\\n border-right-color: $text-muted;\\n }\\n}\\n\",\"// Here you can add other styles\\n\\n\\nform.rjsf label {\\n margin-bottom: 0;\\n}\\n\\nform.rjsf div>p.field-description {\\n font-size: 0.7rem;\\n font-style: italic;\\n margin-bottom: 0px;\\n}\\n\\nform.rjsf input {\\n width: auto;\\n}\\n\\nform.rjsf div.row.array-item {\\n background-color: aliceblue;\\n margin-bottom: 3px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".fa-pulse {\\n display: inline-block;\\n -moz-animation: pulse 2s infinite linear;\\n -o-animation: pulse 2s infinite linear;\\n -webkit-animation: pulse 2s infinite linear;\\n animation: pulse 2s infinite linear;\\n}\\n\\n.fa-pulse-fast {\\n display: inline-block;\\n -moz-animation: pulse 1s infinite linear;\\n -o-animation: pulse 1s infinite linear;\\n -webkit-animation: pulse 1s infinite linear;\\n animation: pulse 1s infinite linear;\\n}\\n\\n@-webkit-keyframes pulse {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n@-moz-keyframes pulse {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n@-o-keyframes pulse {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n@-ms-keyframes pulse {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n@keyframes pulse {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/fa-pulse.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,qBAAqB;EACrB,wCAAwC;EACxC,sCAAsC;EACtC,2CAA2C;EAC3C,mCAAmC;AACrC;;AAEA;EACE,qBAAqB;EACrB,wCAAwC;EACxC,sCAAsC;EACtC,2CAA2C;EAC3C,mCAAmC;AACrC;;AAEA;EACE;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;AACF;AACA;EACE;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;AACF;AACA;EACE;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;AACF;AACA;EACE;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;AACF;AACA;EACE;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;AACF\",\"sourcesContent\":[\".fa-pulse {\\n display: inline-block;\\n -moz-animation: pulse 2s infinite linear;\\n -o-animation: pulse 2s infinite linear;\\n -webkit-animation: pulse 2s infinite linear;\\n animation: pulse 2s infinite linear;\\n}\\n\\n.fa-pulse-fast {\\n display: inline-block;\\n -moz-animation: pulse 1s infinite linear;\\n -o-animation: pulse 1s infinite linear;\\n -webkit-animation: pulse 1s infinite linear;\\n animation: pulse 1s infinite linear;\\n}\\n\\n@-webkit-keyframes pulse {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n@-moz-keyframes pulse {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n@-o-keyframes pulse {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n@-ms-keyframes pulse {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n@keyframes pulse {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","export default __webpack_public_path__ + \"./fonts/signal-k-logo-image-text.d132ec2c4f0269c103c868aaa6868f01.svg\";"],"names":["options","authFetch","url","fetch","credentials","login","dispatch","username","password","rememberMe","callback","payload","method","headers","body","JSON","stringify","then","response","status","json","text","type","data","fetchAllData","catch","error","console","log","restart","confirm","window","serverRoutesPrefix","buildFetchAction","endpoint","prefix","isUndefined","fetchLoginStatus","fetchPlugins","fetchWebapps","fetchAddons","fetchApps","fetchAccessRequests","fetchServerSpecification","openServerEventsConnection","isReconnect","proto","location","protocol","ws","WebSocket","host","onmessage","event","serverEvent","parse","name","skSelf","self","messageHandler","onclose","onerror","onopen","reload","Header","Component","constructor","props","super","this","toggleDropdown","bind","state","dropdownOpen","componentDidMount","addEventListener","document","classList","toggle","setState","sidebarToggle","e","preventDefault","sidebarMinimize","mobileSidebarToggle","asideToggle","render","className","onClick","href","navbar","loginStatus","userLevel","restarting","logout","authenticationRequired","nav","isOpen","right","connect","ok","Error","statusText","SidebarFooter","SidebarForm","SidebarHeader","SidebarMinimizer","brandMinimize","Sidebar","handleClick","target","parentElement","activeRoute","routeName","pathname","indexOf","badge","classes","classNames","class","color","variant","navDropdown","item","key","icon","navList","children","navType","idx","title","wrapper","element","React","attributes","divider","isExternal","link","active","NavLink","to","activeClassName","navLink","navItem","items","map","index","substring","appUpdates","appStore","updates","length","updatesBadge","availableBadge","serverUpdateBadge","accessRequestsBadge","accessRequests","storeAvailable","serverUpdate","result","openPlugin","localStorage","getItem","push","apply","security","allowDeviceAccessRequests","allowNewUserRegistration","Aside","Footer","mmsi","uuid","vesselInfo","serverSpecification","server","version","Link","providerIdLink","id","serverStatistics","websocketStatus","providerStatus","deltaRate","numberOfAvailablePaths","wsClients","providerStatistics","uptime","errorCount","filter","s","uptimeD","Math","floor","uptimeH","uptimeM","errors","xs","md","toFixed","Object","keys","providerId","providerStats","iconClass","history","value","hover","responsive","bordered","striped","size","statusClass","lastError","message","lastErrorTimeStamp","statusType","toLazyDynamicComponent","moduleName","component","Promise","resolve","reject","container","toSafeModuleId","undefined","init","__webpack_share_scopes__","default","get","factory","ex","replace","EnableSecurity","enabling","errorMessage","handleInputChange","userId","noUsers","securityWasEnabled","placeholder","onChange","Login","loggingIn","loginErrorMessage","checked","wsProto","Embedded","match","params","moduleId","websockets","adminUI","hideSideBar","dispatchEvent","Event","getApplicationUserData","appDataVersion","path","r","setApplicationUserData","openWebsocket","knownParams","queryParam","p","i","x","v","join","ReconnectingWebSocket","context","cParts","split","slice","componentWillUnmount","forEach","close","style","backgroundColor","height","Suspense","fallback","propTypes","header","PropTypes","mainText","footer","cssModule","Widget02","padding","card","lead","mapToCssModules","blockIcon","cardFooter","defaultProps","Webapps","addonComponents","setAddonComponents","addons","componentDidUpdate","prevProps","webapps","webAppInfo","webappInfo","keywords","includes","lg","xl","Webapp","description","c","timestampFormat","metaStorageKey","pauseStorageKey","contextStorageKey","searchStorageKey","fetchSources","sources","values","source","device","n2k","productName","manufacturerName","DataBrowser","hasData","webSocket","didSubscribe","pause","includeMeta","meta","search","handlePause","handleMessage","handleContextChange","handleSearch","handleMeta","msg","isNew","contextMeta","update","pgn","sentence","vp","k","$source","timestamp","moment","format","subscribeToDataIfNeeded","sub","subscribe","period","send","unsubscribeToData","unsubscribe","setItem","action","encType","onSubmit","row","sort","htmlFor","toLowerCase","formatted","units","lastIndexOf","CopyToClipboardWithFade","whiteSpace","theme","sortObjectKeys","hideRoot","opacity","onCopy","setTimeout","CopyToClipboard","inputStorageKey","DELTAS_TAB_ID","PATHS_TAB_ID","N2KJSON_TAB_ID","PUTRESULTS_TAB_ID","LINT_ERROR_TAB_ID","Playground","input","deltas","n2kJson","inputIsJson","isJson","sending","activeTab","handleExecute","handleInput","beautify","inputWaitTimeout","clearTimeout","jsonlint","jsonError","putResults","sendToServer","start","trim","charAt","delta","tab","rows","disabled","paddingLeft","paddingTop","tabs","classnames","tabId","overflowY","maxHeight","border","n2kData","ThisSession","thisSessionApps","installingApps","app","progress","isInstalling","isRemoving","isWaiting","isRemove","animated","installFailed","author","npmUrl","AppsList","installing","apps","borderBottom","isWebapp","isEmbeddableWebapp","isPlugin","mainIcon","overflow","marginRight","categories","installedVersion","listName","installApp","removeApp","updateInstalling","that","viewParams","defaultCategory","installed","AppTable","viewData","view","categorized","categorize","category","handleCategoryChange","searchResults","searchApps","searchString","lowerCase","plugin","schema","uiSchema","topSchema","properties","configuration","statusMessage","enabled","enableLogging","enableDebug","formData","submitData","EmbeddedPluginConfigurationForm","packageName","save","saveData","openPluginStorageKey","PluginConfigurationList","plugins","lastOpenedPlugin","searchPlugins","toggleForm","clickedIndex","openedPluginId","pluginid","removeItem","alert","PluginCard","isConfigurator","Headers","pluginData","labelStyle","marginLeft","marginBottom","noConfigurationRequired","canbeEnabled","ref","width","Fragment","PluginConfigurationForm","scrollTo","top","offsetTop","behavior","fetchSecurityConfig","Settings","handleChange","handleSaveConfig","allow_readonly","expiration","check","fetchSecurityUsers","users","Users","handleAddUser","handleCancel","handleApply","handleUserChange","deleteUser","selectedUser","selectedIndex","refs","scrollIntoView","confirmPassword","userClicked","user","fetchSecurityDevices","devices","Devices","handleDeviceChange","deleteDevice","selectedDevice","permissions","clientId","deviceClicked","convertPermissions","requestedPermissions","securityDevices","Register","email","registrationSent","handleCreate","targetName","sm","block","AccessRequests","selectedRequest","accessRequestsApproving","accessRequestsDenying","handleRequestChange","handleAccessRequest","identifier","approved","stateKey","config","requestClicked","request","req","accessIdentifier","accessDescription","ip","fetchVessel","VesselConfiguration","handleSaveVessel","callsignVhf","aisShipType","draft","beam","gpsFromBow","gpsFromCenter","N2KFilters","handleAddFilter","handleEnabledChange","filterChanged","deleteFilter","filters","splice","filtersEnabled","sourceName","useCanName","BasicProvider","hasAnalyzer","TypeComponent","NMEA2000","NMEA0183","SignalK","Seatalk","FileStream","LoggingInput","dummyEvent","onPropChange","TextInput","helpText","TextAreaInput","DeviceInput","serialports","portInfo","isManualEntry","isListedDevice","manualEntryValue","serialportListOptions","deviceListMap","reduce","acc","concat","labels","j","logging","ValidateChecksumInput","validateChecksum","appendChecksum","RemoveNullsInput","removeNulls","AppendChecksum","SentenceEventInput","sentenceEvent","DataTypeInput","dataType","BaudRateIntput","baudrate","BaudRateIntputCanboat","StdOutInput","toStdout","Array","isArray","IgnoredSentences","ignoredSentences","PortInput","port","HostInput","NoDataReceivedTimeoutInput","noDataReceivedTimeout","RemoteSelfInput","remoteSelf","Suppress0183Checkbox","suppress0183event","UseCanNameInput","CollectNetworkStatsInput","sendNetworkStats","interface","serialParams","useDiscovery","selfsignedcert","subscription","selfHandling","gpios","gpio","gpioInvert","filename","SOURCEPRIOS_PRIO_CHANGED","SOURCEPRIOS_PRIO_DELETED","SOURCEPRIOS_PRIO_MOVED","SOURCEPRIOS_PATH_CHANGED","SOURCEPRIOS_PATH_DELETED","SOURCEPRIOS_SAVING","SOURCEPRIOS_SAVED","SOURCEPRIOS_SAVE_FAILED","SOURCEPRIOS_SAVE_FAILED_OVER","checkTimeouts","sourcePriorities","prio","timeout","thisOne","Number","isNaN","reduceSourcePriorities","saveState","pathIndex","sourceRef","change","prios","priorities","dirty","remove","_","timeoutsOk","tmp","isSaving","saveFailed","fetchSourceRefs","cb","pathResponse","sourceRefs","uniq","PrefsEditor","toggleEditor","Width","label","menuPortalTarget","SourcePriorities","availablePaths","pathsArray","pathPriority","err","sourcePrioritySave","sourcePrioritiesData","fetchProviders","selectedProvider","selectedProviderId","find","provider","findIndex","originalId","providers","runDiscovery","ProvidersConfiguration","handleProviderChange","handleProviderPropChange","handleAddProvider","handleDelete","set","editable","wasDiscovered","discoveredProviders","providerClicked","ProviderType","ApplicableStatus","applicable","scrollMarginTop","readOnly","fetchLogfileList","okResponse","authorized","logfileslist","logfilesToRows","logfiles","datesWithHours","logfile","date","substr","hour","fetchSettings","ServerSettings","handleOptionChange","handleInterfaceChange","handleSaveSettings","interfaces","fieldColWidthMd","runFromSystemd","ssl","sslport","lineHeight","SettableInterfaces","pruneContextsMinutes","loggingDirectory","keepMostRecentLogsOnly","logCountToKeep","applicationData","tcp","ReduxedSettings","BackupRestore","restoreFile","restoreState","includePlugins","fileChanged","handleRestoreFileChange","includePluginsChange","backup","validate","restore","cancelRestore","files","restoreContents","res","FormData","append","Accept","restoreStatus","percentComplete","ServerLogs","didSubScribe","debugKeys","handleDebug","fetchDebugKeys","subscribeToLogsIfNeeded","unsubscribeToLogs","doHandleDebug","handleDebugCheckbox","keysToSend","debugEnabled","toString","handleRememberDebug","activeDebugKeys","rememberDebug","borderStyle","borderWidth","borderColor","LogList","end","fontFamily","entries","logEntry","PureLogRow","d","el","ReactHtmlParser","ServerUpdate","chanelog","handleUpdate","fetchChangelog","changelog","pushState","isInstalled","info","canUpdateServer","isInDocker","withRouter","Full","suppressPadding","fluid","Switch","Route","loginOrOriginal","Dashboard","Apps","Configuration","ServerLog","SecuritySettings","Redirect","from","BaseComponent","componentSupportsReadOnly","Restricted","hasError","readOnlyAccess","loginRequired","convert","Convert","logEntryCount","available","store","createStore","nameCollator","l","webSocketTimer","clearInterval","setInterval","html","isError","ts","toHtml","escape","shift","sourcePrioritiesMap","applyMiddleware","thunk","left","__webpack_init_sharing__","ReactDOM","HashRouter","getElementById","___CSS_LOADER_EXPORT___","module","___CSS_LOADER_URL_REPLACEMENT_0___"],"sourceRoot":""}
|