.\n\n.list-group {\n // No need to set list-style: none; since .list-group-item is block level\n margin-bottom: 20px;\n padding-left: 0; // reset padding because ul and ol\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: 10px 15px;\n // Place the border on the list items and negative margin up for better styling\n margin-bottom: -1px;\n background-color: @list-group-bg;\n border: 1px solid @list-group-border;\n\n // Round the first and last items\n &:first-child {\n .border-top-radius(@list-group-border-radius);\n }\n &:last-child {\n margin-bottom: 0;\n .border-bottom-radius(@list-group-border-radius);\n }\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive items.\n// Includes an extra `.active` modifier class for showing selected items.\n\na.list-group-item,\nbutton.list-group-item {\n color: @list-group-link-color;\n\n .list-group-item-heading {\n color: @list-group-link-heading-color;\n }\n\n // Hover state\n &:hover,\n &:focus {\n text-decoration: none;\n color: @list-group-link-hover-color;\n background-color: @list-group-hover-bg;\n }\n}\n\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n\n.list-group-item {\n // Disabled state\n &.disabled,\n &.disabled:hover,\n &.disabled:focus {\n background-color: @list-group-disabled-bg;\n color: @list-group-disabled-color;\n cursor: @cursor-disabled;\n\n // Force color to inherit for custom content\n .list-group-item-heading {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-disabled-text-color;\n }\n }\n\n // Active class on item itself, not parent\n &.active,\n &.active:hover,\n &.active:focus {\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;\n\n // Force color to inherit for custom content\n .list-group-item-heading,\n .list-group-item-heading > small,\n .list-group-item-heading > .small {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-active-text-color;\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.list-group-item-variant(success; @state-success-bg; @state-success-text);\n.list-group-item-variant(info; @state-info-bg; @state-info-text);\n.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);\n.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);\n\n\n// Custom content options\n//\n// Extra classes for creating well-formatted content within `.list-group-item`s.\n\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n","// List Groups\n\n.list-group-item-variant(@state; @background; @color) {\n .list-group-item-@{state} {\n color: @color;\n background-color: @background;\n\n a&,\n button& {\n color: @color;\n\n .list-group-item-heading {\n color: inherit;\n }\n\n &:hover,\n &:focus {\n color: @color;\n background-color: darken(@background, 5%);\n }\n &.active,\n &.active:hover,\n &.active:focus {\n color: #fff;\n background-color: @color;\n border-color: @color;\n }\n }\n }\n}\n","//\n// Panels\n// --------------------------------------------------\n\n\n// Base class\n.panel {\n margin-bottom: @line-height-computed;\n background-color: @panel-bg;\n border: 1px solid transparent;\n border-radius: @panel-border-radius;\n .box-shadow(0 1px 1px rgba(0,0,0,.05));\n}\n\n// Panel contents\n.panel-body {\n padding: @panel-body-padding;\n &:extend(.clearfix all);\n}\n\n// Optional heading\n.panel-heading {\n padding: @panel-heading-padding;\n border-bottom: 1px solid transparent;\n .border-top-radius((@panel-border-radius - 1));\n\n > .dropdown .dropdown-toggle {\n color: inherit;\n }\n}\n\n// Within heading, strip any `h*` tag of its default margins for spacing.\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: ceil((@font-size-base * 1.125));\n color: inherit;\n\n > a,\n > small,\n > .small,\n > small > a,\n > .small > a {\n color: inherit;\n }\n}\n\n// Optional footer (stays gray in every modifier class)\n.panel-footer {\n padding: @panel-footer-padding;\n background-color: @panel-footer-bg;\n border-top: 1px solid @panel-inner-border;\n .border-bottom-radius((@panel-border-radius - 1));\n}\n\n\n// List groups in panels\n//\n// By default, space out list group content from panel headings to account for\n// any kind of custom content between the two.\n\n.panel {\n > .list-group,\n > .panel-collapse > .list-group {\n margin-bottom: 0;\n\n .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n }\n\n // Add border top radius for first one\n &:first-child {\n .list-group-item:first-child {\n border-top: 0;\n .border-top-radius((@panel-border-radius - 1));\n }\n }\n\n // Add border bottom radius for last one\n &:last-child {\n .list-group-item:last-child {\n border-bottom: 0;\n .border-bottom-radius((@panel-border-radius - 1));\n }\n }\n }\n > .panel-heading + .panel-collapse > .list-group {\n .list-group-item:first-child {\n .border-top-radius(0);\n }\n }\n}\n// Collapse space between when there's no additional content.\n.panel-heading + .list-group {\n .list-group-item:first-child {\n border-top-width: 0;\n }\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n\n// Tables in panels\n//\n// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and\n// watch it go full width.\n\n.panel {\n > .table,\n > .table-responsive > .table,\n > .panel-collapse > .table {\n margin-bottom: 0;\n\n caption {\n padding-left: @panel-body-padding;\n padding-right: @panel-body-padding;\n }\n }\n // Add border top radius for first one\n > .table:first-child,\n > .table-responsive:first-child > .table:first-child {\n .border-top-radius((@panel-border-radius - 1));\n\n > thead:first-child,\n > tbody:first-child {\n > tr:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n border-top-right-radius: (@panel-border-radius - 1);\n\n td:first-child,\n th:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-top-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n // Add border bottom radius for last one\n > .table:last-child,\n > .table-responsive:last-child > .table:last-child {\n .border-bottom-radius((@panel-border-radius - 1));\n\n > tbody:last-child,\n > tfoot:last-child {\n > tr:last-child {\n border-bottom-left-radius: (@panel-border-radius - 1);\n border-bottom-right-radius: (@panel-border-radius - 1);\n\n td:first-child,\n th:first-child {\n border-bottom-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-bottom-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n > .panel-body + .table,\n > .panel-body + .table-responsive,\n > .table + .panel-body,\n > .table-responsive + .panel-body {\n border-top: 1px solid @table-border-color;\n }\n > .table > tbody:first-child > tr:first-child th,\n > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n }\n > .table-bordered,\n > .table-responsive > .table-bordered {\n border: 0;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n > thead,\n > tbody {\n > tr:first-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n > tbody,\n > tfoot {\n > tr:last-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n }\n > .table-responsive {\n border: 0;\n margin-bottom: 0;\n }\n}\n\n\n// Collapsable panels (aka, accordion)\n//\n// Wrap a series of panels in `.panel-group` to turn them into an accordion with\n// the help of our collapse JavaScript plugin.\n\n.panel-group {\n margin-bottom: @line-height-computed;\n\n // Tighten up margin so it's only between panels\n .panel {\n margin-bottom: 0;\n border-radius: @panel-border-radius;\n\n + .panel {\n margin-top: 5px;\n }\n }\n\n .panel-heading {\n border-bottom: 0;\n\n + .panel-collapse > .panel-body,\n + .panel-collapse > .list-group {\n border-top: 1px solid @panel-inner-border;\n }\n }\n\n .panel-footer {\n border-top: 0;\n + .panel-collapse .panel-body {\n border-bottom: 1px solid @panel-inner-border;\n }\n }\n}\n\n\n// Contextual variations\n.panel-default {\n .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);\n}\n.panel-primary {\n .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);\n}\n.panel-success {\n .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);\n}\n.panel-info {\n .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);\n}\n.panel-warning {\n .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);\n}\n.panel-danger {\n .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);\n}\n","// Panels\n\n.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {\n border-color: @border;\n\n & > .panel-heading {\n color: @heading-text-color;\n background-color: @heading-bg-color;\n border-color: @heading-border;\n\n + .panel-collapse > .panel-body {\n border-top-color: @border;\n }\n .badge {\n color: @heading-bg-color;\n background-color: @heading-text-color;\n }\n }\n & > .panel-footer {\n + .panel-collapse > .panel-body {\n border-bottom-color: @border;\n }\n }\n}\n","// Embeds responsive\n//\n// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n border: 0;\n }\n}\n\n// Modifier class for 16:9 aspect ratio\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n\n// Modifier class for 4:3 aspect ratio\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n","//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: @well-bg;\n border: 1px solid @well-border;\n border-radius: @border-radius-base;\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));\n blockquote {\n border-color: #ddd;\n border-color: rgba(0,0,0,.15);\n }\n}\n\n// Sizes\n.well-lg {\n padding: 24px;\n border-radius: @border-radius-large;\n}\n.well-sm {\n padding: 9px;\n border-radius: @border-radius-small;\n}\n","//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n float: right;\n font-size: (@font-size-base * 1.5);\n font-weight: @close-font-weight;\n line-height: 1;\n color: @close-color;\n text-shadow: @close-text-shadow;\n .opacity(.2);\n\n &:hover,\n &:focus {\n color: @close-color;\n text-decoration: none;\n cursor: pointer;\n .opacity(.5);\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 button& {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n }\n}\n","//\n// Modals\n// --------------------------------------------------\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 shit\n\n// Kill the scroll on the body\n.modal-open {\n overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n display: none;\n overflow: hidden;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal;\n -webkit-overflow-scrolling: touch;\n\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\n // When fading in the modal, animate it to slide down\n &.fade .modal-dialog {\n .translate(0, -25%);\n .transition-transform(~\"0.3s ease-out\");\n }\n &.in .modal-dialog { .translate(0, 0) }\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n background-color: @modal-content-bg;\n border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)\n border: 1px solid @modal-content-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 3px 9px rgba(0,0,0,.5));\n background-clip: padding-box;\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 right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal-background;\n background-color: @modal-backdrop-bg;\n // Fade for backdrop\n &.fade { .opacity(0); }\n &.in { .opacity(@modal-backdrop-opacity); }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n padding: @modal-title-padding;\n border-bottom: 1px solid @modal-header-border-color;\n min-height: (@modal-title-padding + @modal-title-line-height);\n}\n// Close icon\n.modal-header .close {\n margin-top: -2px;\n}\n\n// Title text within header\n.modal-title {\n margin: 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 padding: @modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n padding: @modal-inner-padding;\n text-align: right; // right align buttons\n border-top: 1px solid @modal-footer-border-color;\n &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons\n\n // Properly space out buttons\n .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0; // account for input[type=\"submit\"] which gets the bottom margin like all other inputs\n }\n // but override that for button groups\n .btn-group .btn + .btn {\n margin-left: -1px;\n }\n // and override it for block buttons as well\n .btn-block + .btn-block {\n margin-left: 0;\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@media (min-width: @screen-sm-min) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n width: @modal-md;\n margin: 30px auto;\n }\n .modal-content {\n .box-shadow(0 5px 15px rgba(0,0,0,.5));\n }\n\n // Modal sizes\n .modal-sm { width: @modal-sm; }\n}\n\n@media (min-width: @screen-md-min) {\n .modal-lg { width: @modal-lg; }\n}\n","//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n position: absolute;\n z-index: @zindex-tooltip;\n display: block;\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 .reset-text();\n font-size: @font-size-small;\n\n .opacity(0);\n\n &.in { .opacity(@tooltip-opacity); }\n &.top { margin-top: -3px; padding: @tooltip-arrow-width 0; }\n &.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; }\n &.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; }\n &.left { margin-left: -3px; padding: 0 @tooltip-arrow-width; }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: @tooltip-max-width;\n padding: 3px 8px;\n color: @tooltip-color;\n text-align: center;\n background-color: @tooltip-bg;\n border-radius: @border-radius-base;\n}\n\n// Arrows\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1\n.tooltip {\n &.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-left .tooltip-arrow {\n bottom: 0;\n right: @tooltip-arrow-width;\n margin-bottom: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-right .tooltip-arrow {\n bottom: 0;\n left: @tooltip-arrow-width;\n margin-bottom: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;\n border-right-color: @tooltip-arrow-color;\n }\n &.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-left-color: @tooltip-arrow-color;\n }\n &.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-left .tooltip-arrow {\n top: 0;\n right: @tooltip-arrow-width;\n margin-top: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-right .tooltip-arrow {\n top: 0;\n left: @tooltip-arrow-width;\n margin-top: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n}\n",".reset-text() {\n font-family: @font-family-base;\n // We deliberately do NOT reset font-size.\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\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 white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n}\n","//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: @zindex-popover;\n display: none;\n max-width: @popover-max-width;\n padding: 1px;\n // Our parent element can be arbitrary since popovers 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 .reset-text();\n font-size: @font-size-base;\n\n background-color: @popover-bg;\n background-clip: padding-box;\n border: 1px solid @popover-fallback-border-color;\n border: 1px solid @popover-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 5px 10px rgba(0,0,0,.2));\n\n // Offset the popover to account for the popover arrow\n &.top { margin-top: -@popover-arrow-width; }\n &.right { margin-left: @popover-arrow-width; }\n &.bottom { margin-top: @popover-arrow-width; }\n &.left { margin-left: -@popover-arrow-width; }\n}\n\n.popover-title {\n margin: 0; // reset heading margin\n padding: 8px 14px;\n font-size: @font-size-base;\n background-color: @popover-title-bg;\n border-bottom: 1px solid darken(@popover-title-bg, 5%);\n border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;\n}\n\n.popover-content {\n padding: 9px 14px;\n}\n\n// Arrows\n//\n// .arrow is outer, .arrow:after is inner\n\n.popover > .arrow {\n &,\n &:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n }\n}\n.popover > .arrow {\n border-width: @popover-arrow-outer-width;\n}\n.popover > .arrow:after {\n border-width: @popover-arrow-width;\n content: \"\";\n}\n\n.popover {\n &.top > .arrow {\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-bottom-width: 0;\n border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-top-color: @popover-arrow-outer-color;\n bottom: -@popover-arrow-outer-width;\n &:after {\n content: \" \";\n bottom: 1px;\n margin-left: -@popover-arrow-width;\n border-bottom-width: 0;\n border-top-color: @popover-arrow-color;\n }\n }\n &.right > .arrow {\n top: 50%;\n left: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-left-width: 0;\n border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-right-color: @popover-arrow-outer-color;\n &:after {\n content: \" \";\n left: 1px;\n bottom: -@popover-arrow-width;\n border-left-width: 0;\n border-right-color: @popover-arrow-color;\n }\n }\n &.bottom > .arrow {\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-top-width: 0;\n border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-bottom-color: @popover-arrow-outer-color;\n top: -@popover-arrow-outer-width;\n &:after {\n content: \" \";\n top: 1px;\n margin-left: -@popover-arrow-width;\n border-top-width: 0;\n border-bottom-color: @popover-arrow-color;\n }\n }\n\n &.left > .arrow {\n top: 50%;\n right: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-right-width: 0;\n border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-left-color: @popover-arrow-outer-color;\n &:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: @popover-arrow-color;\n bottom: -@popover-arrow-width;\n }\n }\n}\n","//\n// Carousel\n// --------------------------------------------------\n\n\n// Wrapper for the slide container and indicators\n.carousel {\n position: relative;\n}\n\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%;\n\n > .item {\n display: none;\n position: relative;\n .transition(.6s ease-in-out left);\n\n // Account for jankitude on images\n > img,\n > a > img {\n &:extend(.img-responsive);\n line-height: 1;\n }\n\n // WebKit CSS3 transforms for supported devices\n @media all and (transform-3d), (-webkit-transform-3d) {\n .transition-transform(~'0.6s ease-in-out');\n .backface-visibility(~'hidden');\n .perspective(1000px);\n\n &.next,\n &.active.right {\n .translate3d(100%, 0, 0);\n left: 0;\n }\n &.prev,\n &.active.left {\n .translate3d(-100%, 0, 0);\n left: 0;\n }\n &.next.left,\n &.prev.right,\n &.active {\n .translate3d(0, 0, 0);\n left: 0;\n }\n }\n }\n\n > .active,\n > .next,\n > .prev {\n display: block;\n }\n\n > .active {\n left: 0;\n }\n\n > .next,\n > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n }\n\n > .next {\n left: 100%;\n }\n > .prev {\n left: -100%;\n }\n > .next.left,\n > .prev.right {\n left: 0;\n }\n\n > .active.left {\n left: -100%;\n }\n > .active.right {\n left: 100%;\n }\n\n}\n\n// Left/right controls for nav\n// ---------------------------\n\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: @carousel-control-width;\n .opacity(@carousel-control-opacity);\n font-size: @carousel-control-font-size;\n color: @carousel-control-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n // We can't have this transition here because WebKit cancels the carousel\n // animation if you trip this while in the middle of another animation.\n\n // Set gradients for backgrounds\n &.left {\n #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));\n }\n &.right {\n left: auto;\n right: 0;\n #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));\n }\n\n // Hover/focus state\n &:hover,\n &:focus {\n outline: 0;\n color: @carousel-control-color;\n text-decoration: none;\n .opacity(.9);\n }\n\n // Toggles\n .icon-prev,\n .icon-next,\n .glyphicon-chevron-left,\n .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n margin-top: -10px;\n z-index: 5;\n display: inline-block;\n }\n .icon-prev,\n .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n }\n .icon-next,\n .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n }\n .icon-prev,\n .icon-next {\n width: 20px;\n height: 20px;\n line-height: 1;\n font-family: serif;\n }\n\n\n .icon-prev {\n &:before {\n content: '\\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)\n }\n }\n .icon-next {\n &:before {\n content: '\\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)\n }\n }\n}\n\n// Optional indicator pips\n//\n// Add an unordered 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 bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center;\n\n li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid @carousel-indicator-border-color;\n border-radius: 10px;\n cursor: pointer;\n\n // IE8-9 hack for event handling\n //\n // Internet Explorer 8-9 does not support clicks on elements without a set\n // `background-color`. We cannot use `filter` since that's not viewed as a\n // background color by the browser. Thus, a hack is needed.\n // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer\n //\n // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we\n // set alpha transparency for the best results possible.\n background-color: #000 \\9; // IE8\n background-color: rgba(0,0,0,0); // IE9\n }\n .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: @carousel-indicator-active-bg;\n }\n}\n\n// Optional captions\n// -----------------------------\n// Hidden by default for smaller viewports\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: @carousel-caption-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n & .btn {\n text-shadow: none; // No shadow for button elements in carousel-caption\n }\n}\n\n\n// Scale up controls for tablets and up\n@media screen and (min-width: @screen-sm-min) {\n\n // Scale up the controls a smidge\n .carousel-control {\n .glyphicon-chevron-left,\n .glyphicon-chevron-right,\n .icon-prev,\n .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -15px;\n font-size: 30px;\n }\n .glyphicon-chevron-left,\n .icon-prev {\n margin-left: -15px;\n }\n .glyphicon-chevron-right,\n .icon-next {\n margin-right: -15px;\n }\n }\n\n // Show and left align the captions\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n\n // Move up the indicators\n .carousel-indicators {\n bottom: 20px;\n }\n}\n","// Clearfix\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n// contenteditable attribute is included anywhere else in the document.\n// Otherwise it causes space to appear at the top and bottom of elements\n// that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n// `:before` to contain the top-margins of child elements.\n//\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n\n.clearfix() {\n &:before,\n &:after {\n content: \" \"; // 1\n display: table; // 2\n }\n &:after {\n clear: both;\n }\n}\n","// Center-align a block level element\n\n.center-block() {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n","// CSS image replacement\n//\n// Heads up! v3 launched with only `.hide-text()`, but per our pattern for\n// mixins being reused as classes with the same name, this doesn't hold up. As\n// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.\n//\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n\n// Deprecated as of v3.0.1 (will be removed in v4)\n.hide-text() {\n font: ~\"0/0\" a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n// New mixin to use as of v3.0.1\n.text-hide() {\n .hide-text();\n}\n","//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 in Windows (Phone) 8\n//\n// Support for responsive views via media queries is kind of borked in IE10, for\n// Surface/desktop in split view and for Windows Phone 8. This particular fix\n// must be accompanied by a snippet of JavaScript to sniff the user agent and\n// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at\n// our Getting Started page for more information on this bug.\n//\n// For more information, see the following:\n//\n// Issue: https://github.com/twbs/bootstrap/issues/10497\n// Docs: http://getbootstrap.com/getting-started/#support-ie10-width\n// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/\n// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/\n\n@-ms-viewport {\n width: device-width;\n}\n\n\n// Visibility utilities\n// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n .responsive-invisibility();\n}\n\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n\n.visible-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-visibility();\n }\n}\n.visible-xs-block {\n @media (max-width: @screen-xs-max) {\n display: block !important;\n }\n}\n.visible-xs-inline {\n @media (max-width: @screen-xs-max) {\n display: inline !important;\n }\n}\n.visible-xs-inline-block {\n @media (max-width: @screen-xs-max) {\n display: inline-block !important;\n }\n}\n\n.visible-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-visibility();\n }\n}\n.visible-sm-block {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: block !important;\n }\n}\n.visible-sm-inline {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: inline !important;\n }\n}\n.visible-sm-inline-block {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: inline-block !important;\n }\n}\n\n.visible-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-visibility();\n }\n}\n.visible-md-block {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: block !important;\n }\n}\n.visible-md-inline {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: inline !important;\n }\n}\n.visible-md-inline-block {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: inline-block !important;\n }\n}\n\n.visible-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-visibility();\n }\n}\n.visible-lg-block {\n @media (min-width: @screen-lg-min) {\n display: block !important;\n }\n}\n.visible-lg-inline {\n @media (min-width: @screen-lg-min) {\n display: inline !important;\n }\n}\n.visible-lg-inline-block {\n @media (min-width: @screen-lg-min) {\n display: inline-block !important;\n }\n}\n\n.hidden-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-invisibility();\n }\n}\n.hidden-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-invisibility();\n }\n}\n.hidden-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-invisibility();\n }\n}\n.hidden-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-invisibility();\n }\n}\n\n\n// Print utilities\n//\n// Media queries are placed on the inside to be mixin-friendly.\n\n// Note: Deprecated .visible-print as of v3.2.0\n.visible-print {\n .responsive-invisibility();\n\n @media print {\n .responsive-visibility();\n }\n}\n.visible-print-block {\n display: none !important;\n\n @media print {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n\n @media print {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n\n @media print {\n display: inline-block !important;\n }\n}\n\n.hidden-print {\n @media print {\n .responsive-invisibility();\n }\n}\n","// Responsive utilities\n\n//\n// More easily include all the states for responsive-utilities.less.\n.responsive-visibility() {\n display: block !important;\n table& { display: table !important; }\n tr& { display: table-row !important; }\n th&,\n td& { display: table-cell !important; }\n}\n\n.responsive-invisibility() {\n display: none !important;\n}\n"]}
\ No newline at end of file
diff --git a/data/interfaces/default/css/bootstrap3/bootstrap.min.css b/data/interfaces/default/css/bootstrap3/bootstrap.min.css
new file mode 100644
index 00000000..d65c66b1
--- /dev/null
+++ b/data/interfaces/default/css/bootstrap3/bootstrap.min.css
@@ -0,0 +1,5 @@
+/*!
+ * Bootstrap v3.3.5 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.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-md-1,.col-md-10,.col-md-11,.col-md-12,.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-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.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-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.33px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:3;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
\ No newline at end of file
diff --git a/data/interfaces/default/css/dataTables.bootstrap.css b/data/interfaces/default/css/dataTables.bootstrap.css
new file mode 100644
index 00000000..033c6522
--- /dev/null
+++ b/data/interfaces/default/css/dataTables.bootstrap.css
@@ -0,0 +1,371 @@
+div.dataTables_length label {
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+}
+
+div.dataTables_length select {
+ width: 75px;
+ display: inline-block;
+}
+
+div.dataTables_filter {
+ text-align: right;
+}
+
+div.dataTables_filter label {
+ font-weight: normal;
+ white-space: nowrap;
+ text-align: left;
+}
+
+div.dataTables_filter input {
+ margin-left: 0.5em;
+ display: inline-block;
+ width: auto;
+}
+
+div.dataTables_info {
+ padding-top: 8px;
+ white-space: nowrap;
+}
+
+div.dataTables_paginate {
+ margin: 0;
+ white-space: nowrap;
+ text-align: right;
+}
+
+div.dataTables_paginate ul.pagination {
+ margin: 2px 0;
+ white-space: nowrap;
+}
+
+@media screen and (max-width: 767px) {
+ div.dataTables_wrapper > div.row > div,
+ div.dataTables_length,
+ div.dataTables_filter,
+ div.dataTables_info,
+ div.dataTables_paginate {
+ text-align: center;
+ }
+
+ div.DTTT {
+ margin-bottom: 0.5em;
+ }
+}
+
+
+table.dataTable td,
+table.dataTable th {
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+}
+
+
+table.dataTable {
+ clear: both;
+ margin-top: 6px !important;
+ margin-bottom: 6px !important;
+ max-width: none !important;
+}
+
+table.dataTable thead .sorting,
+table.dataTable thead .sorting_asc,
+table.dataTable thead .sorting_desc,
+table.dataTable thead .sorting_asc_disabled,
+table.dataTable thead .sorting_desc_disabled {
+ cursor: pointer;
+ position: relative;
+}
+
+table.dataTable thead .sorting:after,
+table.dataTable thead .sorting_asc:after,
+table.dataTable thead .sorting_desc:after {
+ position: absolute;
+ top: 8px;
+ right: 8px;
+ display: block;
+ font-family: 'Glyphicons Halflings';
+ opacity: 0.5;
+}
+table.dataTable thead .sorting:after {
+ opacity: 0.2;
+ content: "\e150"; /* sort */
+}
+table.dataTable thead .sorting_asc:after {
+ content: "\e155"; /* sort-by-attributes */
+}
+table.dataTable thead .sorting_desc:after {
+ content: "\e156"; /* sort-by-attributes-alt */
+}
+div.dataTables_scrollBody table.dataTable thead .sorting:after,
+div.dataTables_scrollBody table.dataTable thead .sorting_asc:after,
+div.dataTables_scrollBody table.dataTable thead .sorting_desc:after {
+ display: none;
+}
+
+table.dataTable thead .sorting_asc_disabled:after,
+table.dataTable thead .sorting_desc_disabled:after {
+ color: #eee;
+}
+
+table.dataTable thead > tr > th {
+ padding-right: 30px;
+}
+
+table.dataTable th:active {
+ outline: none;
+}
+
+
+/* Condensed */
+table.dataTable.table-condensed thead > tr > th {
+ padding-right: 20px;
+}
+
+table.dataTable.table-condensed thead .sorting:after,
+table.dataTable.table-condensed thead .sorting_asc:after,
+table.dataTable.table-condensed thead .sorting_desc:after {
+ top: 6px;
+ right: 6px;
+}
+
+/* Scrolling */
+div.dataTables_scrollHead table {
+ margin-bottom: 0 !important;
+ border-bottom-left-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+div.dataTables_scrollHead table thead tr:last-child th:first-child,
+div.dataTables_scrollHead table thead tr:last-child td:first-child {
+ border-bottom-left-radius: 0 !important;
+ border-bottom-right-radius: 0 !important;
+}
+
+div.dataTables_scrollBody table {
+ border-top: none;
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+}
+
+div.dataTables_scrollBody tbody tr:first-child th,
+div.dataTables_scrollBody tbody tr:first-child td {
+ border-top: none;
+}
+
+div.dataTables_scrollFoot table {
+ margin-top: 0 !important;
+ border-top: none;
+}
+
+/* Frustratingly the border-collapse:collapse used by Bootstrap makes the column
+ width calculations when using scrolling impossible to align columns. We have
+ to use separate
+ */
+table.table-bordered.dataTable {
+ border-collapse: separate !important;
+}
+table.table-bordered thead th,
+table.table-bordered thead td {
+ border-left-width: 0;
+ border-top-width: 0;
+}
+table.table-bordered tbody th,
+table.table-bordered tbody td {
+ border-left-width: 0;
+ border-bottom-width: 0;
+}
+table.table-bordered tfoot th,
+table.table-bordered tfoot td {
+ border-left-width: 0;
+ border-bottom-width: 0;
+}
+table.table-bordered th:last-child,
+table.table-bordered td:last-child {
+ border-right-width: 0;
+}
+div.dataTables_scrollHead table.table-bordered {
+ border-bottom-width: 0;
+}
+
+
+
+
+/*
+ * TableTools styles
+ */
+.table.dataTable tbody tr.active td,
+.table.dataTable tbody tr.active th {
+ background-color: #08C;
+ color: white;
+}
+
+.table.dataTable tbody tr.active:hover td,
+.table.dataTable tbody tr.active:hover th {
+ background-color: #0075b0 !important;
+}
+
+.table.dataTable tbody tr.active th > a,
+.table.dataTable tbody tr.active td > a {
+ color: white;
+}
+
+.table-striped.dataTable tbody tr.active:nth-child(odd) td,
+.table-striped.dataTable tbody tr.active:nth-child(odd) th {
+ background-color: #017ebc;
+}
+
+table.DTTT_selectable tbody tr {
+ cursor: pointer;
+}
+
+div.DTTT .btn:hover {
+ text-decoration: none !important;
+}
+
+ul.DTTT_dropdown.dropdown-menu {
+ z-index: 2003;
+}
+
+ul.DTTT_dropdown.dropdown-menu a {
+ color: #333 !important; /* needed only when demo_page.css is included */
+}
+
+ul.DTTT_dropdown.dropdown-menu li {
+ position: relative;
+}
+
+ul.DTTT_dropdown.dropdown-menu li:hover a {
+ background-color: #0088cc;
+ color: white !important;
+}
+
+div.DTTT_collection_background {
+ z-index: 2002;
+}
+
+/* TableTools information display */
+div.DTTT_print_info {
+ position: fixed;
+ top: 50%;
+ left: 50%;
+ width: 400px;
+ height: 150px;
+ margin-left: -200px;
+ margin-top: -75px;
+ text-align: center;
+ color: #333;
+ padding: 10px 30px;
+ opacity: 0.95;
+
+ background-color: white;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 6px;
+
+ -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
+}
+
+div.DTTT_print_info h6 {
+ font-weight: normal;
+ font-size: 28px;
+ line-height: 28px;
+ margin: 1em;
+}
+
+div.DTTT_print_info p {
+ font-size: 14px;
+ line-height: 20px;
+}
+
+div.dataTables_processing {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ width: 100%;
+ height: 60px;
+ margin-left: -50%;
+ margin-top: -25px;
+ padding-top: 20px;
+ padding-bottom: 20px;
+ text-align: center;
+ font-size: 1.2em;
+ background-color: white;
+ background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0)));
+ background: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
+ background: -moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
+ background: -ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
+ background: -o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
+ background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
+}
+
+
+
+/*
+ * FixedColumns styles
+ */
+div.DTFC_LeftHeadWrapper table,
+div.DTFC_LeftFootWrapper table,
+div.DTFC_RightHeadWrapper table,
+div.DTFC_RightFootWrapper table,
+table.DTFC_Cloned tr.even {
+ background-color: white;
+ margin-bottom: 0;
+}
+
+div.DTFC_RightHeadWrapper table ,
+div.DTFC_LeftHeadWrapper table {
+ border-bottom: none !important;
+ margin-bottom: 0 !important;
+ border-top-right-radius: 0 !important;
+ border-bottom-left-radius: 0 !important;
+ border-bottom-right-radius: 0 !important;
+}
+
+div.DTFC_RightHeadWrapper table thead tr:last-child th:first-child,
+div.DTFC_RightHeadWrapper table thead tr:last-child td:first-child,
+div.DTFC_LeftHeadWrapper table thead tr:last-child th:first-child,
+div.DTFC_LeftHeadWrapper table thead tr:last-child td:first-child {
+ border-bottom-left-radius: 0 !important;
+ border-bottom-right-radius: 0 !important;
+}
+
+div.DTFC_RightBodyWrapper table,
+div.DTFC_LeftBodyWrapper table {
+ border-top: none;
+ margin: 0 !important;
+}
+
+div.DTFC_RightBodyWrapper tbody tr:first-child th,
+div.DTFC_RightBodyWrapper tbody tr:first-child td,
+div.DTFC_LeftBodyWrapper tbody tr:first-child th,
+div.DTFC_LeftBodyWrapper tbody tr:first-child td {
+ border-top: none;
+}
+
+div.DTFC_RightFootWrapper table,
+div.DTFC_LeftFootWrapper table {
+ border-top: none;
+ margin-top: 0 !important;
+}
+
+
+div.DTFC_LeftBodyWrapper table.dataTable thead .sorting:after,
+div.DTFC_LeftBodyWrapper table.dataTable thead .sorting_asc:after,
+div.DTFC_LeftBodyWrapper table.dataTable thead .sorting_desc:after,
+div.DTFC_RightBodyWrapper table.dataTable thead .sorting:after,
+div.DTFC_RightBodyWrapper table.dataTable thead .sorting_asc:after,
+div.DTFC_RightBodyWrapper table.dataTable thead .sorting_desc:after {
+ display: none;
+}
+
+
+/*
+ * FixedHeader styles
+ */
+div.FixedHeader_Cloned table {
+ margin: 0 !important
+}
diff --git a/data/interfaces/default/css/dataTables.colVis.css b/data/interfaces/default/css/dataTables.colVis.css
new file mode 100644
index 00000000..10d62649
--- /dev/null
+++ b/data/interfaces/default/css/dataTables.colVis.css
@@ -0,0 +1,131 @@
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * ColVis styles
+ */
+div.ColVis {
+ float: right;
+}
+
+button.ColVis_Button,
+ul.ColVis_collection li {
+ position: relative;
+ float: left;
+ color: #fff;
+ margin-right: 3px;
+ padding: 5px 8px;
+ cursor: pointer;
+ *cursor: hand;
+ font-size: 0.88em;
+ white-space: nowrap;
+}
+
+.ColVis_Button:hover,
+ul.ColVis_collection li:hover {
+ color: #F9AA03;
+}
+
+button.ColVis_Button {
+ padding: 4px 12px;
+ margin-bottom: 0;
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 1.42857143;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: middle;
+ -ms-touch-action: manipulation;
+ touch-action: manipulation;
+ cursor: pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ background-image: none;
+ background-color: #444;
+ border: 1px solid transparent;
+ border-radius: 3px;
+ outline:0px !important;
+ -webkit-appearance:none;
+}
+
+button.ColVis_Button::-moz-focus-inner {
+ border: none !important;
+ padding: 0;
+}
+
+button.ColVis_Button:active {
+ outline: none;
+}
+
+div.ColVis_collectionBackground {
+ position: fixed;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ background-color: black;
+ z-index: 1100;
+}
+
+ul.ColVis_collection {
+ list-style: none;
+ width: 150px;
+ padding: 8px 8px 4px 8px;
+ margin: 10px 0px 0px 0px;
+ background-color: #444;
+ overflow: hidden;
+ z-index: 2002;
+ border-radius: 4px;
+}
+
+ul.ColVis_collection li {
+ position: relative;
+ height: auto;
+ left: 0;
+ right: 0;
+ display: block;
+ float: none;
+ padding: 0;
+}
+
+ul.ColVis_collection li {
+ text-align: left;
+}
+
+ul.ColVis_collection li.ColVis_Button:hover {
+ border: 1px solid #999;
+}
+
+ul.ColVis_collection li span {
+ display: inline-block;
+ padding-left: 0.5em;
+ line-height: 1em;
+ cursor: pointer;
+}
+
+
+ul.ColVis_collection li.ColVis_Special {
+}
+
+ul.ColVis_collection li.ColVis_Special:hover {
+}
+
+span.ColVis_radio {
+ display: inline-block;
+ width: 20px;
+}
+
+div.ColVis_catcher {
+ position: absolute;
+ z-index: 1101;
+}
+
+.disabled {
+ color: #999;
+}
+
+ul.ColVis_collection label {
+ display: block;
+ padding: 0.5em;
+ cursor: pointer;
+}
\ No newline at end of file
diff --git a/data/interfaces/default/css/font-awesome.all.min.css b/data/interfaces/default/css/font-awesome.all.min.css
new file mode 100644
index 00000000..92613e20
--- /dev/null
+++ b/data/interfaces/default/css/font-awesome.all.min.css
@@ -0,0 +1,5 @@
+/*!
+ * Font Awesome Free 5.1.0 by @fontawesome - https://fontawesome.com
+ * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+ */
+.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:a 2s infinite linear}.fa-pulse{animation:a 1s infinite steps(8)}@keyframes a{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blind:before{content:"\f29d"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-open:before{content:"\f518"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-certificate:before{content:"\f0a3"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-concierge-bell:before{content:"\f562"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-credit-card:before{content:"\f09d"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-deviantart:before{content:"\f1bd"}.fa-diagnoses:before{content:"\f470"}.fa-dice:before{content:"\f522"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-gift:before{content:"\f06b"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hashtag:before{content:"\f292"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-houzz:before{content:"\f27c"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-internet-explorer:before{content:"\f26b"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mercury:before{content:"\f223"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-motorcycle:before{content:"\f21c"}.fa-mouse-pointer:before{content:"\f245"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-old-republic:before{content:"\f510"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-carry:before{content:"\f4ce"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poo:before{content:"\f2fe"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-r-project:before{content:"\f4f7"}.fa-random:before{content:"\f074"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-rendact:before{content:"\f3e4"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-retweet:before{content:"\f079"}.fa-ribbon:before{content:"\f4d6"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-search:before{content:"\f002"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skull:before{content:"\f54c"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowflake:before{content:"\f2dc"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toolbox:before{content:"\f552"}.fa-tooth:before{content:"\f5c9"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-train:before{content:"\f238"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-moving:before{content:"\f4df"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;src:url(../fonts/font-awesome/fa-brands-400.eot);src:url(../fonts/font-awesome/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../fonts/font-awesome/fa-brands-400.woff2) format("woff2"),url(../fonts/font-awesome/fa-brands-400.woff) format("woff"),url(../fonts/font-awesome/fa-brands-400.ttf) format("truetype"),url(../fonts/font-awesome/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;src:url(../fonts/font-awesome/fa-regular-400.eot);src:url(../fonts/font-awesome/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../fonts/font-awesome/fa-regular-400.woff2) format("woff2"),url(../fonts/font-awesome/fa-regular-400.woff) format("woff"),url(../fonts/font-awesome/fa-regular-400.ttf) format("truetype"),url(../fonts/font-awesome/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;src:url(../fonts/font-awesome/fa-solid-900.eot);src:url(../fonts/font-awesome/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/font-awesome/fa-solid-900.woff2) format("woff2"),url(../fonts/font-awesome/fa-solid-900.woff) format("woff"),url(../fonts/font-awesome/fa-solid-900.ttf) format("truetype"),url(../fonts/font-awesome/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900}
\ No newline at end of file
diff --git a/data/interfaces/default/css/font-awesome.v4-shims.min.css b/data/interfaces/default/css/font-awesome.v4-shims.min.css
new file mode 100644
index 00000000..a47c8e25
--- /dev/null
+++ b/data/interfaces/default/css/font-awesome.v4-shims.min.css
@@ -0,0 +1,5 @@
+/*!
+ * Font Awesome Free 5.1.0 by @fontawesome - https://fontawesome.com
+ * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+ */
+.fa.fa-glass:before{content:"\f000"}.fa.fa-meetup{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-star-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-o:before{content:"\f005"}.fa.fa-close:before,.fa.fa-remove:before{content:"\f00d"}.fa.fa-gear:before{content:"\f013"}.fa.fa-trash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-trash-o:before{content:"\f2ed"}.fa.fa-file-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-o:before{content:"\f15b"}.fa.fa-clock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-arrow-circle-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\f358"}.fa.fa-arrow-circle-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\f35b"}.fa.fa-play-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-play-circle-o:before{content:"\f144"}.fa.fa-repeat:before,.fa.fa-rotate-right:before{content:"\f01e"}.fa.fa-refresh:before{content:"\f021"}.fa.fa-list-alt{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dedent:before{content:"\f03b"}.fa.fa-video-camera:before{content:"\f03d"}.fa.fa-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-picture-o:before{content:"\f03e"}.fa.fa-photo{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-photo:before{content:"\f03e"}.fa.fa-image{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-image:before{content:"\f03e"}.fa.fa-pencil:before{content:"\f303"}.fa.fa-map-marker:before{content:"\f3c5"}.fa.fa-pencil-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pencil-square-o:before{content:"\f044"}.fa.fa-share-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-share-square-o:before{content:"\f14d"}.fa.fa-check-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-square-o:before{content:"\f14a"}.fa.fa-arrows:before{content:"\f0b2"}.fa.fa-times-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-circle-o:before{content:"\f057"}.fa.fa-check-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-circle-o:before{content:"\f058"}.fa.fa-mail-forward:before{content:"\f064"}.fa.fa-eye,.fa.fa-eye-slash{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-warning:before{content:"\f071"}.fa.fa-calendar:before{content:"\f073"}.fa.fa-arrows-v:before{content:"\f338"}.fa.fa-arrows-h:before{content:"\f337"}.fa.fa-bar-chart{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart:before{content:"\f080"}.fa.fa-bar-chart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart-o:before{content:"\f080"}.fa.fa-facebook-square,.fa.fa-twitter-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gears:before{content:"\f085"}.fa.fa-thumbs-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-up:before{content:"\f164"}.fa.fa-thumbs-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-down:before{content:"\f165"}.fa.fa-heart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-heart-o:before{content:"\f004"}.fa.fa-sign-out:before{content:"\f2f5"}.fa.fa-linkedin-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin-square:before{content:"\f08c"}.fa.fa-thumb-tack:before{content:"\f08d"}.fa.fa-external-link:before{content:"\f35d"}.fa.fa-sign-in:before{content:"\f2f6"}.fa.fa-github-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-lemon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lemon-o:before{content:"\f094"}.fa.fa-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-square-o:before{content:"\f0c8"}.fa.fa-bookmark-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bookmark-o:before{content:"\f02e"}.fa.fa-facebook,.fa.fa-twitter{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook:before{content:"\f39e"}.fa.fa-facebook-f{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-f:before{content:"\f39e"}.fa.fa-github{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-feed:before{content:"\f09e"}.fa.fa-hdd-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hdd-o:before{content:"\f0a0"}.fa.fa-hand-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-right:before{content:"\f0a4"}.fa.fa-hand-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-left:before{content:"\f0a5"}.fa.fa-hand-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-up:before{content:"\f0a6"}.fa.fa-hand-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-down:before{content:"\f0a7"}.fa.fa-arrows-alt:before{content:"\f31e"}.fa.fa-group:before{content:"\f0c0"}.fa.fa-chain:before{content:"\f0c1"}.fa.fa-scissors:before{content:"\f0c4"}.fa.fa-files-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-files-o:before{content:"\f0c5"}.fa.fa-floppy-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-floppy-o:before{content:"\f0c7"}.fa.fa-navicon:before,.fa.fa-reorder:before{content:"\f0c9"}.fa.fa-google-plus,.fa.fa-google-plus-square,.fa.fa-pinterest,.fa.fa-pinterest-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus:before{content:"\f0d5"}.fa.fa-money{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-money:before{content:"\f3d1"}.fa.fa-unsorted:before{content:"\f0dc"}.fa.fa-sort-desc:before{content:"\f0dd"}.fa.fa-sort-asc:before{content:"\f0de"}.fa.fa-linkedin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin:before{content:"\f0e1"}.fa.fa-rotate-left:before{content:"\f0e2"}.fa.fa-legal:before{content:"\f0e3"}.fa.fa-dashboard:before,.fa.fa-tachometer:before{content:"\f3fd"}.fa.fa-comment-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comment-o:before{content:"\f075"}.fa.fa-comments-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comments-o:before{content:"\f086"}.fa.fa-flash:before{content:"\f0e7"}.fa.fa-clipboard,.fa.fa-paste{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paste:before{content:"\f328"}.fa.fa-lightbulb-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lightbulb-o:before{content:"\f0eb"}.fa.fa-exchange:before{content:"\f362"}.fa.fa-cloud-download:before{content:"\f381"}.fa.fa-cloud-upload:before{content:"\f382"}.fa.fa-bell-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-o:before{content:"\f0f3"}.fa.fa-cutlery:before{content:"\f2e7"}.fa.fa-file-text-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-text-o:before{content:"\f15c"}.fa.fa-building-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-building-o:before{content:"\f1ad"}.fa.fa-hospital-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hospital-o:before{content:"\f0f8"}.fa.fa-tablet:before{content:"\f3fa"}.fa.fa-mobile-phone:before,.fa.fa-mobile:before{content:"\f3cd"}.fa.fa-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-o:before{content:"\f111"}.fa.fa-mail-reply:before{content:"\f3e5"}.fa.fa-github-alt{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-folder-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-o:before{content:"\f07b"}.fa.fa-folder-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-open-o:before{content:"\f07c"}.fa.fa-smile-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-smile-o:before{content:"\f118"}.fa.fa-frown-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-frown-o:before{content:"\f119"}.fa.fa-meh-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-meh-o:before{content:"\f11a"}.fa.fa-keyboard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-keyboard-o:before{content:"\f11c"}.fa.fa-flag-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-flag-o:before{content:"\f024"}.fa.fa-mail-reply-all:before{content:"\f122"}.fa.fa-star-half-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-o:before{content:"\f089"}.fa.fa-star-half-empty{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-empty:before{content:"\f089"}.fa.fa-star-half-full{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-full:before{content:"\f089"}.fa.fa-code-fork:before{content:"\f126"}.fa.fa-chain-broken:before{content:"\f127"}.fa.fa-shield:before{content:"\f3ed"}.fa.fa-calendar-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-css3,.fa.fa-html5,.fa.fa-maxcdn{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ticket:before{content:"\f3ff"}.fa.fa-minus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-minus-square-o:before{content:"\f146"}.fa.fa-level-up:before{content:"\f3bf"}.fa.fa-level-down:before{content:"\f3be"}.fa.fa-pencil-square:before{content:"\f14b"}.fa.fa-external-link-square:before{content:"\f360"}.fa.fa-compass{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down:before{content:"\f150"}.fa.fa-toggle-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-down:before{content:"\f150"}.fa.fa-caret-square-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-up:before{content:"\f151"}.fa.fa-toggle-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-up:before{content:"\f151"}.fa.fa-caret-square-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-right:before{content:"\f152"}.fa.fa-toggle-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-right:before{content:"\f152"}.fa.fa-eur:before,.fa.fa-euro:before{content:"\f153"}.fa.fa-gbp:before{content:"\f154"}.fa.fa-dollar:before,.fa.fa-usd:before{content:"\f155"}.fa.fa-inr:before,.fa.fa-rupee:before{content:"\f156"}.fa.fa-cny:before,.fa.fa-jpy:before,.fa.fa-rmb:before,.fa.fa-yen:before{content:"\f157"}.fa.fa-rouble:before,.fa.fa-rub:before,.fa.fa-ruble:before{content:"\f158"}.fa.fa-krw:before,.fa.fa-won:before{content:"\f159"}.fa.fa-bitcoin,.fa.fa-btc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitcoin:before{content:"\f15a"}.fa.fa-file-text:before{content:"\f15c"}.fa.fa-sort-alpha-asc:before{content:"\f15d"}.fa.fa-sort-alpha-desc:before{content:"\f15e"}.fa.fa-sort-amount-asc:before{content:"\f160"}.fa.fa-sort-amount-desc:before{content:"\f161"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-sort-numeric-desc:before{content:"\f163"}.fa.fa-xing,.fa.fa-xing-square,.fa.fa-youtube,.fa.fa-youtube-play,.fa.fa-youtube-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-youtube-play:before{content:"\f167"}.fa.fa-adn,.fa.fa-bitbucket,.fa.fa-bitbucket-square,.fa.fa-dropbox,.fa.fa-flickr,.fa.fa-instagram,.fa.fa-stack-overflow{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitbucket-square:before{content:"\f171"}.fa.fa-tumblr,.fa.fa-tumblr-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-long-arrow-down:before{content:"\f309"}.fa.fa-long-arrow-up:before{content:"\f30c"}.fa.fa-long-arrow-left:before{content:"\f30a"}.fa.fa-long-arrow-right:before{content:"\f30b"}.fa.fa-android,.fa.fa-apple,.fa.fa-dribbble,.fa.fa-foursquare,.fa.fa-gittip,.fa.fa-gratipay,.fa.fa-linux,.fa.fa-skype,.fa.fa-trello,.fa.fa-windows{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gittip:before{content:"\f184"}.fa.fa-sun-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sun-o:before{content:"\f185"}.fa.fa-moon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-moon-o:before{content:"\f186"}.fa.fa-pagelines,.fa.fa-renren,.fa.fa-stack-exchange,.fa.fa-vk,.fa.fa-weibo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-arrow-circle-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\f359"}.fa.fa-caret-square-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-left:before{content:"\f191"}.fa.fa-toggle-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-left:before{content:"\f191"}.fa.fa-dot-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dot-circle-o:before{content:"\f192"}.fa.fa-vimeo-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-try:before,.fa.fa-turkish-lira:before{content:"\f195"}.fa.fa-plus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-plus-square-o:before{content:"\f0fe"}.fa.fa-openid,.fa.fa-slack,.fa.fa-wordpress{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bank:before,.fa.fa-institution:before{content:"\f19c"}.fa.fa-mortar-board:before{content:"\f19d"}.fa.fa-delicious,.fa.fa-digg,.fa.fa-drupal,.fa.fa-google,.fa.fa-joomla,.fa.fa-pied-piper-alt,.fa.fa-pied-piper-pp,.fa.fa-reddit,.fa.fa-reddit-square,.fa.fa-stumbleupon,.fa.fa-stumbleupon-circle,.fa.fa-yahoo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-spoon:before{content:"\f2e5"}.fa.fa-behance,.fa.fa-behance-square,.fa.fa-steam,.fa.fa-steam-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-automobile:before{content:"\f1b9"}.fa.fa-cab:before{content:"\f1ba"}.fa.fa-envelope-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-o:before{content:"\f0e0"}.fa.fa-deviantart,.fa.fa-soundcloud{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-file-pdf-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-pdf-o:before{content:"\f1c1"}.fa.fa-file-word-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-word-o:before{content:"\f1c2"}.fa.fa-file-excel-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-excel-o:before{content:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\f1c4"}.fa.fa-file-image-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-photo-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-photo-o:before{content:"\f1c5"}.fa.fa-file-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-picture-o:before{content:"\f1c5"}.fa.fa-file-archive-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-archive-o:before{content:"\f1c6"}.fa.fa-file-zip-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-zip-o:before{content:"\f1c6"}.fa.fa-file-audio-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-audio-o:before{content:"\f1c7"}.fa.fa-file-sound-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-sound-o:before{content:"\f1c7"}.fa.fa-file-video-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-video-o:before{content:"\f1c8"}.fa.fa-file-movie-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-movie-o:before{content:"\f1c8"}.fa.fa-file-code-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-code-o:before{content:"\f1c9"}.fa.fa-codepen,.fa.fa-jsfiddle,.fa.fa-vine{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-life-bouy,.fa.fa-life-ring{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-bouy:before{content:"\f1cd"}.fa.fa-life-buoy{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-buoy:before{content:"\f1cd"}.fa.fa-life-saver{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-saver:before{content:"\f1cd"}.fa.fa-support{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-support:before{content:"\f1cd"}.fa.fa-circle-o-notch:before{content:"\f1ce"}.fa.fa-ra,.fa.fa-rebel{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ra:before{content:"\f1d0"}.fa.fa-resistance{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-resistance:before{content:"\f1d0"}.fa.fa-empire,.fa.fa-ge{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ge:before{content:"\f1d1"}.fa.fa-git,.fa.fa-git-square,.fa.fa-hacker-news,.fa.fa-y-combinator-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-y-combinator-square:before{content:"\f1d4"}.fa.fa-yc-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc-square:before{content:"\f1d4"}.fa.fa-qq,.fa.fa-tencent-weibo,.fa.fa-wechat,.fa.fa-weixin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wechat:before{content:"\f1d7"}.fa.fa-send:before{content:"\f1d8"}.fa.fa-paper-plane-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paper-plane-o:before{content:"\f1d8"}.fa.fa-send-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-send-o:before{content:"\f1d8"}.fa.fa-circle-thin{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-thin:before{content:"\f111"}.fa.fa-header:before{content:"\f1dc"}.fa.fa-sliders:before{content:"\f1de"}.fa.fa-futbol-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-futbol-o:before{content:"\f1e3"}.fa.fa-soccer-ball-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-soccer-ball-o:before{content:"\f1e3"}.fa.fa-slideshare,.fa.fa-twitch,.fa.fa-yelp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-newspaper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-newspaper-o:before{content:"\f1ea"}.fa.fa-cc-amex,.fa.fa-cc-discover,.fa.fa-cc-mastercard,.fa.fa-cc-paypal,.fa.fa-cc-stripe,.fa.fa-cc-visa,.fa.fa-google-wallet,.fa.fa-paypal{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bell-slash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-slash-o:before{content:"\f1f6"}.fa.fa-trash:before{content:"\f2ed"}.fa.fa-copyright{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-eyedropper:before{content:"\f1fb"}.fa.fa-area-chart:before{content:"\f1fe"}.fa.fa-pie-chart:before{content:"\f200"}.fa.fa-line-chart:before{content:"\f201"}.fa.fa-angellist,.fa.fa-ioxhost,.fa.fa-lastfm,.fa.fa-lastfm-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-cc{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-cc:before{content:"\f20a"}.fa.fa-ils:before,.fa.fa-shekel:before,.fa.fa-sheqel:before{content:"\f20b"}.fa.fa-meanpath{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-meanpath:before{content:"\f2b4"}.fa.fa-buysellads,.fa.fa-connectdevelop,.fa.fa-dashcube,.fa.fa-forumbee,.fa.fa-leanpub,.fa.fa-sellsy,.fa.fa-shirtsinbulk,.fa.fa-simplybuilt,.fa.fa-skyatlas{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-diamond{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-diamond:before{content:"\f3a5"}.fa.fa-intersex:before{content:"\f224"}.fa.fa-facebook-official{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-official:before{content:"\f09a"}.fa.fa-pinterest-p,.fa.fa-whatsapp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-hotel:before{content:"\f236"}.fa.fa-medium,.fa.fa-viacoin,.fa.fa-y-combinator,.fa.fa-yc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc:before{content:"\f23b"}.fa.fa-expeditedssl,.fa.fa-opencart,.fa.fa-optin-monster{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-battery-4:before,.fa.fa-battery:before{content:"\f240"}.fa.fa-battery-3:before{content:"\f241"}.fa.fa-battery-2:before{content:"\f242"}.fa.fa-battery-1:before{content:"\f243"}.fa.fa-battery-0:before{content:"\f244"}.fa.fa-object-group,.fa.fa-object-ungroup,.fa.fa-sticky-note-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sticky-note-o:before{content:"\f249"}.fa.fa-cc-diners-club,.fa.fa-cc-jcb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-clone,.fa.fa-hourglass-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hourglass-o:before{content:"\f254"}.fa.fa-hourglass-1:before{content:"\f251"}.fa.fa-hourglass-2:before{content:"\f252"}.fa.fa-hourglass-3:before{content:"\f253"}.fa.fa-hand-rock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-rock-o:before{content:"\f255"}.fa.fa-hand-grab-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-grab-o:before{content:"\f255"}.fa.fa-hand-paper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-paper-o:before{content:"\f256"}.fa.fa-hand-stop-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-stop-o:before{content:"\f256"}.fa.fa-hand-scissors-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-scissors-o:before{content:"\f257"}.fa.fa-hand-lizard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-lizard-o:before{content:"\f258"}.fa.fa-hand-spock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-spock-o:before{content:"\f259"}.fa.fa-hand-pointer-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-pointer-o:before{content:"\f25a"}.fa.fa-hand-peace-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-peace-o:before{content:"\f25b"}.fa.fa-registered{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-chrome,.fa.fa-creative-commons,.fa.fa-firefox,.fa.fa-get-pocket,.fa.fa-gg,.fa.fa-gg-circle,.fa.fa-internet-explorer,.fa.fa-odnoklassniki,.fa.fa-odnoklassniki-square,.fa.fa-opera,.fa.fa-safari,.fa.fa-tripadvisor,.fa.fa-wikipedia-w{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-television:before{content:"\f26c"}.fa.fa-500px,.fa.fa-amazon,.fa.fa-contao{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-calendar-plus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-plus-o:before{content:"\f271"}.fa.fa-calendar-minus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-minus-o:before{content:"\f272"}.fa.fa-calendar-times-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-times-o:before{content:"\f273"}.fa.fa-calendar-check-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-check-o:before{content:"\f274"}.fa.fa-map-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-map-o:before{content:"\f279"}.fa.fa-commenting{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-commenting:before{content:"\f4ad"}.fa.fa-commenting-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-commenting-o:before{content:"\f4ad"}.fa.fa-houzz,.fa.fa-vimeo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-vimeo:before{content:"\f27d"}.fa.fa-black-tie,.fa.fa-edge,.fa.fa-fonticons,.fa.fa-reddit-alien{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card-alt:before{content:"\f09d"}.fa.fa-codiepie,.fa.fa-fort-awesome,.fa.fa-mixcloud,.fa.fa-modx,.fa.fa-product-hunt,.fa.fa-scribd,.fa.fa-usb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-pause-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pause-circle-o:before{content:"\f28b"}.fa.fa-stop-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-stop-circle-o:before{content:"\f28d"}.fa.fa-bluetooth,.fa.fa-bluetooth-b,.fa.fa-envira,.fa.fa-gitlab,.fa.fa-wheelchair-alt,.fa.fa-wpbeginner,.fa.fa-wpforms{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wheelchair-alt:before{content:"\f368"}.fa.fa-question-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-question-circle-o:before{content:"\f059"}.fa.fa-volume-control-phone:before{content:"\f2a0"}.fa.fa-asl-interpreting:before{content:"\f2a3"}.fa.fa-deafness:before,.fa.fa-hard-of-hearing:before{content:"\f2a4"}.fa.fa-glide,.fa.fa-glide-g{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-signing:before{content:"\f2a7"}.fa.fa-first-order,.fa.fa-google-plus-official,.fa.fa-pied-piper,.fa.fa-snapchat,.fa.fa-snapchat-ghost,.fa.fa-snapchat-square,.fa.fa-themeisle,.fa.fa-viadeo,.fa.fa-viadeo-square,.fa.fa-yoast{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-official:before{content:"\f2b3"}.fa.fa-google-plus-circle{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-circle:before{content:"\f2b3"}.fa.fa-fa,.fa.fa-font-awesome{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-fa:before{content:"\f2b4"}.fa.fa-handshake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-envelope-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-open-o:before{content:"\f2b6"}.fa.fa-linode{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-address-book-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-book-o:before{content:"\f2b9"}.fa.fa-vcard:before{content:"\f2bb"}.fa.fa-address-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-card-o:before{content:"\f2bb"}.fa.fa-vcard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-vcard-o:before{content:"\f2bb"}.fa.fa-user-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-circle-o:before{content:"\f2bd"}.fa.fa-user-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-o:before{content:"\f007"}.fa.fa-id-badge{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license:before{content:"\f2c2"}.fa.fa-id-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-id-card-o:before{content:"\f2c2"}.fa.fa-drivers-license-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license-o:before{content:"\f2c2"}.fa.fa-free-code-camp,.fa.fa-quora,.fa.fa-telegram{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-thermometer-4:before,.fa.fa-thermometer:before{content:"\f2c7"}.fa.fa-thermometer-3:before{content:"\f2c8"}.fa.fa-thermometer-2:before{content:"\f2c9"}.fa.fa-thermometer-1:before{content:"\f2ca"}.fa.fa-thermometer-0:before{content:"\f2cb"}.fa.fa-bathtub:before,.fa.fa-s15:before{content:"\f2cd"}.fa.fa-window-maximize,.fa.fa-window-restore{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle:before{content:"\f410"}.fa.fa-window-close-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-window-close-o:before{content:"\f410"}.fa.fa-times-rectangle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle-o:before{content:"\f410"}.fa.fa-bandcamp,.fa.fa-eercast,.fa.fa-etsy,.fa.fa-grav,.fa.fa-imdb,.fa.fa-ravelry{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-eercast:before{content:"\f2da"}.fa.fa-snowflake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-snowflake-o:before{content:"\f2dc"}.fa.fa-spotify,.fa.fa-superpowers,.fa.fa-wpexplorer{font-family:"Font Awesome 5 Brands";font-weight:400}
\ No newline at end of file
diff --git a/data/interfaces/default/css/jquery-ui.min.css b/data/interfaces/default/css/jquery-ui.min.css
new file mode 100644
index 00000000..efccc476
--- /dev/null
+++ b/data/interfaces/default/css/jquery-ui.min.css
@@ -0,0 +1,7 @@
+/*! jQuery UI - v1.11.4 - 2015-03-11
+* http://jqueryui.com
+* Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=gloss_wave&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=highlight_soft&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=glass&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=diagonals_thick&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=diagonals_thick&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=flat&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+
+.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:0.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:0.4em 2.1em 0.4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #ddd;background:#eee url("images/ui-bg_highlight-soft_100_eeeeee_1x100.png") 50% top repeat-x;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #e78f08;background:#f6a828 url("images/ui-bg_gloss-wave_35_f6a828_500x100.png") 50% 50% repeat-x;color:#fff;font-weight:bold}.ui-widget-header a{color:#fff}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #ccc;background:#f6f6f6 url("images/ui-bg_glass_100_f6f6f6_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#1c94c4}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#1c94c4;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #fbcb09;background:#fdf5ce url("images/ui-bg_glass_100_fdf5ce_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#c77405}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#c77405;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #fbd850;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#eb8f00}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#eb8f00;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fed22f;background:#ffe45c url("images/ui-bg_highlight-soft_75_ffe45c_1x100.png") 50% top repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#b81900 url("images/ui-bg_diagonals-thick_18_b81900_40x40.png") 50% 50% repeat;color:#fff}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_228ef1_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_ffd27a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#666 url("images/ui-bg_diagonals-thick_20_666666_40x40.png") 50% 50% repeat;opacity:.5;filter:Alpha(Opacity=50)}.ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#000 url("images/ui-bg_flat_10_000000_40x100.png") 50% 50% repeat-x;opacity:.2;filter:Alpha(Opacity=20);border-radius:5px}
\ No newline at end of file
diff --git a/data/interfaces/default/css/jquery.dataTables.css b/data/interfaces/default/css/jquery.dataTables.css
new file mode 100644
index 00000000..eec02ef5
--- /dev/null
+++ b/data/interfaces/default/css/jquery.dataTables.css
@@ -0,0 +1,455 @@
+/*
+ * Table styles
+ */
+table.dataTable {
+ width: 100%;
+ margin: 0 auto;
+ clear: both;
+ border-collapse: separate;
+ border-spacing: 0;
+ /*
+ * Header and footer styles
+ */
+ /*
+ * Body styles
+ */
+}
+table.dataTable thead th,
+table.dataTable tfoot th {
+ font-weight: bold;
+}
+table.dataTable thead th,
+table.dataTable thead td {
+ padding: 10px 18px;
+ border-bottom: 1px solid #111;
+}
+table.dataTable thead th:active,
+table.dataTable thead td:active {
+ outline: none;
+}
+table.dataTable tfoot th,
+table.dataTable tfoot td {
+ padding: 10px 18px 6px 18px;
+ border-top: 1px solid #111;
+}
+table.dataTable thead .sorting,
+table.dataTable thead .sorting_asc,
+table.dataTable thead .sorting_desc {
+ cursor: pointer;
+ *cursor: hand;
+}
+table.dataTable thead .sorting,
+table.dataTable thead .sorting_asc,
+table.dataTable thead .sorting_desc,
+table.dataTable thead .sorting_asc_disabled,
+table.dataTable thead .sorting_desc_disabled {
+ background-repeat: no-repeat;
+ background-position: center right;
+}
+table.dataTable thead .sorting {
+ background-image: url("../images/sort_both.png");
+}
+table.dataTable thead .sorting_asc {
+ background-image: url("../images/sort_asc.png");
+}
+table.dataTable thead .sorting_desc {
+ background-image: url("../images/sort_desc.png");
+}
+table.dataTable thead .sorting_asc_disabled {
+ background-image: url("../images/sort_asc_disabled.png");
+}
+table.dataTable thead .sorting_desc_disabled {
+ background-image: url("../images/sort_desc_disabled.png");
+}
+table.dataTable tbody tr {
+ background-color: #ffffff;
+}
+table.dataTable tbody tr.selected {
+ background-color: #B0BED9;
+}
+table.dataTable tbody th,
+table.dataTable tbody td {
+ padding: 8px 10px;
+}
+table.dataTable.row-border tbody th, table.dataTable.row-border tbody td, table.dataTable.display tbody th, table.dataTable.display tbody td {
+ border-top: 1px solid #ddd;
+}
+table.dataTable.row-border tbody tr:first-child th,
+table.dataTable.row-border tbody tr:first-child td, table.dataTable.display tbody tr:first-child th,
+table.dataTable.display tbody tr:first-child td {
+ border-top: none;
+}
+table.dataTable.cell-border tbody th, table.dataTable.cell-border tbody td {
+ border-top: 1px solid #ddd;
+ border-right: 1px solid #ddd;
+}
+table.dataTable.cell-border tbody tr th:first-child,
+table.dataTable.cell-border tbody tr td:first-child {
+ border-left: 1px solid #ddd;
+}
+table.dataTable.cell-border tbody tr:first-child th,
+table.dataTable.cell-border tbody tr:first-child td {
+ border-top: none;
+}
+table.dataTable.stripe tbody tr.odd, table.dataTable.display tbody tr.odd {
+ background-color: #f9f9f9;
+}
+table.dataTable.stripe tbody tr.odd.selected, table.dataTable.display tbody tr.odd.selected {
+ background-color: #abb9d3;
+}
+table.dataTable.hover tbody tr:hover, table.dataTable.display tbody tr:hover {
+ background-color: whitesmoke;
+}
+table.dataTable.hover tbody tr:hover.selected, table.dataTable.display tbody tr:hover.selected {
+ background-color: #a9b7d1;
+}
+table.dataTable.order-column tbody tr > .sorting_1,
+table.dataTable.order-column tbody tr > .sorting_2,
+table.dataTable.order-column tbody tr > .sorting_3, table.dataTable.display tbody tr > .sorting_1,
+table.dataTable.display tbody tr > .sorting_2,
+table.dataTable.display tbody tr > .sorting_3 {
+ background-color: #f9f9f9;
+}
+table.dataTable.order-column tbody tr.selected > .sorting_1,
+table.dataTable.order-column tbody tr.selected > .sorting_2,
+table.dataTable.order-column tbody tr.selected > .sorting_3, table.dataTable.display tbody tr.selected > .sorting_1,
+table.dataTable.display tbody tr.selected > .sorting_2,
+table.dataTable.display tbody tr.selected > .sorting_3 {
+ background-color: #acbad4;
+}
+table.dataTable.display tbody tr.odd > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd > .sorting_1 {
+ background-color: #f1f1f1;
+}
+table.dataTable.display tbody tr.odd > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd > .sorting_2 {
+ background-color: #f3f3f3;
+}
+table.dataTable.display tbody tr.odd > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd > .sorting_3 {
+ background-color: whitesmoke;
+}
+table.dataTable.display tbody tr.odd.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_1 {
+ background-color: #a6b3cd;
+}
+table.dataTable.display tbody tr.odd.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_2 {
+ background-color: #a7b5ce;
+}
+table.dataTable.display tbody tr.odd.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_3 {
+ background-color: #a9b6d0;
+}
+table.dataTable.display tbody tr.even > .sorting_1, table.dataTable.order-column.stripe tbody tr.even > .sorting_1 {
+ background-color: #f9f9f9;
+}
+table.dataTable.display tbody tr.even > .sorting_2, table.dataTable.order-column.stripe tbody tr.even > .sorting_2 {
+ background-color: #fbfbfb;
+}
+table.dataTable.display tbody tr.even > .sorting_3, table.dataTable.order-column.stripe tbody tr.even > .sorting_3 {
+ background-color: #fdfdfd;
+}
+table.dataTable.display tbody tr.even.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_1 {
+ background-color: #acbad4;
+}
+table.dataTable.display tbody tr.even.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_2 {
+ background-color: #adbbd6;
+}
+table.dataTable.display tbody tr.even.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_3 {
+ background-color: #afbdd8;
+}
+table.dataTable.display tbody tr:hover > .sorting_1, table.dataTable.order-column.hover tbody tr:hover > .sorting_1 {
+ background-color: #eaeaea;
+}
+table.dataTable.display tbody tr:hover > .sorting_2, table.dataTable.order-column.hover tbody tr:hover > .sorting_2 {
+ background-color: #ebebeb;
+}
+table.dataTable.display tbody tr:hover > .sorting_3, table.dataTable.order-column.hover tbody tr:hover > .sorting_3 {
+ background-color: #eeeeee;
+}
+table.dataTable.display tbody tr:hover.selected > .sorting_1, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_1 {
+ background-color: #a1aec7;
+}
+table.dataTable.display tbody tr:hover.selected > .sorting_2, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_2 {
+ background-color: #a2afc8;
+}
+table.dataTable.display tbody tr:hover.selected > .sorting_3, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_3 {
+ background-color: #a4b2cb;
+}
+table.dataTable.no-footer {
+ border-bottom: 1px solid #111;
+}
+table.dataTable.nowrap th, table.dataTable.nowrap td {
+ white-space: nowrap;
+}
+table.dataTable.compact thead th,
+table.dataTable.compact thead td {
+ padding: 4px 17px 4px 4px;
+}
+table.dataTable.compact tfoot th,
+table.dataTable.compact tfoot td {
+ padding: 4px;
+}
+table.dataTable.compact tbody th,
+table.dataTable.compact tbody td {
+ padding: 4px;
+}
+table.dataTable th.dt-left,
+table.dataTable td.dt-left {
+ text-align: left;
+}
+table.dataTable th.dt-center,
+table.dataTable td.dt-center,
+table.dataTable td.dataTables_empty {
+ text-align: center;
+}
+table.dataTable th.dt-right,
+table.dataTable td.dt-right {
+ text-align: right;
+}
+table.dataTable th.dt-justify,
+table.dataTable td.dt-justify {
+ text-align: justify;
+}
+table.dataTable th.dt-nowrap,
+table.dataTable td.dt-nowrap {
+ white-space: nowrap;
+}
+table.dataTable thead th.dt-head-left,
+table.dataTable thead td.dt-head-left,
+table.dataTable tfoot th.dt-head-left,
+table.dataTable tfoot td.dt-head-left {
+ text-align: left;
+}
+table.dataTable thead th.dt-head-center,
+table.dataTable thead td.dt-head-center,
+table.dataTable tfoot th.dt-head-center,
+table.dataTable tfoot td.dt-head-center {
+ text-align: center;
+}
+table.dataTable thead th.dt-head-right,
+table.dataTable thead td.dt-head-right,
+table.dataTable tfoot th.dt-head-right,
+table.dataTable tfoot td.dt-head-right {
+ text-align: right;
+}
+table.dataTable thead th.dt-head-justify,
+table.dataTable thead td.dt-head-justify,
+table.dataTable tfoot th.dt-head-justify,
+table.dataTable tfoot td.dt-head-justify {
+ text-align: justify;
+}
+table.dataTable thead th.dt-head-nowrap,
+table.dataTable thead td.dt-head-nowrap,
+table.dataTable tfoot th.dt-head-nowrap,
+table.dataTable tfoot td.dt-head-nowrap {
+ white-space: nowrap;
+}
+table.dataTable tbody th.dt-body-left,
+table.dataTable tbody td.dt-body-left {
+ text-align: left;
+}
+table.dataTable tbody th.dt-body-center,
+table.dataTable tbody td.dt-body-center {
+ text-align: center;
+}
+table.dataTable tbody th.dt-body-right,
+table.dataTable tbody td.dt-body-right {
+ text-align: right;
+}
+table.dataTable tbody th.dt-body-justify,
+table.dataTable tbody td.dt-body-justify {
+ text-align: justify;
+}
+table.dataTable tbody th.dt-body-nowrap,
+table.dataTable tbody td.dt-body-nowrap {
+ white-space: nowrap;
+}
+
+table.dataTable,
+table.dataTable th,
+table.dataTable td {
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+}
+
+/*
+ * Control feature layout
+ */
+.dataTables_wrapper {
+ position: relative;
+ clear: both;
+ *zoom: 1;
+ zoom: 1;
+}
+.dataTables_wrapper .dataTables_length {
+ float: left;
+}
+.dataTables_wrapper .dataTables_filter {
+ float: right;
+ text-align: right;
+}
+.dataTables_wrapper .dataTables_filter input {
+ margin-left: 0.5em;
+}
+.dataTables_wrapper .dataTables_info {
+ clear: both;
+ float: left;
+ padding-top: 0.755em;
+}
+.dataTables_wrapper .dataTables_paginate {
+ float: right;
+ text-align: right;
+ padding-top: 0.25em;
+}
+.dataTables_wrapper .dataTables_paginate .paginate_button {
+ box-sizing: border-box;
+ display: inline-block;
+ min-width: 1.5em;
+ padding: 0.5em 1em;
+ margin-left: 2px;
+ text-align: center;
+ text-decoration: none !important;
+ cursor: pointer;
+ *cursor: hand;
+ color: #333 !important;
+ border: 1px solid transparent;
+}
+.dataTables_wrapper .dataTables_paginate .paginate_button.current, .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
+ color: #333 !important;
+ border: 1px solid #cacaca;
+ background-color: white;
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #dcdcdc));
+ /* Chrome,Safari4+ */
+ background: -webkit-linear-gradient(top, white 0%, #dcdcdc 100%);
+ /* Chrome10+,Safari5.1+ */
+ background: -moz-linear-gradient(top, white 0%, #dcdcdc 100%);
+ /* FF3.6+ */
+ background: -ms-linear-gradient(top, white 0%, #dcdcdc 100%);
+ /* IE10+ */
+ background: -o-linear-gradient(top, white 0%, #dcdcdc 100%);
+ /* Opera 11.10+ */
+ background: linear-gradient(to bottom, white 0%, #dcdcdc 100%);
+ /* W3C */
+}
+.dataTables_wrapper .dataTables_paginate .paginate_button.disabled, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active {
+ cursor: default;
+ color: #666 !important;
+ border: 1px solid transparent;
+ background: transparent;
+ box-shadow: none;
+}
+.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
+ color: white !important;
+ border: 1px solid #111;
+ background-color: #585858;
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));
+ /* Chrome,Safari4+ */
+ background: -webkit-linear-gradient(top, #585858 0%, #111 100%);
+ /* Chrome10+,Safari5.1+ */
+ background: -moz-linear-gradient(top, #585858 0%, #111 100%);
+ /* FF3.6+ */
+ background: -ms-linear-gradient(top, #585858 0%, #111 100%);
+ /* IE10+ */
+ background: -o-linear-gradient(top, #585858 0%, #111 100%);
+ /* Opera 11.10+ */
+ background: linear-gradient(to bottom, #585858 0%, #111 100%);
+ /* W3C */
+}
+.dataTables_wrapper .dataTables_paginate .paginate_button:active {
+ outline: none;
+ background-color: #2b2b2b;
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));
+ /* Chrome,Safari4+ */
+ background: -webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
+ /* Chrome10+,Safari5.1+ */
+ background: -moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
+ /* FF3.6+ */
+ background: -ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
+ /* IE10+ */
+ background: -o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
+ /* Opera 11.10+ */
+ background: linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);
+ /* W3C */
+ box-shadow: inset 0 0 3px #111;
+}
+.dataTables_wrapper .dataTables_paginate .ellipsis {
+ padding: 0 1em;
+}
+.dataTables_wrapper .dataTables_processing {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ width: 100%;
+ height: 40px;
+ margin-left: -50%;
+ margin-top: -25px;
+ padding-top: 20px;
+ text-align: center;
+ font-size: 1.2em;
+ background-color: white;
+ background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(25%, rgba(255, 255, 255, 0.9)), color-stop(75%, rgba(255, 255, 255, 0.9)), color-stop(100%, rgba(255, 255, 255, 0)));
+ /* Chrome,Safari4+ */
+ background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
+ /* Chrome10+,Safari5.1+ */
+ background: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
+ /* FF3.6+ */
+ background: -ms-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
+ /* IE10+ */
+ background: -o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
+ /* Opera 11.10+ */
+ background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
+ /* W3C */
+}
+.dataTables_wrapper .dataTables_length,
+.dataTables_wrapper .dataTables_filter,
+.dataTables_wrapper .dataTables_info,
+.dataTables_wrapper .dataTables_processing,
+.dataTables_wrapper .dataTables_paginate {
+ color: #333;
+}
+.dataTables_wrapper .dataTables_scroll {
+ clear: both;
+}
+.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody {
+ *margin-top: -1px;
+ -webkit-overflow-scrolling: touch;
+}
+.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th > div.dataTables_sizing,
+.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td > div.dataTables_sizing {
+ height: 0;
+ overflow: hidden;
+ margin: 0 !important;
+ padding: 0 !important;
+}
+.dataTables_wrapper.no-footer .dataTables_scrollBody {
+ border-bottom: 1px solid #111;
+}
+.dataTables_wrapper.no-footer div.dataTables_scrollHead table,
+.dataTables_wrapper.no-footer div.dataTables_scrollBody table {
+ border-bottom: none;
+}
+.dataTables_wrapper:after {
+ visibility: hidden;
+ display: block;
+ content: "";
+ clear: both;
+ height: 0;
+}
+
+@media screen and (max-width: 767px) {
+ .dataTables_wrapper .dataTables_info,
+ .dataTables_wrapper .dataTables_paginate {
+ float: none;
+ text-align: center;
+ }
+ .dataTables_wrapper .dataTables_paginate {
+ margin-top: 0.5em;
+ }
+}
+@media screen and (max-width: 640px) {
+ .dataTables_wrapper .dataTables_length,
+ .dataTables_wrapper .dataTables_filter {
+ float: none;
+ text-align: center;
+ }
+ .dataTables_wrapper .dataTables_filter {
+ margin-top: 0.5em;
+ }
+}
diff --git a/data/interfaces/default/css/jquery.scrollbar.css b/data/interfaces/default/css/jquery.scrollbar.css
new file mode 100644
index 00000000..e0a7df51
--- /dev/null
+++ b/data/interfaces/default/css/jquery.scrollbar.css
@@ -0,0 +1,904 @@
+/*************** SCROLLBAR BASE CSS ***************/
+.scroll-wrapper {
+ overflow: hidden !important;
+ padding: 0 !important;
+ position: relative;
+}
+.scroll-wrapper > .scroll-content {
+ border: none !important;
+ box-sizing: content-box !important;
+ height: auto;
+ left: 0;
+ margin: 0;
+ max-height: none;
+ max-width: none !important;
+ overflow: scroll !important;
+ padding: 0;
+ position: relative !important;
+ top: 0;
+ width: auto !important;
+}
+.scroll-wrapper > .scroll-content::-webkit-scrollbar {
+ height: 0;
+ width: 0;
+}
+.scroll-wrapper.scroll--rtl {
+ direction: rtl;
+}
+
+.scroll-element {
+ box-sizing: content-box;
+ display: none;
+}
+.scroll-element div {
+ box-sizing: content-box;
+}
+.scroll-element .scroll-bar,
+.scroll-element .scroll-arrow {
+ cursor: default;
+}
+.scroll-element.scroll-x.scroll-scrollx_visible, .scroll-element.scroll-y.scroll-scrolly_visible {
+ display: block;
+}
+
+.scroll-textarea {
+ border: 1px solid #cccccc;
+ border-top-color: #999999;
+}
+.scroll-textarea > .scroll-content {
+ overflow: hidden !important;
+}
+.scroll-textarea > .scroll-content > textarea {
+ border: none !important;
+ box-sizing: border-box;
+ height: 100% !important;
+ margin: 0;
+ max-height: none !important;
+ max-width: none !important;
+ overflow: scroll !important;
+ outline: none;
+ padding: 2px;
+ position: relative !important;
+ top: 0;
+ width: 100% !important;
+}
+.scroll-textarea > .scroll-content > textarea::-webkit-scrollbar {
+ height: 0;
+ width: 0;
+}
+
+/*************** SIMPLE INNER SCROLLBAR ***************/
+.scrollbar-inner > .scroll-element,
+.scrollbar-inner > .scroll-element div {
+ border: none;
+ margin: 0;
+ padding: 0;
+ position: absolute;
+ z-index: 10;
+}
+
+.scrollbar-inner > .scroll-element div {
+ display: block;
+ height: 100%;
+ left: 0;
+ top: 0;
+ width: 100%;
+}
+
+.scrollbar-inner > .scroll-element.scroll-x {
+ bottom: 2px;
+ height: 8px;
+ left: 0;
+ width: 100%;
+}
+
+.scrollbar-inner > .scroll-element.scroll-y {
+ height: 100%;
+ right: 2px;
+ top: 0;
+ width: 8px;
+}
+
+.scrollbar-inner > .scroll-element .scroll-element_outer {
+ overflow: hidden;
+}
+
+.scrollbar-inner > .scroll-element .scroll-element_outer,
+.scrollbar-inner > .scroll-element .scroll-element_track,
+.scrollbar-inner > .scroll-element .scroll-bar {
+ -webkit-border-radius: 8px;
+ -moz-border-radius: 8px;
+ border-radius: 8px;
+}
+
+.scrollbar-inner > .scroll-element .scroll-element_track,
+.scrollbar-inner > .scroll-element .scroll-bar {
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
+ filter: alpha(opacity=40);
+ opacity: 0.4;
+}
+
+.scrollbar-inner > .scroll-element .scroll-element_track {
+ background-color: #e0e0e0;
+}
+
+.scrollbar-inner > .scroll-element .scroll-bar {
+ background-color: #c2c2c2;
+}
+
+.scrollbar-inner > .scroll-element:hover .scroll-bar {
+ background-color: #919191;
+}
+
+.scrollbar-inner > .scroll-element.scroll-draggable .scroll-bar {
+ background-color: #919191;
+}
+
+/* update scrollbar offset if both scrolls are visible */
+.scrollbar-inner > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track {
+ left: -12px;
+}
+
+.scrollbar-inner > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track {
+ top: -12px;
+}
+
+.scrollbar-inner > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size {
+ left: -12px;
+}
+
+.scrollbar-inner > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size {
+ top: -12px;
+}
+
+/*************** SIMPLE OUTER SCROLLBAR ***************/
+.scrollbar-outer > .scroll-element,
+.scrollbar-outer > .scroll-element div {
+ border: none;
+ margin: 0;
+ padding: 0;
+ position: absolute;
+ z-index: 10;
+}
+
+.scrollbar-outer > .scroll-element {
+ background-color: #ffffff;
+}
+
+.scrollbar-outer > .scroll-element div {
+ display: block;
+ height: 100%;
+ left: 0;
+ top: 0;
+ width: 100%;
+}
+
+.scrollbar-outer > .scroll-element.scroll-x {
+ bottom: 0;
+ height: 12px;
+ left: 0;
+ width: 100%;
+}
+
+.scrollbar-outer > .scroll-element.scroll-y {
+ height: 100%;
+ right: 0;
+ top: 0;
+ width: 12px;
+}
+
+.scrollbar-outer > .scroll-element.scroll-x .scroll-element_outer {
+ height: 8px;
+ top: 2px;
+}
+
+.scrollbar-outer > .scroll-element.scroll-y .scroll-element_outer {
+ left: 2px;
+ width: 8px;
+}
+
+.scrollbar-outer > .scroll-element .scroll-element_outer {
+ overflow: hidden;
+}
+
+.scrollbar-outer > .scroll-element .scroll-element_track {
+ background-color: #eeeeee;
+}
+
+.scrollbar-outer > .scroll-element .scroll-element_outer,
+.scrollbar-outer > .scroll-element .scroll-element_track,
+.scrollbar-outer > .scroll-element .scroll-bar {
+ -webkit-border-radius: 8px;
+ -moz-border-radius: 8px;
+ border-radius: 8px;
+}
+
+.scrollbar-outer > .scroll-element .scroll-bar {
+ background-color: #d9d9d9;
+}
+
+.scrollbar-outer > .scroll-element .scroll-bar:hover {
+ background-color: #c2c2c2;
+}
+
+.scrollbar-outer > .scroll-element.scroll-draggable .scroll-bar {
+ background-color: #919191;
+}
+
+/* scrollbar height/width & offset from container borders */
+.scrollbar-outer > .scroll-content.scroll-scrolly_visible {
+ left: -12px;
+ margin-left: 12px;
+}
+
+.scrollbar-outer > .scroll-content.scroll-scrollx_visible {
+ top: -12px;
+ margin-top: 12px;
+}
+
+.scrollbar-outer > .scroll-element.scroll-x .scroll-bar {
+ min-width: 10px;
+}
+
+.scrollbar-outer > .scroll-element.scroll-y .scroll-bar {
+ min-height: 10px;
+}
+
+/* update scrollbar offset if both scrolls are visible */
+.scrollbar-outer > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track {
+ left: -14px;
+}
+
+.scrollbar-outer > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track {
+ top: -14px;
+}
+
+.scrollbar-outer > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size {
+ left: -14px;
+}
+
+.scrollbar-outer > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size {
+ top: -14px;
+}
+
+/*************** SCROLLBAR MAC OS X ***************/
+.scrollbar-macosx > .scroll-element,
+.scrollbar-macosx > .scroll-element div {
+ background: none;
+ border: none;
+ margin: 0;
+ padding: 0;
+ position: absolute;
+ z-index: 10;
+}
+
+.scrollbar-macosx > .scroll-element div {
+ display: block;
+ height: 100%;
+ left: 0;
+ top: 0;
+ width: 100%;
+}
+
+.scrollbar-macosx > .scroll-element .scroll-element_track {
+ display: none;
+}
+
+.scrollbar-macosx > .scroll-element .scroll-bar {
+ background-color: #6C6E71;
+ display: block;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
+ filter: alpha(opacity=0);
+ opacity: 0;
+ -webkit-border-radius: 7px;
+ -moz-border-radius: 7px;
+ border-radius: 7px;
+ -webkit-transition: opacity 0.2s linear;
+ -moz-transition: opacity 0.2s linear;
+ -o-transition: opacity 0.2s linear;
+ -ms-transition: opacity 0.2s linear;
+ transition: opacity 0.2s linear;
+}
+
+.scrollbar-macosx:hover > .scroll-element .scroll-bar,
+.scrollbar-macosx > .scroll-element.scroll-draggable .scroll-bar {
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
+ filter: alpha(opacity=70);
+ opacity: 0.7;
+}
+
+.scrollbar-macosx > .scroll-element.scroll-x {
+ bottom: 0px;
+ height: 0px;
+ left: 0;
+ min-width: 100%;
+ overflow: visible;
+ width: 100%;
+}
+
+.scrollbar-macosx > .scroll-element.scroll-y {
+ height: 100%;
+ min-height: 100%;
+ right: 0px;
+ top: 0;
+ width: 0px;
+}
+
+/* scrollbar height/width & offset from container borders */
+.scrollbar-macosx > .scroll-element.scroll-x .scroll-bar {
+ height: 7px;
+ min-width: 10px;
+ top: -9px;
+}
+
+.scrollbar-macosx > .scroll-element.scroll-y .scroll-bar {
+ left: -9px;
+ min-height: 10px;
+ width: 7px;
+}
+
+.scrollbar-macosx > .scroll-element.scroll-x .scroll-element_outer {
+ left: 2px;
+}
+
+.scrollbar-macosx > .scroll-element.scroll-x .scroll-element_size {
+ left: -4px;
+}
+
+.scrollbar-macosx > .scroll-element.scroll-y .scroll-element_outer {
+ top: 2px;
+}
+
+.scrollbar-macosx > .scroll-element.scroll-y .scroll-element_size {
+ top: -4px;
+}
+
+/* update scrollbar offset if both scrolls are visible */
+.scrollbar-macosx > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size {
+ left: -11px;
+}
+
+.scrollbar-macosx > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size {
+ top: -11px;
+}
+
+/*************** SCROLLBAR LIGHT ***************/
+.scrollbar-light > .scroll-element,
+.scrollbar-light > .scroll-element div {
+ border: none;
+ margin: 0;
+ overflow: hidden;
+ padding: 0;
+ position: absolute;
+ z-index: 10;
+}
+
+.scrollbar-light > .scroll-element {
+ background-color: #ffffff;
+}
+
+.scrollbar-light > .scroll-element div {
+ display: block;
+ height: 100%;
+ left: 0;
+ top: 0;
+ width: 100%;
+}
+
+.scrollbar-light > .scroll-element .scroll-element_outer {
+ -webkit-border-radius: 10px;
+ -moz-border-radius: 10px;
+ border-radius: 10px;
+}
+
+.scrollbar-light > .scroll-element .scroll-element_size {
+ background: #dbdbdb;
+ background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2RiZGJkYiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNlOGU4ZTgiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+");
+ background: -moz-linear-gradient(left, #dbdbdb 0%, #e8e8e8 100%);
+ background: -webkit-gradient(linear, left top, right top, color-stop(0%, #dbdbdb), color-stop(100%, #e8e8e8));
+ background: -webkit-linear-gradient(left, #dbdbdb 0%, #e8e8e8 100%);
+ background: -o-linear-gradient(left, #dbdbdb 0%, #e8e8e8 100%);
+ background: -ms-linear-gradient(left, #dbdbdb 0%, #e8e8e8 100%);
+ background: linear-gradient(to right, #dbdbdb 0%, #e8e8e8 100%);
+ -webkit-border-radius: 10px;
+ -moz-border-radius: 10px;
+ border-radius: 10px;
+}
+
+.scrollbar-light > .scroll-element.scroll-x {
+ bottom: 0;
+ height: 17px;
+ left: 0;
+ min-width: 100%;
+ width: 100%;
+}
+
+.scrollbar-light > .scroll-element.scroll-y {
+ height: 100%;
+ min-height: 100%;
+ right: 0;
+ top: 0;
+ width: 17px;
+}
+
+.scrollbar-light > .scroll-element .scroll-bar {
+ background: #fefefe;
+ background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZlZmVmZSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNWY1ZjUiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+");
+ background: -moz-linear-gradient(left, #fefefe 0%, #f5f5f5 100%);
+ background: -webkit-gradient(linear, left top, right top, color-stop(0%, #fefefe), color-stop(100%, #f5f5f5));
+ background: -webkit-linear-gradient(left, #fefefe 0%, #f5f5f5 100%);
+ background: -o-linear-gradient(left, #fefefe 0%, #f5f5f5 100%);
+ background: -ms-linear-gradient(left, #fefefe 0%, #f5f5f5 100%);
+ background: linear-gradient(to right, #fefefe 0%, #f5f5f5 100%);
+ border: 1px solid #dbdbdb;
+ -webkit-border-radius: 10px;
+ -moz-border-radius: 10px;
+ border-radius: 10px;
+}
+
+/* scrollbar height/width & offset from container borders */
+.scrollbar-light > .scroll-content.scroll-scrolly_visible {
+ left: -17px;
+ margin-left: 17px;
+}
+
+.scrollbar-light > .scroll-content.scroll-scrollx_visible {
+ top: -17px;
+ margin-top: 17px;
+}
+
+.scrollbar-light > .scroll-element.scroll-x .scroll-bar {
+ height: 10px;
+ min-width: 10px;
+ top: 0px;
+}
+
+.scrollbar-light > .scroll-element.scroll-y .scroll-bar {
+ left: 0px;
+ min-height: 10px;
+ width: 10px;
+}
+
+.scrollbar-light > .scroll-element.scroll-x .scroll-element_outer {
+ height: 12px;
+ left: 2px;
+ top: 2px;
+}
+
+.scrollbar-light > .scroll-element.scroll-x .scroll-element_size {
+ left: -4px;
+}
+
+.scrollbar-light > .scroll-element.scroll-y .scroll-element_outer {
+ left: 2px;
+ top: 2px;
+ width: 12px;
+}
+
+.scrollbar-light > .scroll-element.scroll-y .scroll-element_size {
+ top: -4px;
+}
+
+/* update scrollbar offset if both scrolls are visible */
+.scrollbar-light > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size {
+ left: -19px;
+}
+
+.scrollbar-light > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size {
+ top: -19px;
+}
+
+.scrollbar-light > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track {
+ left: -19px;
+}
+
+.scrollbar-light > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track {
+ top: -19px;
+}
+
+/*************** SCROLLBAR RAIL ***************/
+.scrollbar-rail > .scroll-element,
+.scrollbar-rail > .scroll-element div {
+ border: none;
+ margin: 0;
+ overflow: hidden;
+ padding: 0;
+ position: absolute;
+ z-index: 10;
+}
+
+.scrollbar-rail > .scroll-element {
+ background-color: #ffffff;
+}
+
+.scrollbar-rail > .scroll-element div {
+ display: block;
+ height: 100%;
+ left: 0;
+ top: 0;
+ width: 100%;
+}
+
+.scrollbar-rail > .scroll-element .scroll-element_size {
+ background-color: #999;
+ background-color: rgba(0, 0, 0, 0.3);
+}
+
+.scrollbar-rail > .scroll-element .scroll-element_outer:hover .scroll-element_size {
+ background-color: #666;
+ background-color: rgba(0, 0, 0, 0.5);
+}
+
+.scrollbar-rail > .scroll-element.scroll-x {
+ bottom: 0;
+ height: 12px;
+ left: 0;
+ min-width: 100%;
+ padding: 3px 0 2px;
+ width: 100%;
+}
+
+.scrollbar-rail > .scroll-element.scroll-y {
+ height: 100%;
+ min-height: 100%;
+ padding: 0 2px 0 3px;
+ right: 0;
+ top: 0;
+ width: 12px;
+}
+
+.scrollbar-rail > .scroll-element .scroll-bar {
+ background-color: #d0b9a0;
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ border-radius: 2px;
+ box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
+}
+
+.scrollbar-rail > .scroll-element .scroll-element_outer:hover .scroll-bar {
+ box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.6);
+}
+
+/* scrollbar height/width & offset from container borders */
+.scrollbar-rail > .scroll-content.scroll-scrolly_visible {
+ left: -17px;
+ margin-left: 17px;
+}
+
+.scrollbar-rail > .scroll-content.scroll-scrollx_visible {
+ margin-top: 17px;
+ top: -17px;
+}
+
+.scrollbar-rail > .scroll-element.scroll-x .scroll-bar {
+ height: 10px;
+ min-width: 10px;
+ top: 1px;
+}
+
+.scrollbar-rail > .scroll-element.scroll-y .scroll-bar {
+ left: 1px;
+ min-height: 10px;
+ width: 10px;
+}
+
+.scrollbar-rail > .scroll-element.scroll-x .scroll-element_outer {
+ height: 15px;
+ left: 5px;
+}
+
+.scrollbar-rail > .scroll-element.scroll-x .scroll-element_size {
+ height: 2px;
+ left: -10px;
+ top: 5px;
+}
+
+.scrollbar-rail > .scroll-element.scroll-y .scroll-element_outer {
+ top: 5px;
+ width: 15px;
+}
+
+.scrollbar-rail > .scroll-element.scroll-y .scroll-element_size {
+ left: 5px;
+ top: -10px;
+ width: 2px;
+}
+
+/* update scrollbar offset if both scrolls are visible */
+.scrollbar-rail > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size {
+ left: -25px;
+}
+
+.scrollbar-rail > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size {
+ top: -25px;
+}
+
+.scrollbar-rail > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track {
+ left: -25px;
+}
+
+.scrollbar-rail > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track {
+ top: -25px;
+}
+
+/*************** SCROLLBAR DYNAMIC ***************/
+.scrollbar-dynamic > .scroll-element,
+.scrollbar-dynamic > .scroll-element div {
+ background: none;
+ border: none;
+ margin: 0;
+ padding: 0;
+ position: absolute;
+ z-index: 10;
+}
+
+.scrollbar-dynamic > .scroll-element div {
+ display: block;
+ height: 100%;
+ left: 0;
+ top: 0;
+ width: 100%;
+}
+
+.scrollbar-dynamic > .scroll-element.scroll-x {
+ bottom: 2px;
+ height: 7px;
+ left: 0;
+ min-width: 100%;
+ width: 100%;
+}
+
+.scrollbar-dynamic > .scroll-element.scroll-y {
+ height: 100%;
+ min-height: 100%;
+ right: 2px;
+ top: 0;
+ width: 7px;
+}
+
+.scrollbar-dynamic > .scroll-element .scroll-element_outer {
+ opacity: 0.3;
+ -webkit-border-radius: 12px;
+ -moz-border-radius: 12px;
+ border-radius: 12px;
+}
+
+.scrollbar-dynamic > .scroll-element .scroll-element_size {
+ background-color: #cccccc;
+ opacity: 0;
+ -webkit-border-radius: 12px;
+ -moz-border-radius: 12px;
+ border-radius: 12px;
+ -webkit-transition: opacity 0.2s;
+ -moz-transition: opacity 0.2s;
+ -o-transition: opacity 0.2s;
+ -ms-transition: opacity 0.2s;
+ transition: opacity 0.2s;
+}
+
+.scrollbar-dynamic > .scroll-element .scroll-bar {
+ background-color: #6c6e71;
+ -webkit-border-radius: 7px;
+ -moz-border-radius: 7px;
+ border-radius: 7px;
+}
+
+/* scrollbar height/width & offset from container borders */
+.scrollbar-dynamic > .scroll-element.scroll-x .scroll-bar {
+ bottom: 0;
+ height: 7px;
+ min-width: 24px;
+ top: auto;
+}
+
+.scrollbar-dynamic > .scroll-element.scroll-y .scroll-bar {
+ left: auto;
+ min-height: 24px;
+ right: 0;
+ width: 7px;
+}
+
+.scrollbar-dynamic > .scroll-element.scroll-x .scroll-element_outer {
+ bottom: 0;
+ top: auto;
+ left: 2px;
+ -webkit-transition: height 0.2s;
+ -moz-transition: height 0.2s;
+ -o-transition: height 0.2s;
+ -ms-transition: height 0.2s;
+ transition: height 0.2s;
+}
+
+.scrollbar-dynamic > .scroll-element.scroll-y .scroll-element_outer {
+ left: auto;
+ right: 0;
+ top: 2px;
+ -webkit-transition: width 0.2s;
+ -moz-transition: width 0.2s;
+ -o-transition: width 0.2s;
+ -ms-transition: width 0.2s;
+ transition: width 0.2s;
+}
+
+.scrollbar-dynamic > .scroll-element.scroll-x .scroll-element_size {
+ left: -4px;
+}
+
+.scrollbar-dynamic > .scroll-element.scroll-y .scroll-element_size {
+ top: -4px;
+}
+
+/* update scrollbar offset if both scrolls are visible */
+.scrollbar-dynamic > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size {
+ left: -11px;
+}
+
+.scrollbar-dynamic > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size {
+ top: -11px;
+}
+
+/* hover & drag */
+.scrollbar-dynamic > .scroll-element:hover .scroll-element_outer,
+.scrollbar-dynamic > .scroll-element.scroll-draggable .scroll-element_outer {
+ overflow: hidden;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
+ filter: alpha(opacity=70);
+ opacity: 0.7;
+}
+
+.scrollbar-dynamic > .scroll-element:hover .scroll-element_outer .scroll-element_size,
+.scrollbar-dynamic > .scroll-element.scroll-draggable .scroll-element_outer .scroll-element_size {
+ opacity: 1;
+}
+
+.scrollbar-dynamic > .scroll-element:hover .scroll-element_outer .scroll-bar,
+.scrollbar-dynamic > .scroll-element.scroll-draggable .scroll-element_outer .scroll-bar {
+ height: 100%;
+ width: 100%;
+ -webkit-border-radius: 12px;
+ -moz-border-radius: 12px;
+ border-radius: 12px;
+}
+
+.scrollbar-dynamic > .scroll-element.scroll-x:hover .scroll-element_outer,
+.scrollbar-dynamic > .scroll-element.scroll-x.scroll-draggable .scroll-element_outer {
+ height: 20px;
+ min-height: 7px;
+}
+
+.scrollbar-dynamic > .scroll-element.scroll-y:hover .scroll-element_outer,
+.scrollbar-dynamic > .scroll-element.scroll-y.scroll-draggable .scroll-element_outer {
+ min-width: 7px;
+ width: 20px;
+}
+
+/*************** SCROLLBAR GOOGLE CHROME ***************/
+.scrollbar-chrome > .scroll-element,
+.scrollbar-chrome > .scroll-element div {
+ border: none;
+ margin: 0;
+ overflow: hidden;
+ padding: 0;
+ position: absolute;
+ z-index: 10;
+}
+
+.scrollbar-chrome > .scroll-element {
+ background-color: #ffffff;
+}
+
+.scrollbar-chrome > .scroll-element div {
+ display: block;
+ height: 100%;
+ left: 0;
+ top: 0;
+ width: 100%;
+}
+
+.scrollbar-chrome > .scroll-element .scroll-element_track {
+ background: #f1f1f1;
+ border: 1px solid #dbdbdb;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-x {
+ bottom: 0;
+ height: 16px;
+ left: 0;
+ min-width: 100%;
+ width: 100%;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-y {
+ height: 100%;
+ min-height: 100%;
+ right: 0;
+ top: 0;
+ width: 16px;
+}
+
+.scrollbar-chrome > .scroll-element .scroll-bar {
+ background-color: #d9d9d9;
+ border: 1px solid #bdbdbd;
+ cursor: default;
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ border-radius: 2px;
+}
+
+.scrollbar-chrome > .scroll-element .scroll-bar:hover {
+ background-color: #c2c2c2;
+ border-color: #a9a9a9;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-draggable .scroll-bar {
+ background-color: #919191;
+ border-color: #7e7e7e;
+}
+
+/* scrollbar height/width & offset from container borders */
+.scrollbar-chrome > .scroll-content.scroll-scrolly_visible {
+ left: -16px;
+ margin-left: 16px;
+}
+
+.scrollbar-chrome > .scroll-content.scroll-scrollx_visible {
+ top: -16px;
+ margin-top: 16px;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-x .scroll-bar {
+ height: 8px;
+ min-width: 10px;
+ top: 3px;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-y .scroll-bar {
+ left: 3px;
+ min-height: 10px;
+ width: 8px;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-x .scroll-element_outer {
+ border-left: 1px solid #dbdbdb;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-x .scroll-element_track {
+ height: 14px;
+ left: -3px;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-x .scroll-element_size {
+ height: 14px;
+ left: -4px;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-y .scroll-element_outer {
+ border-top: 1px solid #dbdbdb;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-y .scroll-element_track {
+ top: -3px;
+ width: 14px;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-y .scroll-element_size {
+ top: -4px;
+ width: 14px;
+}
+
+/* update scrollbar offset if both scrolls are visible */
+.scrollbar-chrome > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size {
+ left: -19px;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size {
+ top: -19px;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track {
+ left: -19px;
+}
+
+.scrollbar-chrome > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track {
+ top: -19px;
+}
diff --git a/data/interfaces/default/css/opensans.min.css b/data/interfaces/default/css/opensans.min.css
new file mode 100644
index 00000000..6d4f3a9c
--- /dev/null
+++ b/data/interfaces/default/css/opensans.min.css
@@ -0,0 +1 @@
+@font-face{font-family:'Open Sans';font-weight:400;font-style:normal;src:url(../fonts/Open-Sans-regular/Open-Sans-regular.eot);src:url(../fonts/Open-Sans-regular/Open-Sans-regular.eot?#iefix) format('embedded-opentype'),local('Open Sans'),local('Open-Sans-regular'),url(../fonts/Open-Sans-regular/Open-Sans-regular.woff2) format('woff2'),url(../fonts/Open-Sans-regular/Open-Sans-regular.woff) format('woff'),url(../fonts/Open-Sans-regular/Open-Sans-regular.ttf) format('truetype'),url(../fonts/Open-Sans-regular/Open-Sans-regular.svg#OpenSans) format('svg')}@font-face{font-family:'Open Sans';font-weight:600;font-style:normal;src:url(../fonts/Open-Sans-600/Open-Sans-600.eot);src:url(../fonts/Open-Sans-600/Open-Sans-600.eot?#iefix) format('embedded-opentype'),local('Open Sans Semibold'),local('Open-Sans-600'),url(../fonts/Open-Sans-600/Open-Sans-600.woff2) format('woff2'),url(../fonts/Open-Sans-600/Open-Sans-600.woff) format('woff'),url(../fonts/Open-Sans-600/Open-Sans-600.ttf) format('truetype'),url(../fonts/Open-Sans-600/Open-Sans-600.svg#OpenSans) format('svg')}
\ No newline at end of file
diff --git a/data/interfaces/default/css/pnotify.custom.min.css b/data/interfaces/default/css/pnotify.custom.min.css
new file mode 100644
index 00000000..2d6056a2
--- /dev/null
+++ b/data/interfaces/default/css/pnotify.custom.min.css
@@ -0,0 +1 @@
+.ui-pnotify{top:36px;right:36px;position:absolute;height:auto;z-index:2}body>.ui-pnotify{position:fixed;z-index:100040}.ui-pnotify-modal-overlay{background-color:rgba(0,0,0,.4);top:0;left:0;position:absolute;height:100%;width:100%;z-index:1}body>.ui-pnotify-modal-overlay{position:fixed;z-index:100039}.ui-pnotify.ui-pnotify-in{display:block!important}.ui-pnotify.ui-pnotify-move{transition:left .5s ease,top .5s ease,right .5s ease,bottom .5s ease}.ui-pnotify.ui-pnotify-fade-slow{transition:opacity .6s linear;opacity:0}.ui-pnotify.ui-pnotify-fade-slow.ui-pnotify.ui-pnotify-move{transition:opacity .6s linear,left .5s ease,top .5s ease,right .5s ease,bottom .5s ease}.ui-pnotify.ui-pnotify-fade-normal{transition:opacity .4s linear;opacity:0}.ui-pnotify.ui-pnotify-fade-normal.ui-pnotify.ui-pnotify-move{transition:opacity .4s linear,left .5s ease,top .5s ease,right .5s ease,bottom .5s ease}.ui-pnotify.ui-pnotify-fade-fast{transition:opacity .2s linear;opacity:0}.ui-pnotify.ui-pnotify-fade-fast.ui-pnotify.ui-pnotify-move{transition:opacity .2s linear,left .5s ease,top .5s ease,right .5s ease,bottom .5s ease}.ui-pnotify.ui-pnotify-fade-in{opacity:1}.ui-pnotify .ui-pnotify-shadow{-webkit-box-shadow:0 6px 28px 0 rgba(0,0,0,.1);-moz-box-shadow:0 6px 28px 0 rgba(0,0,0,.1);box-shadow:0 6px 28px 0 rgba(0,0,0,.1)}.ui-pnotify-container{background-position:0 0;padding:.8em;height:100%;margin:0}.ui-pnotify-container:after{content:" ";visibility:hidden;display:block;height:0;clear:both}.ui-pnotify-container.ui-pnotify-sharp{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.ui-pnotify-title{display:block;margin-bottom:.4em;margin-top:0}.ui-pnotify-text{display:block}.ui-pnotify-icon,.ui-pnotify-icon span{display:block;float:left;margin-right:.2em}.ui-pnotify.stack-bottomleft,.ui-pnotify.stack-topleft{left:25px;right:auto}.ui-pnotify.stack-bottomleft,.ui-pnotify.stack-bottomright{bottom:25px;top:auto}.ui-pnotify.stack-modal{left:50%;right:auto;margin-left:-150px}.ui-pnotify-closer,.ui-pnotify-sticker{float:right;margin-left:.2em}.ui-pnotify-container{position:relative;left:0}@media (max-width:480px){.ui-pnotify-mobile-able.ui-pnotify{position:fixed;top:0;right:0;left:0;width:auto!important;font-size:1.2em;-webkit-font-smoothing:antialiased;-moz-font-smoothing:antialiased;-ms-font-smoothing:antialiased;font-smoothing:antialiased}.ui-pnotify-mobile-able.ui-pnotify .ui-pnotify-shadow{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;border-bottom-width:5px}.ui-pnotify-mobile-able .ui-pnotify-container{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.ui-pnotify-mobile-able.ui-pnotify.stack-bottomleft,.ui-pnotify-mobile-able.ui-pnotify.stack-topleft{left:0;right:0}.ui-pnotify-mobile-able.ui-pnotify.stack-bottomleft,.ui-pnotify-mobile-able.ui-pnotify.stack-bottomright{left:0;right:0;bottom:0;top:auto}.ui-pnotify-mobile-able.ui-pnotify.stack-bottomleft .ui-pnotify-shadow,.ui-pnotify-mobile-able.ui-pnotify.stack-bottomright .ui-pnotify-shadow{border-top-width:5px;border-bottom-width:1px}}
\ No newline at end of file
diff --git a/data/interfaces/default/css/selectize.bootstrap3.css b/data/interfaces/default/css/selectize.bootstrap3.css
new file mode 100644
index 00000000..cfb2bfa2
--- /dev/null
+++ b/data/interfaces/default/css/selectize.bootstrap3.css
@@ -0,0 +1,401 @@
+/**
+ * selectize.bootstrap3.css (v0.12.1) - Bootstrap 3 Theme
+ * Copyright (c) 2013–2015 Brian Reavis & contributors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
+ * file except in compliance with the License. You may obtain a copy of the License at:
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
+ * ANY KIND, either express or implied. See the License for the specific language
+ * governing permissions and limitations under the License.
+ *
+ * @author Brian Reavis
+ */
+.selectize-control.plugin-drag_drop.multi > .selectize-input > div.ui-sortable-placeholder {
+ visibility: visible !important;
+ background: #f2f2f2 !important;
+ background: rgba(0, 0, 0, 0.06) !important;
+ border: 0 none !important;
+ -webkit-box-shadow: inset 0 0 12px 4px #ffffff;
+ box-shadow: inset 0 0 12px 4px #ffffff;
+}
+.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after {
+ content: '!';
+ visibility: hidden;
+}
+.selectize-control.plugin-drag_drop .ui-sortable-helper {
+ -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
+}
+.selectize-dropdown-header {
+ position: relative;
+ padding: 3px 12px;
+ border-bottom: 1px solid #d0d0d0;
+ background: #f8f8f8;
+ -webkit-border-radius: 4px 4px 0 0;
+ -moz-border-radius: 4px 4px 0 0;
+ border-radius: 4px 4px 0 0;
+}
+.selectize-dropdown-header-close {
+ position: absolute;
+ right: 12px;
+ top: 50%;
+ color: #333333;
+ opacity: 0.4;
+ margin-top: -12px;
+ line-height: 20px;
+ font-size: 20px !important;
+}
+.selectize-dropdown-header-close:hover {
+ color: #000000;
+}
+.selectize-dropdown.plugin-optgroup_columns .optgroup {
+ border-right: 1px solid #f2f2f2;
+ border-top: 0 none;
+ float: left;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child {
+ border-right: 0 none;
+}
+.selectize-dropdown.plugin-optgroup_columns .optgroup:before {
+ display: none;
+}
+.selectize-dropdown.plugin-optgroup_columns .optgroup-header {
+ border-top: 0 none;
+}
+.selectize-control.plugin-remove_button [data-value] {
+ position: relative;
+ padding-right: 24px !important;
+}
+.selectize-control.plugin-remove_button [data-value] .remove {
+ z-index: 1;
+ /* fixes ie bug (see #392) */
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ width: 17px;
+ text-align: center;
+ font-weight: bold;
+ font-size: 12px;
+ color: inherit;
+ text-decoration: none;
+ vertical-align: middle;
+ display: inline-block;
+ padding: 1px 0 0 0;
+ border-left: 1px solid rgba(0, 0, 0, 0);
+ -webkit-border-radius: 0 2px 2px 0;
+ -moz-border-radius: 0 2px 2px 0;
+ border-radius: 0 2px 2px 0;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.selectize-control.plugin-remove_button [data-value] .remove:hover {
+ background: rgba(0, 0, 0, 0.05);
+}
+.selectize-control.plugin-remove_button [data-value].active .remove {
+ border-left-color: rgba(0, 0, 0, 0);
+}
+.selectize-control.plugin-remove_button .disabled [data-value] .remove:hover {
+ background: none;
+}
+.selectize-control.plugin-remove_button .disabled [data-value] .remove {
+ border-left-color: rgba(77, 77, 77, 0);
+}
+.selectize-control {
+ position: relative;
+}
+.selectize-dropdown,
+.selectize-input,
+.selectize-input input {
+ color: #333333;
+ font-family: inherit;
+ font-size: inherit;
+ line-height: 20px;
+ -webkit-font-smoothing: inherit;
+}
+.selectize-input,
+.selectize-control.single .selectize-input.input-active {
+ background: #ffffff;
+ cursor: text;
+ display: inline-block;
+}
+.selectize-input {
+ border: 1px solid #cccccc;
+ padding: 6px 12px;
+ display: inline-block;
+ width: 100%;
+ overflow: hidden;
+ position: relative;
+ z-index: 1;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+.selectize-control.multi .selectize-input.has-items {
+ padding: 5px 12px 2px;
+}
+.selectize-input.full {
+ background-color: #ffffff;
+}
+.selectize-input.disabled,
+.selectize-input.disabled * {
+ cursor: default !important;
+}
+.selectize-input.focus {
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15);
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15);
+}
+.selectize-input.dropdown-active {
+ -webkit-border-radius: 4px 4px 0 0;
+ -moz-border-radius: 4px 4px 0 0;
+ border-radius: 4px 4px 0 0;
+}
+.selectize-input > * {
+ vertical-align: baseline;
+ display: -moz-inline-stack;
+ display: inline-block;
+ zoom: 1;
+ *display: inline;
+}
+.selectize-control.multi .selectize-input > div {
+ cursor: pointer;
+ margin: 0 3px 3px 0;
+ padding: 1px 3px;
+ background: #efefef;
+ color: #333333;
+ border: 0 solid rgba(0, 0, 0, 0);
+}
+.selectize-control.multi .selectize-input > div.active {
+ background: #428bca;
+ color: #ffffff;
+ border: 0 solid rgba(0, 0, 0, 0);
+}
+.selectize-control.multi .selectize-input.disabled > div,
+.selectize-control.multi .selectize-input.disabled > div.active {
+ color: #808080;
+ background: #ffffff;
+ border: 0 solid rgba(77, 77, 77, 0);
+}
+.selectize-input > input {
+ display: inline-block !important;
+ padding: 0 !important;
+ min-height: 0 !important;
+ max-height: none !important;
+ max-width: 100% !important;
+ margin: 0 !important;
+ text-indent: 0 !important;
+ border: 0 none !important;
+ background: none !important;
+ line-height: inherit !important;
+ -webkit-user-select: auto !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+.selectize-input > input::-ms-clear {
+ display: none;
+}
+.selectize-input > input:focus {
+ outline: none !important;
+}
+.selectize-input::after {
+ content: ' ';
+ display: block;
+ clear: left;
+}
+.selectize-input.dropdown-active::before {
+ content: ' ';
+ display: block;
+ position: absolute;
+ background: #ffffff;
+ height: 1px;
+ bottom: 0;
+ left: 0;
+ right: 0;
+}
+.selectize-dropdown {
+ position: absolute;
+ z-index: 10;
+ border: 1px solid #d0d0d0;
+ background: #ffffff;
+ margin: -1px 0 0 0;
+ border-top: 0 none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
+ -webkit-border-radius: 0 0 4px 4px;
+ -moz-border-radius: 0 0 4px 4px;
+ border-radius: 0 0 4px 4px;
+}
+.selectize-dropdown [data-selectable] {
+ cursor: pointer;
+ overflow: hidden;
+}
+.selectize-dropdown [data-selectable] .highlight {
+ background: rgba(255, 237, 40, 0.4);
+ -webkit-border-radius: 1px;
+ -moz-border-radius: 1px;
+ border-radius: 1px;
+}
+.selectize-dropdown [data-selectable],
+.selectize-dropdown .optgroup-header {
+ padding: 3px 12px;
+}
+.selectize-dropdown .optgroup:first-child .optgroup-header {
+ border-top: 0 none;
+}
+.selectize-dropdown .optgroup-header {
+ color: #777777;
+ background: #ffffff;
+ cursor: default;
+}
+.selectize-dropdown .active {
+ background-color: #f5f5f5;
+ color: #262626;
+}
+.selectize-dropdown .active.create {
+ color: #262626;
+}
+.selectize-dropdown .create {
+ color: rgba(51, 51, 51, 0.5);
+}
+.selectize-dropdown-content {
+ overflow-y: auto;
+ overflow-x: hidden;
+ max-height: 200px;
+}
+.selectize-control.single .selectize-input,
+.selectize-control.single .selectize-input input {
+ cursor: pointer;
+}
+.selectize-control.single .selectize-input.input-active,
+.selectize-control.single .selectize-input.input-active input {
+ cursor: text;
+}
+.selectize-control.single .selectize-input:after {
+ content: ' ';
+ display: block;
+ position: absolute;
+ top: 50%;
+ right: 17px;
+ margin-top: -3px;
+ width: 0;
+ height: 0;
+ border-style: solid;
+ border-width: 5px 5px 0 5px;
+ border-color: #333333 transparent transparent transparent;
+}
+.selectize-control.single .selectize-input.dropdown-active:after {
+ margin-top: -4px;
+ border-width: 0 5px 5px 5px;
+ border-color: transparent transparent #333333 transparent;
+}
+.selectize-control.rtl.single .selectize-input:after {
+ left: 17px;
+ right: auto;
+}
+.selectize-control.rtl .selectize-input > input {
+ margin: 0 4px 0 -2px !important;
+}
+.selectize-control .selectize-input.disabled {
+ opacity: 0.5;
+ background-color: #ffffff;
+}
+.selectize-dropdown,
+.selectize-dropdown.form-control {
+ height: auto;
+ padding: 0;
+ margin: 2px 0 0 0;
+ z-index: 1000;
+ background: #ffffff;
+ border: 1px solid #cccccc;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+}
+.selectize-dropdown .optgroup-header {
+ font-size: 12px;
+ line-height: 1.42857143;
+}
+.selectize-dropdown .optgroup:first-child:before {
+ display: none;
+}
+.selectize-dropdown .optgroup:before {
+ content: ' ';
+ display: block;
+ height: 1px;
+ margin: 9px 0;
+ overflow: hidden;
+ background-color: #e5e5e5;
+ margin-left: -12px;
+ margin-right: -12px;
+}
+.selectize-dropdown-content {
+ padding: 5px 0;
+}
+.selectize-dropdown-header {
+ padding: 6px 12px;
+}
+.selectize-input {
+ min-height: 34px;
+}
+.selectize-input.dropdown-active {
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+.selectize-input.dropdown-active::before {
+ display: none;
+}
+.selectize-input.focus {
+ border-color: #66afe9;
+ outline: 0;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
+ box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
+}
+.has-error .selectize-input {
+ border-color: #a94442;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+.has-error .selectize-input:focus {
+ border-color: #843534;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
+}
+.selectize-control.multi .selectize-input.has-items {
+ padding-left: 9px;
+ padding-right: 9px;
+}
+.selectize-control.multi .selectize-input > div {
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+}
+.form-control.selectize-control {
+ padding: 0;
+ height: auto;
+ border: none;
+ background: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+}
diff --git a/data/interfaces/default/css/selectize.min.css b/data/interfaces/default/css/selectize.min.css
new file mode 100644
index 00000000..0b3ba701
--- /dev/null
+++ b/data/interfaces/default/css/selectize.min.css
@@ -0,0 +1 @@
+.react-selectize{color:#000}.react-selectize.root-node{position:relative;width:300px;}.react-selectize.root-node.disabled{pointer-events:none}.react-selectize.root-node .react-selectize-control{cursor:pointer;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-align:start;-moz-box-align:start;-o-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;position:relative;padding:2px;}.react-selectize.root-node .react-selectize-control .react-selectize-placeholder{display:block;line-height:30px;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap;position:absolute;max-width:calc(100% - 56px)}.react-selectize.root-node .react-selectize-control .react-selectize-search-field-and-selected-values{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;min-height:30px;-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;-ms-box-flex:1;box-flex:1;-webkit-flex-grow:1;flex-grow:1;-webkit-box-lines:multiple;-moz-box-lines:multiple;-o-box-lines:multiple;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}.react-selectize.root-node .react-selectize-control .react-selectize-search-field-and-selected-values .resizable-input{background:none;border:none;outline:none;font-size:1em;margin:2px;padding:4px 0;vertical-align:middle;width:0}.react-selectize.root-node .react-selectize-control .react-selectize-search-field-and-selected-values .value-wrapper{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.react-selectize.root-node .react-selectize-control .react-selectize-reset-button-container,.react-selectize.root-node .react-selectize-control .react-selectize-toggle-button-container{-webkit-box-flex:0;-moz-box-flex:0;-o-box-flex:0;-ms-box-flex:0;box-flex:0;-webkit-flex-grow:0;flex-grow:0;-webkit-flex-shrink:0;flex-shrink:0;cursor:pointer;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;height:30px}.react-selectize.root-node .react-selectize-control .react-selectize-reset-button-container{width:16px}.react-selectize.root-node .react-selectize-control .react-selectize-toggle-button-container{width:32px}.react-selectize.root-node .react-selectize-control .react-selectize-reset-button-container:hover .react-selectize-reset-button path{stroke:#c0392b}.react-selectize.root-node .react-selectize-control .react-selectize-reset-button path{-webkit-transition:stroke 0.5s 0s ease;-moz-transition:stroke 0.5s 0s ease;-o-transition:stroke 0.5s 0s ease;-ms-transition:stroke 0.5s 0s ease;transition:stroke 0.5s 0s ease;stroke:#999;stroke-linecap:square;stroke-linejoin:mitter}.react-selectize.root-node .react-selectize-control .react-selectize-toggle-button path{fill:#999}.react-selectize.dropdown-menu-wrapper{position:absolute;}.react-selectize.dropdown-menu-wrapper.tethered{min-width:300px}.react-selectize.dropdown-menu-wrapper:not(.tethered){width:100%}.react-selectize.dropdown-menu{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;overflow:auto;position:absolute;max-height:200px;z-index:10;}.react-selectize.dropdown-menu.tethered{min-width:300px}.react-selectize.dropdown-menu:not(.tethered){width:100%}.react-selectize.dropdown-menu .groups.as-columns{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;}.react-selectize.dropdown-menu .groups.as-columns > div{-webkit-box-flex:1;-moz-box-flex:1;-o-box-flex:1;box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.react-selectize.dropdown-menu .option-wrapper{cursor:pointer;outline:none}.multi-select.react-selectize.root-node .simple-value{display:inline-block;margin:2px;vertical-align:middle;}.multi-select.react-selectize.root-node .simple-value span{display:inline-block;padding:2px 5px 4px;vertical-align:center}.simple-select.react-selectize.root-node .simple-value{margin:2px;}.simple-select.react-selectize.root-node .simple-value span{display:inline-block;vertical-align:center}.react-selectize.default{font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.react-selectize.default.root-node .react-selectize-control{background-color:#fff;border:1px solid;border-color:#d9d9d9 #ccc #b3b3b3;-webkit-border-radius:4px;border-radius:4px;font-size:1em;}.react-selectize.default.root-node .react-selectize-control .react-selectize-placeholder{color:#aaa;text-indent:8px}.react-selectize.default.root-node .react-selectize-control .react-selectize-search-field-and-selected-values{padding-left:5px}.react-selectize.default.root-node.open.flipped .react-selectize-control{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-top-left-radius:0;border-top-right-radius:0}.react-selectize.default.root-node.open:not(.flipped) .react-selectize-control{border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:4px;border-top-right-radius:4px}.react-selectize.dropdown-menu-wrapper.default{overflow:hidden;}.react-selectize.dropdown-menu-wrapper.default .dropdown-menu.custom-enter-active,.react-selectize.dropdown-menu-wrapper.default .dropdown-menu.custom-leave-active{-webkit-transition:-webkit-transform 0.2s 0s ease;-moz-transition:-moz-transform 0.2s 0s ease;-o-transition:-o-transform 0.2s 0s ease;-ms-transition:-ms-transform 0.2s 0s ease;transition:transform 0.2s 0s ease}.react-selectize.dropdown-menu-wrapper.default .dropdown-menu.flipped.custom-enter{-webkit-transform:translateY(100%);-moz-transform:translateY(100%);-o-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.react-selectize.dropdown-menu-wrapper.default .dropdown-menu.flipped.custom-enter-active{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-o-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%)}.react-selectize.dropdown-menu-wrapper.default .dropdown-menu.flipped.custom-leave{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-o-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%)}.react-selectize.dropdown-menu-wrapper.default .dropdown-menu.flipped.custom-leave-active{-webkit-transform:translateY(100%);-moz-transform:translateY(100%);-o-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.react-selectize.dropdown-menu-wrapper.default .dropdown-menu:not(.flipped).custom-enter{-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-o-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.react-selectize.dropdown-menu-wrapper.default .dropdown-menu:not(.flipped).custom-enter-active{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-o-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%)}.react-selectize.dropdown-menu-wrapper.default .dropdown-menu:not(.flipped).custom-leave{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-o-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%)}.react-selectize.dropdown-menu-wrapper.default .dropdown-menu:not(.flipped).custom-leave-active{-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-o-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.react-selectize.dropdown-menu.default{background:#fff;border:1px solid #ccc;margin-top:-1px;}.react-selectize.dropdown-menu.default.flipped{border-top-left-radius:4px;border-top-right-radius:4px}.react-selectize.dropdown-menu.default:not(.flipped){border-color:#b3b3b3 #ccc #d9d9d9;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.react-selectize.dropdown-menu.default .no-results-found{color:#aaa !important;font-style:oblique;padding:8px 10px}.react-selectize.dropdown-menu.default .simple-group-title{background-color:#fafafa;padding:8px 8px}.react-selectize.dropdown-menu.default .option-wrapper.highlight{background:#f2f9fc;color:#333}.react-selectize.dropdown-menu.default .option-wrapper .simple-option{color:#666;cursor:pointer;padding:8px 10px;}.react-selectize.dropdown-menu.default .option-wrapper .simple-option.not-selectable{background-color:#f8f8f8;color:#999;cursor:default;font-style:oblique;text-shadow:0 1px 0 #fff}.multi-select.react-selectize.default.root-node .simple-value{background:#f2f9fc;border:1px solid #c9e6f2;-webkit-border-radius:2px;border-radius:2px;color:#08c}.simple-select.react-selectize.default.root-node.open .react-selectize-control{background-color:#fff}.simple-select.react-selectize.default.root-node:not(.open) .react-selectize-control{background-color:#f9f9f9;background-image:-webkit-linear-gradient(top, #fefefe, #f2f2f2);background-image:-moz-linear-gradient(top, #fefefe, #f2f2f2);background-image:-o-linear-gradient(top, #fefefe, #f2f2f2);background-image:-ms-linear-gradient(top, #fefefe, #f2f2f2);background-image:linear-gradient(to bottom, #fefefe, #f2f2f2)}.react-selectize.bootstrap3{font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.react-selectize.bootstrap3.root-node.open .react-selectize-control{background-color:#fff;border:1px solid #66afe9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.react-selectize.bootstrap3.root-node .react-selectize-control{border:1px solid;border-color:#d9d9d9 #ccc #b3b3b3;-webkit-border-radius:4px;border-radius:4px;font-size:1em;}.react-selectize.bootstrap3.root-node .react-selectize-control .react-selectize-placeholder{color:#aaa;text-indent:8px}.react-selectize.bootstrap3.root-node .react-selectize-control .react-selectize-search-field-and-selected-values{padding-left:5px}.react-selectize.bootstrap3.dropdown-menu-wrapper.flipped{margin-bottom:5px}.react-selectize.bootstrap3.dropdown-menu-wrapper:not(.flipped){margin-top:5px}.react-selectize.bootstrap3.dropdown-menu-wrapper .dropdown-menu.custom-enter-active,.react-selectize.bootstrap3.dropdown-menu-wrapper .dropdown-menu.custom-leave-active{-webkit-transition:opacity 0.2s 0s ease;-moz-transition:opacity 0.2s 0s ease;-o-transition:opacity 0.2s 0s ease;-ms-transition:opacity 0.2s 0s ease;transition:opacity 0.2s 0s ease}.react-selectize.bootstrap3.dropdown-menu-wrapper .dropdown-menu.custom-enter{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}.react-selectize.bootstrap3.dropdown-menu-wrapper .dropdown-menu.custom-enter-active{opacity:1;-ms-filter:none;filter:none}.react-selectize.bootstrap3.dropdown-menu-wrapper .dropdown-menu.custom-leave{opacity:1;-ms-filter:none;filter:none}.react-selectize.bootstrap3.dropdown-menu-wrapper .dropdown-menu.custom-leave-active{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}.react-selectize.bootstrap3.dropdown-menu{background:#fff;border:1px solid #ccc;-webkit-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);}.react-selectize.bootstrap3.dropdown-menu.flipped{margin-bottom:5px}.react-selectize.bootstrap3.dropdown-menu:not(.flipped){margin-top:5px}.react-selectize.bootstrap3.dropdown-menu .no-results-found{color:#aaa !important;font-style:oblique;padding:8px 10px}.react-selectize.bootstrap3.dropdown-menu .groups:not(.as-columns) > div:not(:first-child){border-top:1px solid #e5e5e5;margin:12px 0 0 0}.react-selectize.bootstrap3.dropdown-menu .simple-group-title{background-color:#fff;color:#999;padding:8px 8px;text-shadow:0 1px 0 rgba(0,0,0,0.05)}.react-selectize.bootstrap3.dropdown-menu .option-wrapper.highlight{background:#428bca;}.react-selectize.bootstrap3.dropdown-menu .option-wrapper.highlight .simple-option{color:#fff}.react-selectize.bootstrap3.dropdown-menu .option-wrapper .simple-option{color:#333;cursor:pointer;padding:8px 10px;}.react-selectize.bootstrap3.dropdown-menu .option-wrapper .simple-option.not-selectable{background-color:#f8f8f8;color:#999;cursor:default;font-style:oblique;text-shadow:0 1px 0 #fff}.multi-select.react-selectize.bootstrap3.root-node .simple-value{background:#efefef;-webkit-border-radius:4px;border-radius:4px;color:#333}.react-selectize.material{font-family:Roboto,sans-serif}.react-selectize.material.root-node.open .react-selectize-control:after{-webkit-transform:scaleX(1);-moz-transform:scaleX(1);-o-transform:scaleX(1);-ms-transform:scaleX(1);transform:scaleX(1)}.react-selectize.material.root-node .react-selectize-control{border-bottom:1px solid rgba(0,0,0,0.3);}.react-selectize.material.root-node .react-selectize-control:after{background-color:#00bcd4;content:"";-webkit-transform:scaleX(0);-moz-transform:scaleX(0);-o-transform:scaleX(0);-ms-transform:scaleX(0);transform:scaleX(0);-webkit-transition:-webkit-transform 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;-moz-transition:-moz-transform 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;-o-transition:-o-transform 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;-ms-transition:-ms-transform 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;transition:transform 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;position:absolute;left:0;bottom:-1px;width:100%;height:2px}.react-selectize.material.root-node .react-selectize-control .react-selectize-placeholder{color:rgba(0,0,0,0.3);text-indent:4px}.react-selectize.material.dropdown-menu-wrapper.flipped{margin-bottom:8px;}.react-selectize.material.dropdown-menu-wrapper.flipped .dropdown-menu{-webkit-transform-origin:100% 100%;-moz-transform-origin:100% 100%;-o-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}.react-selectize.material.dropdown-menu-wrapper:not(.flipped){margin-top:8px;}.react-selectize.material.dropdown-menu-wrapper:not(.flipped) .dropdown-menu{-webkit-transform-origin:0% 0%;-moz-transform-origin:0% 0%;-o-transform-origin:0% 0%;-ms-transform-origin:0% 0%;transform-origin:0% 0%}.react-selectize.material.dropdown-menu-wrapper .dropdown-menu.custom-enter-active,.react-selectize.material.dropdown-menu-wrapper .dropdown-menu.custom-leave-active{-webkit-transition:-webkit-transform 250ms cubic-bezier(0.23, 1, 0.32, 1) 0ms, opacity 250ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;-moz-transition:-moz-transform 250ms cubic-bezier(0.23, 1, 0.32, 1) 0ms, opacity 250ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;-o-transition:-o-transform 250ms cubic-bezier(0.23, 1, 0.32, 1) 0ms, opacity 250ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;-ms-transition:-ms-transform 250ms cubic-bezier(0.23, 1, 0.32, 1) 0ms, opacity 250ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;transition:transform 250ms cubic-bezier(0.23, 1, 0.32, 1) 0ms, opacity 250ms cubic-bezier(0.23, 1, 0.32, 1) 0ms}.react-selectize.material.dropdown-menu-wrapper .dropdown-menu.custom-enter{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-webkit-transform:scale(0,0);-moz-transform:scale(0,0);-o-transform:scale(0,0);-ms-transform:scale(0,0);transform:scale(0,0)}.react-selectize.material.dropdown-menu-wrapper .dropdown-menu.custom-enter-active{opacity:1;-ms-filter:none;filter:none;-webkit-transform:scale(1,1);-moz-transform:scale(1,1);-o-transform:scale(1,1);-ms-transform:scale(1,1);transform:scale(1,1)}.react-selectize.material.dropdown-menu-wrapper .dropdown-menu.custom-leave{opacity:1;-ms-filter:none;filter:none;-webkit-transform:scale(1,1);-moz-transform:scale(1,1);-o-transform:scale(1,1);-ms-transform:scale(1,1);transform:scale(1,1)}.react-selectize.material.dropdown-menu-wrapper .dropdown-menu.custom-leave-active{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}.react-selectize.material.dropdown-menu{background-color:#fff;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:rgba(0,0,0,0.118) 0 1px 6px,rgba(0,0,0,0.118) 0 1px 4px;box-shadow:rgba(0,0,0,0.118) 0 1px 6px,rgba(0,0,0,0.118) 0 1px 4px;max-height:250px;padding:8px 0;}.react-selectize.material.dropdown-menu.flipped{margin-bottom:8px}.react-selectize.material.dropdown-menu:not(.flipped){margin-top:8px}.react-selectize.material.dropdown-menu .no-results-found{font-style:oblique;font-size:16px;height:32px;padding:0 16px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.react-selectize.material.dropdown-menu .groups:not(.as-columns) > div:not(:last-child){border-bottom:1px solid #e5e5e5}.react-selectize.material.dropdown-menu .simple-group-title{color:#8f8f8f;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-align:center;-moz-box-align:center;-o-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;font-size:14px;height:48px;padding:0 10px}.react-selectize.material.dropdown-menu .option-wrapper.highlight{background-color:rgba(0,0,0,0.098)}.react-selectize.material.dropdown-menu .option-wrapper .simple-option{color:rgba(0,0,0,0.875);cursor:pointer;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:box;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;-o-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-moz-box-align:start;-o-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-box-pack:center;-moz-box-pack:center;-o-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;font-size:16px;height:48px;padding:0 16px;}.react-selectize.material.dropdown-menu .option-wrapper .simple-option.not-selectable{background-color:#f8f8f8;color:#999;cursor:default;font-style:oblique;text-shadow:0 1px 0 #fff}.multi-select.react-selectize.material.root-node .simple-value span{padding:0;}.multi-select.react-selectize.material.root-node .simple-value span:after{content:","}.simple-select.react-selectize.material.root-node .simple-value{margin:4px 3px 3px 2px}
\ No newline at end of file
diff --git a/data/interfaces/default/css/tautulli-dataTables.css b/data/interfaces/default/css/tautulli-dataTables.css
new file mode 100644
index 00000000..db477933
--- /dev/null
+++ b/data/interfaces/default/css/tautulli-dataTables.css
@@ -0,0 +1,419 @@
+/*
+ * File: demo_table.css
+ * CVS: $Id$
+ * Description: CSS descriptions for DataTables demo pages
+ * Author: Allan Jardine
+ * Created: Tue May 12 06:47:22 BST 2009
+ * Modified: $Date$ by $Author$
+ * Language: CSS
+ * Project: DataTables
+ *
+ * Copyright 2009 Allan Jardine. All Rights Reserved.
+ *
+ * ***************************************************************************
+ * DESCRIPTION
+ *
+ * The styles given here are suitable for the demos that are used with the standard DataTables
+ * distribution (see www.datatables.net). You will most likely wish to modify these styles to
+ * meet the layout requirements of your site.
+ *
+ * Common issues:
+ * 'full_numbers' pagination - I use an extra selector on the body tag to ensure that there is
+ * no conflict between the two pagination types. If you want to use full_numbers pagination
+ * ensure that you either have "example_alt_pagination" as a body class name, or better yet,
+ * modify that selector.
+ * Note that the path used for Images is relative. All images are by default located in
+ * ../images/ - relative to this CSS file.
+ */
+
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * DataTables display
+ */
+table.display {
+ margin: 0 auto;
+ clear: both;
+ width: 100%;
+ font-size: 12px;
+ line-height: 25px;
+ /* Note Firefox 3.5 and before have a bug with border-collapse
+ * ( https://bugzilla.mozilla.org/show%5Fbug.cgi?id=155955 )
+ * border-spacing: 0; is one possible option. Conditional-css.com is
+ * useful for this kind of thing
+ *
+ * Further note IE 6/7 has problems when calculating widths with border width.
+ * It subtracts one px relative to the other browsers from the first column, and
+ * adds one to the end...
+ *
+ * If you want that effect I'd suggest setting a border-top/left on th/td's and
+ * then filling in the gaps with other borders.
+ */
+}
+table.display thead th {
+ white-space:nowrap;
+ padding: 5px 5px 5px 5px;
+ cursor: pointer;
+ color: #999;
+ background-color: #212121;
+ font-size: 11px;
+}
+table.display thead th i {
+ margin-top: -1px;
+}
+table.display thead .sorting,
+table.display thead .sorting_asc,
+table.display thead .sorting_desc {
+ cursor: pointer;
+ height: 35px;
+}
+table.display thead .sorting,
+table.display thead .sorting_asc,
+table.display thead .sorting_desc,
+table.display thead .sorting_asc_disabled,
+table.display thead .sorting_desc_disabled {
+ background-repeat: no-repeat;
+ background-position: left;
+}
+table.display tfoot th {
+ padding: 3px 18px 3px 10px;
+ border-top: 1px solid black;
+ font-weight: bold;
+}
+table.display tr.heading2 td {
+ border-bottom: 1px solid #aaa;
+}
+table.display td {
+ padding: 5px 5px 5px 5px;
+}
+table.display td.title {
+ padding: 5px;
+ white-space: normal;
+ min-width: 400px;
+}
+table.display th.center,
+table.display td.center {
+ text-align: center;
+}
+table.display tr:hover {
+ background-color: rgba(255,255,255,0.075);
+}
+table.display tr:hover a {
+ text-decoration:none;
+}
+table.display td:hover a {
+ color: #F9AA03;
+}
+table.display thead tr:hover {
+ background-color: #212121;
+}
+
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * DataTables row classes
+ */
+table.display tr.odd.gradeA {
+ background-color: #ddffdd;
+}
+table.display tr.even.gradeA {
+ background-color: #eeffee;
+}
+table.display tr.odd.gradeC {
+ background-color: #ddddff;
+}
+table.display tr.even.gradeC {
+ background-color: #eeeeff;
+}
+table.display tr.odd.gradeX {
+ background-color: #ffdddd;
+}
+table.display tr.even.gradeX {
+ background-color: #ffeeee;
+}
+table.display tr.odd.gradeU {
+ background-color: #ddd;
+}
+table.display tr.even.gradeU {
+ background-color: #eee;
+}
+tr.odd {
+ border-top: 0px solid #343434;
+ border-bottom: 0px solid #343434;
+ background-color: rgba(255,255,255,0.010);
+}
+tr.even {
+ border-top: 0px solid #343434;
+ border-bottom: 0px solid #343434;
+ background-color: rgba(255,255,255,0.035);
+}
+
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Misc
+ */
+.dataTables_scroll {
+ clear: both;
+}
+.dataTables_scrollBody {
+ *margin-top: -1px;
+ -webkit-overflow-scrolling: touch;
+}
+tfoot input {
+ margin: 0.5em 0;
+ width: 100%;
+ color: #444;
+}
+tfoot input.search_init {
+ color: #999;
+}
+td.group {
+ background-color: #d1cfd0;
+ border-bottom: 2px solid #A19B9E;
+ border-top: 2px solid #A19B9E;
+}
+td.details {
+ background-color: #d1cfd0;
+ border: 2px solid #A19B9E;
+}
+table.display tr.even.row_selected td {
+ background-color: #B0BED9;
+}
+table.display tr.odd.row_selected td {
+ background-color: #9FAFD1;
+}
+.dataTables_empty {
+ text-align: center;
+}
+/* For the Conditional-CSS grading rows */
+/*
+ Colour calculations (based off the main row colours)
+ Level 1:
+ dd > c4
+ ee > d5
+ Level 2:
+ dd > d1
+ ee > e2
+ */
+tr.odd.gradeA td.sorting_1 {
+ background-color: #c4ffc4;
+}
+tr.odd.gradeA td.sorting_2 {
+ background-color: #d1ffd1;
+}
+tr.odd.gradeA td.sorting_3 {
+ background-color: #d1ffd1;
+}
+tr.even.gradeA td.sorting_1 {
+ background-color: #d5ffd5;
+}
+tr.even.gradeA td.sorting_2 {
+ background-color: #e2ffe2;
+}
+tr.even.gradeA td.sorting_3 {
+ background-color: #e2ffe2;
+}
+tr.odd.gradeC td.sorting_1 {
+ background-color: #c4c4ff;
+}
+tr.odd.gradeC td.sorting_2 {
+ background-color: #d1d1ff;
+}
+tr.odd.gradeC td.sorting_3 {
+ background-color: #d1d1ff;
+}
+tr.even.gradeC td.sorting_1 {
+ background-color: #d5d5ff;
+}
+tr.even.gradeC td.sorting_2 {
+ background-color: #e2e2ff;
+}
+tr.even.gradeC td.sorting_3 {
+ background-color: #e2e2ff;
+}
+tr.odd.gradeX td.sorting_1 {
+ background-color: #ffc4c4;
+}
+tr.odd.gradeX td.sorting_2 {
+ background-color: #ffd1d1;
+}
+tr.odd.gradeX td.sorting_3 {
+ background-color: #ffd1d1;
+}
+tr.even.gradeX td.sorting_1 {
+ background-color: #ffd5d5;
+}
+tr.even.gradeX td.sorting_2 {
+ background-color: #ffe2e2;
+}
+tr.even.gradeX td.sorting_3 {
+ background-color: #ffe2e2;
+}
+tr.odd.gradeU td.sorting_1 {
+ background-color: #c4c4c4;
+}
+tr.odd.gradeU td.sorting_2 {
+ background-color: #d1d1d1;
+}
+tr.odd.gradeU td.sorting_3 {
+ background-color: #d1d1d1;
+}
+tr.even.gradeU td.sorting_1 {
+ background-color: #d5d5d5;
+}
+tr.even.gradeU td.sorting_2 {
+ background-color: #e2e2e2;
+}
+tr.even.gradeU td.sorting_3 {
+ background-color: #e2e2e2;
+}
+
+
+/*
+ * Row highlighting example
+ */
+.ex_highlight #example tbody tr.even:hover, #example tbody tr.even td.highlighted {
+ background-color: #ECFFB3;
+}
+.ex_highlight #example tbody tr.odd:hover, #example tbody tr.odd td.highlighted {
+ background-color: #E6FF99;
+}
+.ex_highlight_row #example tr.even:hover {
+ background-color: #ECFFB3;
+}
+.ex_highlight_row #example tr.even:hover td.sorting_1 {
+ background-color: #DDFF75;
+}
+.ex_highlight_row #example tr.even:hover td.sorting_2 {
+ background-color: #E7FF9E;
+}
+.ex_highlight_row #example tr.even:hover td.sorting_3 {
+ background-color: #E2FF89;
+}
+.ex_highlight_row #example tr.odd:hover {
+ background-color: #E6FF99;
+}
+.ex_highlight_row #example tr.odd:hover td.sorting_1 {
+ background-color: #D6FF5C;
+}
+.ex_highlight_row #example tr.odd:hover td.sorting_2 {
+ background-color: #E0FF84;
+}
+.ex_highlight_row #example tr.odd:hover td.sorting_3 {
+ background-color: #DBFF70;
+}
+
+
+/*
+ * KeyTable
+ */
+table.KeyTable td {
+ border: 3px solid transparent;
+}
+table.KeyTable td.focus {
+ border: 3px solid #3366FF;
+}
+table.display tr.gradeA {
+ background-color: #eeffee;
+}
+table.display tr.gradeC {
+ background-color: #ddddff;
+}
+table.display tr.gradeX {
+ background-color: #ffdddd;
+}
+table.display tr.gradeU {
+ background-color: #ddd;
+}
+div.box {
+ height: 100px;
+ padding: 10px;
+ overflow: auto;
+ border: 1px solid #8080FF;
+ background-color: #E5E5FF;
+}
+td.no-wrap, th.no-wrap {
+ white-space:nowrap;
+}
+
+
+
+/*
+ * Custom styles
+ */
+
+table.display,
+table.display tr.shown + tr table[id^='history_child'],
+table.display tr.shown + tr table[id^='media_info_child'],
+table.display tr.shown + tr table[id^='media_info_child'] tr.shown + tr table[id^='media_info_child'] {
+ table-layout: auto;
+}
+table.display tr.shown + tr div.slider {
+ display: none;
+}
+table.display tr.shown + tr > td {
+ padding-top: 0;
+ padding-bottom: 0;
+ padding-left: 0;
+}
+table.display tr.shown + tr:hover {
+ background-color: rgba(255,255,255,0);
+}
+table.display tr.shown + tr:hover a,
+table.display tr.shown + tr td:hover a,
+table.display tr.shown + tr td:hover a .fa,
+table.display tr.shown + tr .pagination > .active > a,
+table.display tr.shown + tr .pagination > .active > a:hover {
+ color: #fff;
+}
+table.display tr.shown + tr table[id^='history_child'] td:hover a,
+table.display tr.shown + tr table[id^='history_child'] td:hover a .fa,
+table.display tr.shown + tr table[id^='media_info_child'] > tr > td:hover a,
+table.display tr.shown + tr table[id^='media_info_child'] tr.shown + tr table[id^='media_info_child'] td:hover a {
+ color: #cc7b19;
+}
+table.display tr.shown + tr .pagination > .disabled > a,
+table.display tr.shown + tr .pagination > .disabled > a:hover {
+ color: #444444;
+}
+table.display tr.shown + tr .pagination > li > a:hover {
+ color: #e9a049;
+}
+table.display tr.odd td,
+table.display tr.even td {
+ padding: 5px 5px 5px 5px;
+}
+table[id^='history_child'] {
+ margin-top: 0;
+ opacity: .6;
+}
+table[id^='media_info_child'] {
+ margin-top: 0;
+}
+div[id^='history_child'] thead th,
+div[id^='media_info_child'] thead th {
+ line-height: 0;
+ height: 0 !important;
+ overflow: hidden;
+}
+div[id^='history_child'] div.row,
+div[id^='media_info_child'] div.row {
+ margin: 0;
+}
+div[id^='history_child'] div.col-sm-12,
+div[id^='media_info_child'] div.col-sm-12 {
+ padding: 0;
+}
+div[id^='history_child'] div.dataTables_scrollBody,
+div[id^='media_info_child'] div.dataTables_scrollBody {
+ overflow: hidden !important;
+}
+div[id^='media_info_child'] div[id^='media_info_child'] div.dataTables_scrollHead thead th {
+ line-height: 25px;
+ height: 35px !important;
+ overflow: hidden;
+}
+.current-activity-row {
+ background-color: rgba(255,255,255,.1) !important;
+}
+.current-activity-row:hover {
+ background-color: rgba(255,255,255,0.125) !important;
+}
diff --git a/data/interfaces/default/css/tautulli.css b/data/interfaces/default/css/tautulli.css
new file mode 100644
index 00000000..5124bd80
--- /dev/null
+++ b/data/interfaces/default/css/tautulli.css
@@ -0,0 +1,4275 @@
+body {
+ font-family: 'Open Sans', Arial, sans-serif;
+ color: #fff;
+ margin-top: 50px;
+ overflow: hidden;
+}
+a {
+ color: #eee;
+}
+a:hover,
+a:focus {
+ color: #e9a049;
+ text-decoration: none;
+ outline: none;
+}
+select, .react-selectize.bootstrap3.root-node .react-selectize-control {
+ margin: 5px 0 5px 0;
+ border: 2px solid #444;
+ background: #333;
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ border-radius: 2px;
+ color: #999;
+ outline: none;
+}
+select.input-sm {
+ margin: 5px 0 5px 0;
+ border: 2px solid #444;
+ background: #333;
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ border-radius: 2px;
+ color: #999;
+ outline: none;
+}
+select[multiple] {
+ height: 125px;
+ margin: 5px 0 5px 0;
+ color: #fff;
+ border: 0px solid #444;
+ background: #555;
+ padding: 2px 2px;
+ background-color: #555;
+ border-radius: 3px;
+ transition: background-color .3s;
+}
+select[multiple]:focus {
+ outline: 0;
+ outline: thin dotted \9;
+ color: #555;
+ background-color: #fff;
+ transition: background-color .3s;
+}
+select[multiple]:focus::-webkit-scrollbar-thumb {
+ background-color: rgba(0,0,0,.15);
+}
+select[multiple] option {
+ padding: 6px 10px;
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ border-radius: 2px;
+}
+select.form-control,
+div.form-control .selectize-input {
+ margin: 5px 0 5px 0;
+ color: #fff;
+ border: 0px solid #444;
+ background: #555;
+ padding: 6px 12px;
+ background-color: #555;
+ border-radius: 3px;
+ transition: background-color .3s;
+}
+select.form-control {
+ height: 32px !important;
+}
+.react-selectize.root-node .react-selectize-control,
+.selectize-control.form-control .selectize-input {
+ color: #fff !important;
+ border: 0px solid #444 !important;
+ background: #555 !important;
+ padding: 1px 2px;
+ transition: background-color .3s;
+}
+.selectize-control.form-control .selectize-input {
+ display: flex !important;
+ align-items: center;
+ flex-wrap: wrap;
+ margin-bottom: 4px;
+ padding-left: 5px;
+}
+.selectize-control.form-control.selectize-pms-ip .selectize-input {
+ padding-left: 12px !important;
+ border-top-left-radius: 3px;
+ border-bottom-left-radius: 3px;
+ min-height: 32px !important;
+ height: 32px !important;
+}
+.input-group .selectize-control.form-control.selectize-pms-ip .selectize-input > div {
+ max-width: 450px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+.wizard-input-section p.welcome-message {
+ margin: 20px 0;
+}
+.wizard-input-section .selectize-control.form-control.selectize-pms-ip .selectize-input > div {
+ max-width: 360px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+#selectize-pms-ip-container .selectize-dropdown.form-control.selectize-pms-ip {
+ margin-left: 15px;
+}
+.wizard-input-section .selectize-control.form-control.selectize-pms-ip .selectize-dropdown .selectize-dropdown-content {
+ max-height: 150px;
+}
+.wizard-input-section .selectize-dropdown.form-control.selectize-pms-ip {
+ margin-top: 0 !important;
+}
+#condition-widget .fa-plus,
+#condition-widget .fa-minus {
+ cursor: pointer;
+}
+.react-selectize.root-node .react-selectize-control .react-selectize-placeholder {
+ color: #fff !important;
+}
+.react-selectize.root-node .react-selectize-control .react-selectize-toggle-button path {
+ fill: #fff !important;
+}
+.react-selectize.root-node .simple-value,
+.selectize-control.multi .selectize-input > div {
+ background: #444444 !important;
+ color: #ffffff !important;
+ padding-bottom: 2px !important;
+ transition: background-color .3s;
+}
+.react-selectize.root-node .simple-value span,
+.selectize-control.multi .selectize-input > div {
+ padding-bottom: 2px !important;
+ padding-left: 5px !important;
+}
+.react-selectize.root-node .react-selectize-control .react-selectize-search-field-and-selected-values .value-wrapper:not(:first-child):before {
+ content: "or";
+ padding: 0 3px;
+ text-transform: uppercase;
+ font-size: 10px;
+}
+.react-selectize.root-node .react-selectize-control .react-selectize-search-field-and-selected-values .resizable-input {
+ padding-top: 3px !important;
+ padding-bottom: 3px !important;
+}
+select.form-control:focus,
+.react-selectize.root-node.open .react-selectize-control,
+.selectize-control.form-control .selectize-input.focus {
+ outline: 0;
+ outline: thin dotted \9;
+ color: #555 !important;
+ background-color: #fff !important;
+ transition: background-color .3s;
+}
+.react-selectize.root-node.open .simple-value,
+.selectize-control.multi .selectize-input.focus > div,
+.selectize-control.multi .selectize-input > div.active {
+ background: #efefef !important;
+ color: #333333 !important;
+ transition: background-color .3s;
+}
+.react-selectize.root-node.open .react-selectize-control .react-selectize-toggle-button path {
+ fill: #999 !important;
+}
+.selectize-input > div .item-text {
+ white-space: nowrap;
+}
+.selectize-input > div .item-value {
+ opacity: 0.8;
+ font-size: 12px;
+ white-space: nowrap;
+}
+.selectize-input > div .item-text + .item-value {
+ margin-left: 5px;
+}
+.selectize-input > div .item-value:before {
+ content: '<';
+ opacity: 0.8;
+ font-size: 12px;
+}
+.selectize-input > div .item-value:after {
+ content: '>';
+ opacity: 0.8;
+ font-size: 12px;
+}
+.selectize-dropdown .caption {
+ font-size: 12px;
+ display: block;
+ color: #a0a0a0;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+.selectize-dropdown .select-all,
+.selectize-dropdown .remove-all {
+ font-weight: bold;
+}
+.selectize-dropdown .border-all {
+ pointer-events: none;
+ display: block;
+ height: 1px;
+ margin: 9px -12px 9px -12px;
+ padding: 0 !important;
+ overflow: hidden;
+ background-color: #e5e5e5;
+}
+.selectize-dropdown .border-all:last-child {
+ display: none;
+}
+.selectize-dropdown .optgroup-header {
+ font-weight: bold;
+}
+select.form-control option {
+ color: #555;
+ background-color: #fff;
+}
+img {
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+}
+object {
+ pointer-events: none;
+}
+.navbar {
+ background: #000;
+ -webkit-box-shadow: 0 0 0 3px rgba(0,0,0,.2);
+ -moz-box-shadow: 0 0 0 3px rgba(0,0,0,.2);
+ box-shadow: 0 0 0 3px rgba(0,0,0,.2);
+}
+.navbar-brand {
+ padding: 3px 3px;
+}
+.nav > li > a {
+ color: #999;
+ -webkit-transition: all 0.3s ease;
+ -o-transition: all 0.3s ease;
+ transition: all 0.3s ease;
+}
+.nav > li > a:hover,
+.nav > li > a:focus {
+ text-decoration: none;
+ background-color: #282828;
+ color: #eee;
+}
+.nav > li.active > a,
+.nav > li.active > a:hover,
+.nav > li.active > a:focus {
+ color: #f9be03;
+ background-color: #282828;
+}
+.navbar-toggle {
+ background-color: #282828;
+}
+.navbar-toggle:hover,
+.navbar-toggle:focus {
+ background-color: #2f2f2f;
+}
+.nav .open > a, .nav .open > a:hover, .nav .open > a:focus {
+ background-color: #2f2f2f;
+ border-color: unset;
+}
+.dropdown-menu {
+ background-color: #282828;
+}
+.dropdown-menu .divider {
+ background-color: #777;
+}
+.dropdown-menu > li > a {
+ color: #999;
+}
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus {
+ color: #fff;
+ background-color: #2f2f2f;
+}
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+ color: #fff;
+ background-color: #2f2f2f;
+}
+.dropdown-menu > .disabled > a,
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+ color: #999;
+}
+.icon-bar {
+ background-color: #999;
+}
+.padded-header {
+ margin: 25px 0 25px 0;
+}
+.padded-header h1,h2,h3,h4,h5,h6 {
+ color: #eee;
+}
+.padded-header h3 {
+ font-size: 16px;
+ font-weight: bold;
+ text-transform: uppercase;
+}
+.padded-header h3 small {
+ font-size: 13px;
+ text-transform: none;
+}
+.btn {
+ outline:0px !important;
+}
+.btn:not(select) {
+ -webkit-appearance:none;
+}
+.btn-dark {
+ color: #d7d7d7;
+ background-color: #3B3B3B;
+ border-color: transparent;
+}
+.btn-dark:focus,
+.btn-dark.focus {
+ color: #d7d7d7;
+ background-color: #3B3B3B;
+}
+.btn-dark:hover {
+ color: #fff;
+ background-color: #333;
+ border-color: #444;
+}
+.btn-dark:active,
+.btn-dark.active,
+.open > .dropdown-toggle.btn-dark {
+ color: #fff;
+ background-color: #333;
+ border-color: #444;
+}
+.btn-dark:active:hover,
+.btn-dark.active:hover,
+.open > .dropdown-toggle.btn-dark:hover,
+.btn-dark:active:focus,
+.btn-dark.active:focus,
+.open > .dropdown-toggle.btn-dark:focus,
+.btn-dark:active.focus,
+.btn-dark.active.focus,
+.open > .dropdown-toggle.btn-dark.focus {
+ color: #fff;
+ background-color: #333;
+}
+.btn-dark:active,
+.btn-dark.active,
+.open > .dropdown-toggle.btn-dark {
+ background-image: none;
+}
+.btn-dark.disabled,
+.btn-dark[disabled],
+fieldset[disabled] .btn-dark,
+.btn-dark.disabled:hover,
+.btn-dark[disabled]:hover,
+fieldset[disabled] .btn-dark:hover,
+.btn-dark.disabled:focus,
+.btn-dark[disabled]:focus,
+fieldset[disabled] .btn-dark:focus,
+.btn-dark.disabled.focus,
+.btn-dark[disabled].focus,
+fieldset[disabled] .btn-dark.focus,
+.btn-dark.disabled:active,
+.btn-dark[disabled]:active,
+fieldset[disabled] .btn-dark:active,
+.btn-dark.disabled.active,
+.btn-dark[disabled].active,
+fieldset[disabled] .btn-dark.active {
+ background-color: #333;
+ color: #aaa;
+}
+.btn-dark.inactive:hover {
+ color: #d7d7d7;
+ background-color: #3B3B3B;
+ border-color: transparent;
+ cursor: default;
+}
+.btn-dark .badge {
+ color: #e5e5e5;
+ background-color: #3B3B3B;
+}
+.btn-bright {
+ color: #fff;
+ background-color: #cc7b19;
+ box-shadow: inset 0 1px 0 #e7993b;
+}
+.btn-bright:focus,
+.btn-bright.focus {
+ color: #fff;
+ background-color: #eb8600;
+}
+.btn-bright:hover {
+ color: #fff;
+ background-color: #e59029;
+ box-shadow: inset 0 1px 0 #ebac60;
+}
+.btn-bright:active,
+.btn-bright.active,
+.open > .dropdown-toggle.btn-bright {
+ color: #fff;
+ background-color: #cc7b19;
+ box-shadow: inset 0 1px 0 #e7993b;
+}
+.btn-bright:active:hover,
+.btn-bright.active:hover,
+.open > .dropdown-toggle.btn-bright:hover,
+.btn-bright:active:focus,
+.btn-bright.active:focus,
+.open > .dropdown-toggle.btn-bright:focus,
+.btn-bright:active.focus,
+.btn-bright.active.focus,
+.open > .dropdown-toggle.btn-bright.focus {
+ color: #fff;
+ background-color: #cc7b19;
+ box-shadow: inset 0 1px 0 #e7993b;
+}
+.btn-bright:active,
+.btn-bright.active,
+.open > .dropdown-toggle.btn-bright {
+ background-image: none;
+}
+.btn-bright.disabled,
+.btn-bright[disabled],
+fieldset[disabled] .btn-bright,
+.btn-bright.disabled:hover,
+.btn-bright[disabled]:hover,
+fieldset[disabled] .btn-bright:hover,
+.btn-bright.disabled:focus,
+.btn-bright[disabled]:focus,
+fieldset[disabled] .btn-bright:focus,
+.btn-bright.disabled.focus,
+.btn-bright[disabled].focus,
+fieldset[disabled] .btn-bright.focus,
+.btn-bright.disabled:active,
+.btn-bright[disabled]:active,
+fieldset[disabled] .btn-bright:active,
+.btn-bright.disabled.active,
+.btn-bright[disabled].active,
+fieldset[disabled] .btn-bright.active {
+ background-color: #cc7b19;
+ border-color: #b56d16;
+}
+.btn-bright .badge {
+ color: #fff;
+ background-color: #cc7b19;
+ box-shadow: inset 0 1px 0 #e7993b;
+}
+.btn-danger.btn-edit {
+ color: #d7d7d7;
+ background-color: #3B3B3B;
+ border-color: transparent;
+ float: right;
+}
+.btn-danger.btn-edit:hover {
+ color: #fff;
+ background-color: #c9302c;
+ border-color: #ac2925;
+}
+.btn-danger.btn-edit.active {
+ color: #fff;
+ background-color: #c9302c;
+ border-color: #ac2925;
+}
+.btn-danger.btn-edit.active:hover {
+ color: #fff;
+ background-color: #ac2925;
+ border-color: #761c19;
+}
+.btn-group select {
+ margin-top: 0;
+}
+.input-group-addon-form {
+ display: inline-block;
+ line-height: 1.42857143;
+ color: #e5e5e5;
+ background-color: #3B3B3B;
+ border: 1px solid transparent;
+ border-top-right-radius: 3px !important;
+ border-bottom-right-radius: 3px !important;
+ height: 32px;
+ width: 100%;
+ margin-top: 5px;
+}
+#server-selection label,
+#user-selection label {
+ margin-bottom: 0;
+}
+.alert-edit {
+ display: none;
+ float: left;
+ margin-bottom: 0;
+ /*margin-right: 5px;*/
+ padding: 6px 15px;
+}
+.modal-header {
+ padding: 15px 20px;
+ background-color: #323232;
+ border-radius: 3px 3px 0 0;
+ border-bottom: 1px solid #1C1C1C;
+}
+.modal-body {
+ position: relative;
+ overflow-y: auto;
+ max-height: 600px;
+ padding: 15px;
+ background-color: #222222;
+}
+.modal-body table {
+ color: #fff;
+}
+.modal-body li {
+ margin-top: 7px;
+ margin-left: 4px;
+ color: #aaa;
+}
+.modal-body li strong {
+ color: #eee;
+}
+.modal-body i {
+ color: #F9AA03;
+}
+.modal-body i.fa {
+ color: #fff;
+}
+.modal-body td:hover a .fa,
+.modal-body a:focus i.fa {
+ color: #f9aa03;
+}
+.modal-body strong,
+.modal-body strong i.fa {
+ color: #F9AA03;
+}
+.modal-footer {
+ padding: 15px 20px;
+ margin-top: 0;
+ background-color: #323232;
+ border-radius: 0 0 3px 3px;
+ border-top: 1px solid #1C1C1C;
+}
+textarea,
+input[type="text"],
+input[type="password"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="date"],
+input[type="month"],
+input[type="time"],
+input[type="week"],
+input[type="number"],
+input[type="email"],
+input[type="url"],
+input[type="search"],
+input[type="tel"],
+input[type="color"],
+.uneditable-input {
+ margin: 5px 0 5px 0;
+ color: #fff;
+ border: 0px solid #444;
+ background: #555;
+ height: 32px;
+ padding: 6px 12px;
+ background-color: #555;
+ border-radius: 3px;
+ transition: background-color .3s;
+}
+textarea.form-control {
+ height: initial;
+ margin: 5px 0 5px 0;
+ color: #fff;
+ border: 0px solid #444;
+ background: #555;
+ padding: 6px 12px;
+ background-color: #555;
+ border-radius: 3px;
+ transition: background-color .3s;
+ resize: none;
+}
+textarea.form-control:focus {
+ outline: 0;
+ color: #555;
+ background-color: #fff;
+ transition: background-color .3s;
+}
+.pms-settings {
+ outline: 0;
+ color: #fff;
+ background-color: #555;
+ border: 1px solid #000;}
+.pagination > li > a,
+.pagination > li > span {
+ position: relative;
+ float: left;
+ padding: 6px 12px;
+ margin-left: -1px;
+ line-height: 1.42857143;
+ color: #fff;
+ text-decoration: none;
+ background-color: #262626;
+ border: 1px solid #444444;
+}
+.pagination > li > a:hover,
+.pagination > li > span:hover,
+.pagination > li > a:focus,
+.pagination > li > span:focus {
+ background-color: #cc7b19;
+ border: 1px solid #444444;
+}
+.pagination > .active > a,
+.pagination > .active > span,
+.pagination > .active > a:hover,
+.pagination > .active > span:hover,
+.pagination > .active > a:focus,
+.pagination > .active > span:focus {
+ z-index: 2;
+ color: #fff;
+ cursor: default;
+ background-color: #cc7b19;
+ border-color: #444444;
+}
+.pagination > .disabled > span,
+.pagination > .disabled > span:hover,
+.pagination > .disabled > span:focus,
+.pagination > .disabled > a,
+.pagination > .disabled > a:hover,
+.pagination > .disabled > a:focus {
+ color: #444444;
+ cursor: not-allowed;
+ background-color: #262626;
+ border-color: #444444;
+}
+.nav-pills > li.active > a,
+.nav-pills > li.active > a:hover,
+.nav-pills > li.active > a:focus {
+ color: #fff;
+ background-color: #cc7b19;
+}
+.nav-pills > li > a {
+ border-radius: 3px;
+ padding: 5px 10px;
+ margin: 0 0 20px 0;
+}
+.btn-form {
+ padding: 4px 12px;
+ margin: 5px 6px 5px 0;
+ font-size: 14px;
+ font-weight: normal;
+ height: 32px;
+ line-height: 1.42857143;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: middle;
+ -ms-touch-action: manipulation;
+ touch-action: manipulation;
+ cursor: pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ background-image: none;
+ background-color: #3B3B3B;
+ color: #e5e5e5;
+ border: 1px solid transparent;
+ border-radius: 3px;
+ outline:0px !important;
+ -webkit-appearance:none;
+}
+.btn-form:hover {
+ color: #fff;
+ background-color: #333;
+}
+.btn-form:focus {
+ color: #fff;
+}
+.form-control-feedback {
+ color: #F9AA03;
+ margin: 5px 40px 5px 0;
+}
+.form-control[disabled],
+.form-control[readonly],
+fieldset[disabled] .form-control {
+ background-color: #555;
+}
+.form-control[readonly]:focus {
+ background-color: #fff;
+}
+.poster {
+ position: relative;
+ height: 225px;
+}
+.poster-face {
+ background-position: center;
+ background-size: cover;
+ height: 225px;
+ width: 150px;
+ position: relative;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ overflow: hidden;
+}
+.cover-face {
+ background-position: center;
+ background-size: cover;
+ height: 150px;
+ width: 150px;
+ position: absolute;
+ bottom: 0;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+}
+.users-poster-face {
+ overflow: hidden;
+ float: left;
+ background-size: cover;
+ background-position: center;
+ height: 40px;
+ width: 40px;
+ -webkit-border-radius: 50%;
+ -moz-border-radius: 50%;
+ border-radius: 50%;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+}
+.libraries-poster-face {
+ overflow: hidden;
+ float: left;
+ background-size: cover;
+ background-position: center;
+ height: 40px;
+ width: 40px;
+ /*-webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);*/
+}
+a .poster-face:hover,
+a .cover-face:hover,
+a .users-poster-face:hover {
+ -webkit-box-shadow: inset 0 0 0 2px #e9a049;
+ -moz-box-shadow: inset 0 0 0 2px #e9a049;
+ box-shadow: inset 0 0 0 2px #e9a049;
+}
+.users-name {
+ position: relative;
+}
+#dashboard-checking-activity,
+#dashboard-no-activity {
+ margin-bottom: 20px;
+}
+.dashboard-activity-instance {
+ float: left;
+ position: relative;
+ height: 290px;
+ min-width: 350px;
+ max-width: 500px;
+ margin-right: 25px;
+ margin-bottom: 25px;
+}
+.dashboard-activity-container {
+ height: 260px;
+ width: 100%;
+ position: relative;
+ margin-bottom: 5px;
+ padding: 0px;
+ -webkit-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out;
+ overflow: hidden;
+}
+.dashboard-activity-background {
+ background-color: #282828;
+ background-position: center;
+ background-size: cover;
+ display: -webkit-flex;
+ display: flex;
+ -webkit-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ height: 255px;
+ width: 100%;
+ padding: 5px;
+ overflow: hidden;
+ -webkit-transition: background 1s linear;
+ transition: background 1s linear;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+}
+.dashboard-activity-poster-container {
+ background-color: #282828;
+ height: 245px;
+ width: 150px;
+ margin-right: 5px;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
+ z-index: 1;
+}
+.dashboard-activity-poster {
+ background-position: center;
+ background-size: cover;
+ height: 245px;
+ width: 150px;
+ -webkit-transition: background 1s linear;
+ transition: background 1s linear;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ z-index: 2;
+}
+.dashboard-activity-poster-blur {
+ background-color: #282828;
+ background-position: center;
+ background-size: cover;
+ height: 225px;
+ width: 150px;
+ opacity: 0.60;
+ -webkit-filter: blur(3px);
+ -moz-filter: blur(3px);
+ filter: blur(3px);
+ -webkit-transition: background .2s ease-in-out;
+ transition: background .2s ease-in-out;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ z-index: 2;
+}
+.dashboard-activity-cover {
+ background-position: center;
+ background-size: cover;
+ height: 150px;
+ width: 150px;
+ margin-top: 37.5px;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -webkit-transition: background 1s linear;
+ transition: background 1s linear;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ position: absolute;
+ top: 0;
+ z-index: 3;
+}
+.dashboard-activity-info-icon {
+ width: 50px;
+ height: 50px;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+ position: absolute;
+ top: 10px;
+ right: 10px;
+ overflow: hidden;
+ z-index: 2;
+}
+.dashboard-activity-info-platform {
+ padding: 6px !important;
+ background-position: center;
+ background-size: cover;
+ width: 50px;
+ height: 50px;
+ opacity: 1;
+ -webkit-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out;
+}
+.dashboard-activity-info-platform-no-terminate {
+ background-position: center;
+ background-size: cover;
+ width: 50px;
+ height: 50px;
+ opacity: 1;
+ -webkit-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out;
+}
+.dashboard-activity-terminate-session {
+ width: 100%;
+ height: 100%;
+ font-size: 31px;
+ color: #eee;
+ text-align: center;
+ opacity: 0;
+ position: absolute;
+ top: 0;
+ left: 0;
+ -webkit-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out;
+}
+.dashboard-activity-terminate-session:hover {
+ color: #e9a049;
+}
+.dashboard-activity-info-container {
+ display: -webkit-flex;
+ display: flex;
+ flex-direction: column;
+ height: 245px;
+ width: 385px;
+ overflow: hidden;
+}
+.dashboard-activity-info-scroller {
+ height: 235px;
+ width: 100%;
+ -webkit-flex-grow: 1;
+ flex-grow: 1;
+ z-index: 1;
+}
+.dashboard-activity-info-scroller.scrollbar-macosx > .scroll-element.scroll-y {
+ left: 10px;
+}
+.dashboard-activity-info-scroller.scrollbar-macosx > .scroll-element .scroll-bar {
+ background-color: #999;
+}
+.dashboard-activity-info {
+ width: 100%;
+ font-size: 12px;
+ padding: 5px 5px 5px 15px;
+ position: relative;
+}
+.dashboard-activity-info-list {
+ margin-bottom: 20px;
+ padding-right: 0;
+}
+.dashboard-activity-info-list:last-of-type {
+ margin-bottom: 0;
+}
+.dashboard-activity-info-item {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: nowrap;
+ align-items: baseline;
+ width: 100%;
+ margin-bottom: 5px;
+}
+.dashboard-activity-info-item:last-of-type {
+ margin-bottom: 0;
+}
+.dashboard-activity-info-item .sub-heading {
+ height: 100%;
+ width: 60px;
+ color: #aaa;
+ font-size: 10px;
+ text-align: right;
+ text-transform: uppercase;
+ line-height: 14px;
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
+}
+.dashboard-activity-info-item .sub-value {
+ margin-left: 10px;
+ text-align: left;
+ line-height: 14px;
+ -webkit-flex-grow: 1;
+ flex-grow: 1;
+}
+.dashboard-activity-info-item .sub-value.platform-right {
+ margin-right: 55px;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+}
+.dashboard-activity-info-item .sub-value.time-right {
+ margin-right: 60px;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+}
+.dashboard-activity-info-item .sub-value .ip-container {
+ display: inline-flex;
+}
+.dashboard-activity-info-item .sub-value .ip-address {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ max-width: 140px;
+}
+.dashboard-activity-info-time {
+ position: absolute;
+ top: 220px;
+ right: 10px;
+ text-align: right;
+ font-size: 10px;
+ z-index: 2;
+}
+.dashboard-activity-progress {
+ width: 100%;
+ height: 5px;
+ -webkit-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out;
+ transform-origin: top;
+ overflow: hidden;
+}
+.dashboard-activity-progress-bar {
+ background-color: #111;
+ height: 100%;
+ width: 100%;
+ position: relative;
+ overflow: hidden;
+}
+.dashboard-activity-progress .buffer-bar {
+ padding-right: 3px;
+ font-size: x-small;
+ text-align: right;
+ line-height: 14px;
+ color: rgba(255, 255, 255, 0);
+ background-color: #444;
+ position: absolute;
+ height: 100%;
+ max-width: 100%;
+ overflow: hidden;
+}
+.dashboard-activity-progress .progress-bar {
+ padding-right: 3px;
+ font-size: x-small;
+ text-align: right;
+ line-height: 14px;
+ color: rgba(255, 255, 255, 0);
+ background-color: #faa732;
+ background-image: -moz-linear-gradient(top, #fbb450, #f89406);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
+ background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
+ background-image: -o-linear-gradient(top, #fbb450, #f89406);
+ background-image: linear-gradient(to bottom, #fbb450, #f89406);
+ background-repeat: repeat-x;
+ position: absolute;
+ height: 100%;
+ max-width: 100%;
+ overflow: hidden;
+}
+.dashboard-activity-container:hover {
+ height: 269px;
+}
+.dashboard-activity-container:hover .dashboard-activity-progress {
+ height: 14px;
+}
+.dashboard-activity-container:hover .progress-bar {
+ color: rgba(255, 255, 255, 1);
+ background-image: -webkit-linear-gradient(left,rgba(0,0,0,0.25),0%,rgba(0,0,0,0),50px);
+ background-image: -moz-linear-gradient(left,rgba(0,0,0,0.25) 0%,rgba(0,0,0,0) 50px);
+ background-image: linear-gradient(to left,rgba(0,0,0,0.25) 0%,rgba(0,0,0,0) 50px);
+}
+.dashboard-activity-container:hover .buffer-bar {
+ color: rgba(255, 255, 255, 1);
+ background-image: -webkit-linear-gradient(left,rgba(0,0,0,0.25),0%,rgba(0,0,0,0),50px);
+ background-image: -moz-linear-gradient(left,rgba(0,0,0,0.25) 0%,rgba(0,0,0,0) 50px);
+ background-image: linear-gradient(to left,rgba(0,0,0,0.25) 0%,rgba(0,0,0,0) 50px);
+}
+a:hover .dashboard-activity-poster,
+a:hover .dashboard-activity-cover {
+ -webkit-box-shadow: inset 0 0 0 2px #e9a049;
+ -moz-box-shadow: inset 0 0 0 2px #e9a049;
+ box-shadow: inset 0 0 0 2px #e9a049;
+}
+.dashboard-activity-container:hover .dashboard-activity-info-platform {
+ opacity: 0;
+}
+.dashboard-activity-container:hover .dashboard-activity-terminate-session {
+ background-color: rgba(0, 0, 0, 0.25);
+ opacity: 1;
+ cursor: pointer;
+}
+.dashboard-activity-metadata-wrapper {
+ position: relative;
+ width: 100%;
+ height: 50px;
+ font-size: 13px;
+ padding: 0px 3px 0 3px;
+}
+.dashboard-activity-metadata-title-container {
+ display: flex;
+ flex-direction: row;
+ font-size: 13px;
+ font-weight: bold;
+ line-height: 25px;
+ color: #fff;
+}
+.dashboard-activity-metadata-play_state-icon {
+ flex-basis: 25px;
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
+}
+.dashboard-activity-metadata-title {
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+ width: 350px;
+ -webkit-flex-grow: 1;
+ flex-grow: 1;
+}
+.dashboard-activity-metadata-subtitle-container {
+ display: flex;
+ flex-direction: row;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+ font-size: 13px;
+ font-weight: bold;
+ line-height: 25px;
+ color: #999;
+}
+.dashboard-activity-metadata-media_type-icon {
+ flex-basis: 25px;
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
+}
+.dashboard-activity-metadata-subtitle {
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+ -webkit-flex-grow: 1;
+ flex-grow: 1;
+}
+.dashboard-activity-metadata-user {
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+ text-align: right;
+ max-width: 124px;
+ flex-basis: 124px;
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
+}
+.dashboard-activity-metadata-user-thumb {
+ background-color: #282828;
+ background-position: center;
+ background-size: cover;
+ margin-top: 5px;
+ margin-left: 10px;
+ height: 40px;
+ width: 40px;
+ position: relative;
+ -webkit-border-radius: 50%;
+ -moz-border-radius: 50%;
+ border-radius: 50%;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ overflow: hidden;
+ float: right;
+}
+a .dashboard-activity-metadata-user-thumb:hover {
+ -webkit-box-shadow: inset 0 0 0 2px #e9a049;
+ -moz-box-shadow: inset 0 0 0 2px #e9a049;
+ box-shadow: inset 0 0 0 2px #e9a049;
+}
+.dashboard-activity-metadata-user a {
+ color: #999;
+}
+.dashboard-activity-metadata-user a:hover {
+ color: #e9a049;
+}
+.dashboard-activity-metadata-title a:hover {
+ color: #e9a049;
+}
+.dashboard-server-status {
+ float: left;
+ position: relative;
+ min-width: 900px;
+ max-width: 1500px;
+}
+
+table.server-status-table thead tr:first-child th {
+ padding: 0px 5px 0px 5px !important;
+ text-align: center;
+}
+
+table.server-status-table thead tr:last-child th {
+ padding: 0px 5px 0px 5px !important;
+ text-align: center;
+}
+
+table.server-status-table td {
+ padding: 4px 5px 4px 5px !important;
+ text-align: center;
+}
+table.server-status-table thead tr th hr {
+ margin: 0px 8px 0px 8px !important;
+}
+
+.dashboard-stats-instance {
+ float: left;
+ position: relative;
+ height: 160px;
+ min-width: 350px;
+ max-width: 500px;
+ margin-right: 25px;
+ margin-bottom: 25px;
+}
+.dashboard-stats-container {
+ height: 160px;
+ width: 100%;
+ position: relative;
+ padding: 0px;
+ -webkit-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out;
+ overflow: hidden;
+}
+.dashboard-stats-background {
+ background-color: #282828;
+ background-position: center;
+ background-size: cover;
+ display: -webkit-flex;
+ display: flex;
+ -webkit-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ height: 160px;
+ width: 100%;
+ padding: 5px;
+ overflow: hidden;
+ -webkit-transition: background .2s ease-in-out;
+ transition: background .2s ease-in-out;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+}
+.dashboard-stats-background.flat {
+ opacity: 1;
+}
+.dashboard-stats-poster-container {
+ background-color: #282828;
+ height: 150px;
+ width: 100px;
+ margin-right: 5px;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
+ position: relative;
+ overflow: hidden;
+ z-index: 1;
+}
+.dashboard-stats-poster {
+ background-color: #282828;
+ background-position: center;
+ background-size: cover;
+ height: 150px;
+ width: 100px;
+ -webkit-transition: background .2s ease-in-out;
+ transition: background .2s ease-in-out;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ z-index: 2;
+}
+.dashboard-stats-cover {
+ background-position: center;
+ background-size: cover;
+ height: 100px;
+ width: 100px;
+ margin-top: 25px;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -webkit-transition: background .2s ease-in-out;
+ transition: background .2s ease-in-out;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ position: absolute;
+ top: 0;
+ z-index: 3;
+}
+.dashboard-stats-circle {
+ background-position: center;
+ background-size: cover;
+ height: 100px;
+ width: 100px;
+ margin-top: 25px;
+ margin-right: 5px;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
+ -webkit-transition: background .2s ease-in-out;
+ transition: background .2s ease-in-out;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ z-index: 1;
+ -webkit-border-radius: 50%;
+ -moz-border-radius: 50%;
+ border-radius: 350%;
+ overflow: hidden;
+}
+.dashboard-stats-square {
+ background-position: center;
+ background-size: cover;
+ height: 100px;
+ width: 100px;
+ margin-top: 25px;
+ margin-right: 5px;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
+ -webkit-transition: background .2s ease-in-out;
+ transition: background .2s ease-in-out;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ z-index: 1;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ overflow: hidden;
+}
+.dashboard-stats-flat {
+ background-position: center;
+ background-size: cover;
+ height: 100px;
+ width: 100px;
+ margin-top: 25px;
+ margin-right: 5px;
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
+ -webkit-transition: background .2s ease-in-out;
+ transition: background .2s ease-in-out;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ z-index: 1;
+ overflow: hidden;
+}
+.dashboard-stats-info-container {
+ display: -webkit-flex;
+ display: flex;
+ flex-direction: column;
+ height: 150px;
+ width: 385px;
+ overflow: hidden;
+}
+.dashboard-stats-info-title {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: nowrap;
+ align-items: baseline;
+ height: 30px;
+ width: 100%;
+ padding: 5px 5px 5px 10px;
+ line-height: 20px;
+ text-transform: uppercase;
+ border-bottom: 1px solid rgba(255,255,255,.1);
+ -webkit-flex-grow: 1;
+ flex-grow: 1;
+ z-index: 1;
+}
+.dashboard-stats-info-title h4 {
+ margin: 0;
+ font-size: 15px;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+ -webkit-flex-grow: 1;
+ flex-grow: 1;
+}
+.dashboard-stats-info-title .dashboard-stats-stats-units {
+ color: #aaa;
+ font-size: 12px;
+ text-align: right;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+}
+.dashboard-stats-info-scroller {
+ height: 120px;
+ width: 100%;
+ -webkit-flex-grow: 1;
+ flex-grow: 1;
+ z-index: 1;
+}
+.dashboard-stats-info-scroller.scrollbar-macosx > .scroll-element.scroll-y {
+ left: 10px;
+}
+.dashboard-stats-info-scroller.scrollbar-macosx > .scroll-element .scroll-bar {
+ background-color: #999;
+}
+.dashboard-stats-info {
+ width: 100%;
+ font-size: 12px;
+ padding: 3px 0 0 15px;
+ position: relative;
+}
+.dashboard-stats-info-list {
+ margin-bottom: 20px;
+ padding-right: 0;
+}
+.dashboard-stats-info-list:last-of-type {
+ margin-bottom: 0;
+}
+.dashboard-stats-info-item {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: nowrap;
+ align-items: baseline;
+ width: 100%;
+ padding: 2.5px 5px;
+ line-height: 14px;
+ border-bottom: 1px solid rgba(255,255,255,0.05);
+ cursor: default;
+}
+.dashboard-stats-info-item:last-of-type {
+ margin-bottom: 0;
+}
+.dashboard-stats-info-item .sub-list {
+ height: 100%;
+ width: 15px;
+ color: #aaa;
+ font-size: 10px;
+ text-align: left;
+ text-transform: uppercase;
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
+}
+.dashboard-stats-info-item .sub-value {
+ height: 100%;
+ font-size: 12px;
+ text-align: left;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ -webkit-flex-grow: 1;
+ flex-grow: 1;
+}
+.dashboard-stats-info-item .sub-count {
+ height: 100%;
+ margin-left: 5px;
+ color: #f9be03;
+ font-size: 12px;
+ text-align: right;
+ white-space: nowrap;
+ overflow: hidden;
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
+}
+.dashboard-stats-info-item .sub-divider {
+ height: 100%;
+ margin-left: 5px;
+ color: #aaa;
+ font-size: 12px;
+ text-align: left;
+ text-transform: uppercase;
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
+}
+.dashboard-stats-info-item.expanded {
+ padding: 5px 5px;
+ line-height: 20px;
+}
+.dashboard-stats-info-item.expanded .sub-heading {
+ font-size: 13px;
+}
+.dashboard-stats-info-item.expanded .sub-value {
+ font-size: 16px;
+}
+.dashboard-stats-info-item.expanded .sub-count {
+ font-size: 16px;
+}
+.dashboard-stats-info-item.expanded .sub-divider {
+ font-size: 16px;
+}
+.dashboard-stats-info-item:hover {
+ background-color: rgba(255,255,255,0.05);
+}
+a:hover .dashboard-stats-poster,
+a:hover .dashboard-stats-cover,
+a:hover .dashboard-stats-circle,
+a:hover .dashboard-stats-square {
+ -webkit-box-shadow: inset 0 0 0 2px #e9a049;
+ -moz-box-shadow: inset 0 0 0 2px #e9a049;
+ box-shadow: inset 0 0 0 2px #e9a049;
+}
+#dashboard-no-recently-added {
+ margin-bottom: 20px;
+}
+.dashboard-recent-media-row {
+ width: 100%;
+ margin: 0 auto;
+ text-align: center;
+ position: relative;
+ z-index: 0;
+ overflow: hidden;
+}
+.dashboard-recent-media {
+ width: 100%;
+ margin: auto;
+ list-style: none;
+}
+.dashboard-recent-media li {
+ float: left;
+ position: relative;
+ left: 0px;
+ margin-right: 25px;
+ margin-bottom: 25px;
+}
+.dashboard-recent-media-poster {
+ position: relative;
+ float: left;
+}
+.dashboard-recent-media-cover {
+ position: relative;
+ margin-top: 75px;
+ float: left;
+}
+a:hover .dashboard-recent-media-poster,
+a:hover .dashboard-recent-media-cover {
+ webkit-box-shadow: inset 0 0 0 2px #e9a049;
+ -moz-box-shadow: inset 0 0 0 2px #e9a049;
+ box-shadow: inset 0 0 0 2px #e9a049;
+}
+.dashboard-recent-media-poster-face {
+ background-position: center;
+ background-size: cover;
+ height: 225px;
+ width: 150px;
+ position: relative;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ z-index: -2;
+}
+.dashboard-recent-media-cover-face {
+ background-position: center;
+ background-size: cover;
+ height: 150px;
+ width: 150px;
+ position: relative;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ z-index: -2;
+}
+.dashboard-recent-media-overlay {
+ position: absolute;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ text-align: left;
+ background: -moz-linear-gradient(top, rgba(0,0,0,0) 30%, rgba(0,0,0,1) 100%);
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(30%,rgba(0,0,0,0)), color-stop(100%,rgba(0,0,0,1)));
+ background: -webkit-linear-gradient(top, rgba(0,0,0,0) 30%,rgba(0,0,0,1) 100%);
+ background: -o-linear-gradient(top, rgba(0,0,0,0) 30%,rgba(0,0,0,1) 100%);
+ background: -ms-linear-gradient(top, rgba(0,0,0,0) 30%,rgba(0,0,0,1) 100%);
+ background: linear-gradient(to bottom, rgba(0,0,0,0) 30%,rgba(0,0,0,1) 100%);
+ height: 100%;
+ z-index: -1;
+}
+.dashboard-recent-media-overlay-text {
+ color: #aaa;
+ font-size: 12px;
+ font-weight: bold;
+ float: left;
+ position: absolute;
+ left: 8px;
+ bottom: 5px;
+}
+.dashboard-recent-media-metacontainer {
+ width: 150px;
+ font-size: 13px;
+ clear: both;
+}
+.dashboard-recent-media-metacontainer h3 {
+ padding: 5px 3px 0 3px;
+ color: #fff;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ position: relative;
+ font-size: 13px;
+ font-weight: bold;
+ margin: 0;
+ line-height: 16px;
+ width: 150px;
+ white-space: nowrap;
+ text-align: left;
+ clear: both;
+}
+.dashboard-recent-media-metacontainer h3.text-muted {
+ color: #777;
+}
+.dashboard-recent-media-metacontainer h3.text-muted a {
+ color: #777;
+}
+.dashboard-recent-media-metacontainer h3.text-muted a:hover {
+ color: #e9a049;
+}
+.art-face {
+ background-repeat: no-repeat;
+ background-position: center center;
+ background-attachment: scroll;
+ background-size: cover;
+ opacity: 0;
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ width: 100%;
+}
+.art-music-face {
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: cover;
+ width: 250px;
+ position: relative;
+ top: 0;
+ bottom: 0;
+}
+.summary-container {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ overflow-x: hidden;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+}
+.summary-container .table-card-header,
+.summary-container .table-card-back {
+ background: rgba(40,40,40, 0.9);
+}
+.summary-navbar {
+ background-color: rgba(255,255,255,.03);
+ height: 50px;
+ line-height: 50px;
+ max-height: 50px;
+ overflow: hidden;
+}
+.summary-navbar-list {
+ padding: 0 25px;
+ color: #999;
+ white-space: nowrap;
+ overflow: hidden;
+}
+.summary-navbar-list .breadcrumb {
+ padding: 0;
+ margin: 0;
+ background: none;
+}
+.summary-navbar-list .breadcrumb > .breadcrumb-arrow {
+ color: #444;
+ padding: 0 15px;
+}
+.summary-navbar-list .breadcrumb > .active {
+ color: #eee;
+}
+.summary-navbar-list .breadcrumb a {
+ color: #999;
+}
+.summary-navbar-list .breadcrumb a:hover {
+ color: #f9be03;
+}
+.summary-content-title-wrapper {
+ height: 150px;
+ padding-top: 50px;
+}
+.summary-content-title {
+ overflow: hidden;
+ position: relative;
+ max-height: 100px;
+}
+.summary-content-title h1 {
+ margin-top: 0;
+ margin-bottom: 10px;
+ color: #f9be03;
+ font-size: 28px;
+ line-height: 40px;
+ float: left;
+ clear: left;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+ width: 100%;
+}
+.summary-content-title h1 a {
+ color: #f9be03;
+}
+.summary-content-title h1 a:hover {
+ color: #fff;
+}
+.summary-content-title h2 {
+ margin-top: 0;
+ margin-bottom: 10px;
+ color: #fff;
+ font-size: 28px;
+ line-height: 40px;
+ float: left;
+ clear: left;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+ width: 100%;
+}
+.summary-content-title h3 {
+ margin-top: 0;
+ margin-bottom: 10px;
+ color: #999;
+ font-size: 28px;
+ line-height: 40px;
+ position: absolute;
+ bottom: 0;
+ right: 0;
+}
+.summary-content-title h3 a:hover {
+ text-decoration: underline;
+}
+.summary-content-title h3 a {
+ color: #999;
+}
+.summary-content-wrapper {
+ background: rgba(0,0,0,.4);
+ background: -webkit-linear-gradient(top, rgba(0,0,0,.4), rgba(10,10,10,.4));
+ background: -o-linear-gradient(bottom, rgba(0,0,0,.4), rgba(10,10,10,.4));
+ background: -moz-linear-gradient(bottom, rgba(0,0,0,.4), rgba(10,10,10,.4));
+ background: linear-gradient(to bottom, rgba(0,0,0,.4), rgba(10,10,10,.4));
+ background-clip: content-box;
+ min-height: calc(100% - 200px);
+ position: inherit;
+ width: 100%;
+}
+.summary-content-poster {
+ float: left;
+ width: 250px;
+ margin: 0 40px 0 25px;
+ height: 100px;
+ overflow: visible;
+ position: relative;
+}
+.summary-poster-face {
+ background-position: center;
+ background-size: cover;
+ height: 375px;
+ width: 250px;
+ position: relative;
+ webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ overflow: hidden;
+ z-index: 1;
+}
+.summary-poster-face-episode {
+ background-position: center;
+ background-size: cover;
+ height: 140px;
+ width: 250px;
+ position: relative;
+ webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ overflow: hidden;
+ z-index: 1;
+}
+.summary-poster-face-track {
+ background-position: center;
+ background-size: cover;
+ height: 250px;
+ width: 250px;
+ position: relative;
+ webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ overflow: hidden;
+ z-index: 1;
+}
+.summary-poster-face-overlay {
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ background-image: -webkit-gradient(linear,left 0,left 100%,from(rgba(0,0,0,.7)),to(rgba(0,0,0,.9)));
+ background-image: -webkit-linear-gradient(top,rgba(0,0,0,.7),0,rgba(0,0,0,.9),100%);
+ background-image: -moz-linear-gradient(top,rgba(0,0,0,.7) 0,rgba(0,0,0,.9) 100%);
+ background-image: linear-gradient(to bottom,rgba(0,0,0,.7) 0,rgba(0,0,0,.9) 100%);
+ background-repeat: repeat-x;
+ webkit-box-shadow: inset 0 0 0 2px #e9a049;
+ -moz-box-shadow: inset 0 0 0 2px #e9a049;
+ box-shadow: inset 0 0 0 2px #e9a049;
+ opacity: 0;
+ transition: opacity .2s;
+}
+.summary-poster-face-overlay span {
+ display: block;
+ width: 100%;
+ height: 100%;
+ background-image: url(../images/plex-logo-light.svg);
+ background-size: 100px;
+ background-repeat: no-repeat;
+ background-position: center;
+ opacity: 0;
+ transition: opacity .3s;
+}
+.summary-poster-face-overlay span:before {
+ content: "View On";
+ color: #999;
+ font-size: 13px;
+ font-weight: bold;
+ text-transform: uppercase;
+ text-align: center;
+ display: block;
+ position: absolute;
+ top: calc(50% - 34px);
+ width: 100%;
+}
+a:hover .summary-poster-face .summary-poster-face-overlay,
+a:hover .summary-poster-face-episode .summary-poster-face-overlay,
+a:hover .summary-poster-face-track .summary-poster-face-overlay,
+a:hover .summary-poster-face .summary-poster-face-overlay span,
+a:hover .summary-poster-face-episode .summary-poster-face-overlay span,
+a:hover .summary-poster-face-track .summary-poster-face-overlay span {
+ opacity: 1;
+}
+.summary-content-padding {
+ float: left;
+ width: 250px;
+ height: 1px;
+ margin: 0 40px 20px 25px;
+ position: relative;
+}
+.summary-content {
+ position: relative;
+ color: #999;
+ overflow: hidden;
+ padding-right: 10px;
+ margin-bottom: 20px;
+}
+.summary-content-details-wrapper {
+ width: 100%;
+ padding: 10px 0 15px 0;
+ position: relative;
+ float: left;
+}
+.summary-content-details-tag {
+ float: left;
+ line-height: 24px;
+}
+.summary-content-details-tag strong {
+ color: #fff;
+ margin-left: 2px;
+ margin-right: 10px;
+}
+.summary-content-media-info-wrapper {
+ width: 100%;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ text-align: center;
+}
+.summary-content-media-flag {
+ width: auto;
+ height: auto;
+ max-width: 75pt;
+ max-height: 15px;
+ margin: 0 5px;
+}
+.summary-content-summary {
+ overflow: hidden;
+ color: #fff;
+ float: left;
+ position: relative;
+ clear: both;
+ height: auto;
+ max-height: 160px;
+ padding-bottom: 0px;
+}
+.summary-content-people-wrapper {
+ margin-right: 20px;
+ float: left;
+}
+.summary-content-people-wrapper hidden-phone hidden-tablet {
+ overflow: hidden;
+ height: auto;
+ min-height: 0px;
+}
+.summary-content-actors {
+ margin-top: 13px;
+ font-size: 12px;
+ line-height: 18px;
+ color: #999;
+ overflow: hidden;
+}
+.summary-content-actors ul {
+ padding-left:20px;
+ margin-bottom: 0;
+}
+.summary-content-actors li {
+ list-style: none;
+ list-style-image: none;
+ display: block;
+ font-size: 12px;
+ line-height: 18px;
+ color: #fff;
+}
+.summary-content-genres {
+ margin-top: 13px;
+ font-size: 12px;
+ line-height: 18px;
+ color: #999;
+ overflow: hidden;
+}
+.summary-content-genres ul {
+ padding-left:20px;
+ margin-bottom: 0;
+}
+.summary-content-genres li {
+ list-style: none;
+ list-style-image: none;
+ display: block;
+ font-size: 12px;
+ line-height: 18px;
+ color: #fff;
+}
+.summary-content-writers {
+ margin-top: 13px;
+ font-size: 12px;
+ line-height: 18px;
+ color: #999;
+ overflow: hidden;
+}
+.summary-content-writers ul {
+ padding-left: 20px;
+ margin-bottom: 0;
+}
+.summary-content-writers li {
+ list-style: none;
+ list-style-image: none;
+ display: block;
+ font-size: 12px;
+ line-height: 18px;
+ color: #fff;
+}
+.star-rating {
+ display: inline-block;
+ font-size: 15px;
+ overflow: hidden;
+ white-space: nowrap;
+ margin-top: 3px;
+ height: 21px;
+ float: right;
+}
+.star-rating .star-icon {
+ width: auto;
+ margin-left: 2px;
+ color: #f9be03;
+}
+.star-rating .star-icon-o {
+ width: auto;
+ margin-left: 2px;
+ color: #999;
+}
+.children-list,
+.search-results-list {
+ position: relative;
+ z-index: 0;
+}
+.item-children-wrapper {
+}
+.item-children-section-title {
+ position: relative;
+ padding: 10px;
+ background-color: #2c2c2c;
+ border-bottom: 1px solid #3d3d3d;
+ border-top: 1px solid #282828;
+ height: 50px;
+ line-height: 22px;
+ padding: 13px 20px;
+ margin: 20px 0;
+}
+.item-children-section-title h4 {
+ position: relative;
+ margin: 0;
+ line-height: 22px;
+ color: #fff;
+ font-size: 16px;
+ text-align: center;
+ text-transform: uppercase;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+.item-children-instance {
+ list-style: none;
+ margin: 0;
+ overflow: hidden;
+}
+.item-children-instance li {
+ float: left;
+ position: relative;
+ left: 0px;
+ margin-right: 25px;
+ margin-bottom: 25px;
+}
+.item-children-instance li.item-children-list-item {
+ width: 100%;
+ height: 35px;
+ margin-right: 0;
+ margin-bottom: 0;
+}
+.item-children-poster {
+ float: left;
+ position: relative;
+ left: 0px;
+}
+a:hover .item-children-poster {
+ webkit-box-shadow: inset 0 0 0 2px #e9a049;
+ -moz-box-shadow: inset 0 0 0 2px #e9a049;
+ box-shadow: inset 0 0 0 2px #e9a049;
+}
+.item-children-poster-face {
+ background-position: center;
+ background-size: cover;
+ position: relative;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ z-index: -2;
+}
+.item-children-poster-face.poster-item {
+ width: 150px;
+ height: 225px;
+}
+.item-children-poster-face.episode-item {
+ width: 250px;
+ height: 140px;
+}
+.item-children-poster-face.cover-item {
+ width: 150px;
+ height: 150px;
+}
+.item-children-card-overlay {
+ position: absolute;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ text-align: left;
+ background: -moz-linear-gradient(top, rgba(0,0,0,0) 30%, rgba(0,0,0,1) 100%);
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(30%,rgba(0,0,0,0)), color-stop(100%,rgba(0,0,0,1)));
+ background: -webkit-linear-gradient(top, rgba(0,0,0,0) 30%,rgba(0,0,0,1) 100%);
+ background: -o-linear-gradient(top, rgba(0,0,0,0) 30%,rgba(0,0,0,1) 100%);
+ background: -ms-linear-gradient(top, rgba(0,0,0,0) 30%,rgba(0,0,0,1) 100%);
+ background: linear-gradient(to bottom, rgba(0,0,0,0) 30%,rgba(0,0,0,1) 100%);
+ height: 100%;
+ z-index: -1;
+}
+.item-children-overlay-text {
+ color: #aaa;
+ font-size: 12px;
+ font-weight: bold;
+ float: left;
+ position: absolute;
+ left: 8px;
+ bottom: 5px;
+}
+.item-children-instance-text-wrapper {
+ font-size: 13px;
+ margin-bottom: 20px;
+ clear: both;
+}
+.item-children-instance-text-wrapper.poster-item,
+.item-children-instance-text-wrapper.cover-item {
+ width: 150px;
+}
+.item-children-instance-text-wrapper.episode-item {
+ width: 250px;
+}
+.item-children-instance-text-wrapper h3 {
+ width: 100%;
+ padding: 5px 3px 0 3px;
+ color: #fff;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ position: relative;
+ font-size: 13px;
+ font-weight: bold;
+ margin: 0;
+ line-height: 16px;
+ white-space: nowrap;
+ text-align: left;
+ clear: both;
+}
+.item-children-instance-text-wrapper h3.text-muted {
+ color: #777;
+}
+.item-children-instance-text-wrapper h3.text-muted a {
+ color: #777;
+}
+.item-children-instance-text-wrapper h3.text-muted a:hover {
+ color: #e9a049;
+}
+.item-children-list-item-odd {
+ border-top: 0px solid #343434;
+ border-bottom: 0px solid #343434;
+ background-color: rgba(255,255,255,0.010);
+ height: 100%;
+ font-size: 13px;
+ padding-top: 10px;
+}
+.item-children-list-item-even {
+ border-top: 0px solid #343434;
+ border-bottom: 0px solid #343434;
+ background-color: rgba(255,255,255,0.035);
+ height: 100%;
+ font-size: 13px;
+ padding-top: 10px;
+}
+.item-children-list-item-odd:hover,
+.item-children-list-item-even:hover {
+ background-color: rgba(255,255,255,0.075);
+}
+.item-children-list-item-index {
+ float: left;
+ color: #777;
+ text-align: right;
+ display: inline-block;
+ width: 35px;
+ margin-right: 10px;
+}
+.item-children-list-item-title {
+ display: inline-block;
+ width: calc(100% - 110px);
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+}
+.item-children-list-item-duration {
+ float: right;
+ color: #777;
+ text-align: right;
+ display: inline-block;
+ width: 40px;
+ margin-right: 20px;
+}
+#new_title h3 {
+ color: #f9be03;
+ font-size: 14px;
+ line-height: 1.42857143;
+ font-weight: bold;
+ margin: 0;
+}
+.settings-alert {
+ float: left;
+ padding: 0;
+ margin: 5px 0;
+ border: 0;
+ position: relative;
+}
+.settings-alert ul {
+ padding: 0;
+}
+.settings-alert ul li {
+ list-style: none;
+ padding: 5px 12px;
+ margin: 0;
+ border: 1px solid #ebccd1;
+ border-radius: 4px;
+}
+.settings-alert ul li:before {
+ content: "\f071";
+ font-family: "Font Awesome 5 Free";
+ font-weight: 900;
+ margin-right: 5px;
+}
+.settings-warning {
+ color: #eb8600;
+}
+span.settings-warning {
+ padding-left: 10px;
+}
+#menu_link_show_advanced_settings.active {
+ color: #fff;
+ background-color: #cc7b19;
+}
+.advanced-setting {
+ display: none;
+}
+div.advanced-setting {
+ border-left: 1px solid #cc7b19;
+ padding-left: 10px;
+}
+li.advanced-setting {
+ border-left: 1px solid #cc7b19;
+}
+.docker-setting {
+ color: #cc7b19;
+ margin-left: 10px;
+}
+.user-info-wrapper {
+}
+.user-info-poster-face {
+ float: left;
+ margin: 15px 15px 15px 0;
+ background-size: cover;
+ background-position: center;
+ height: 80px;
+ width: 80px;
+ -webkit-border-radius: 50%;
+ -moz-border-radius: 50%;
+ border-radius: 50%;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+}
+.user-info-username {
+ font-size: 24px;
+ color: #fff;
+ padding-top: 27px;
+ padding-left: 110px;
+}
+.user-info-nav {
+ margin-top: 15px;
+}
+.user-info-nav > .active > a {
+ color: #cc7b19;
+}
+.nav-tabs > .active > a:hover,
+.nav-tabs > .active > a:focus {
+ color: #e9a049;
+}
+.user-info-nav a:hover {
+ color: #e9a049;
+ text-decoration: none;
+}
+.user-info-nav ul {
+ list-style: none;
+ padding: 0;
+}
+.user-info-nav li {
+ float: left;
+ margin-left: 10px;
+ margin-right: 10px;
+}
+.user-overview-stats-wrapper {
+}
+.user-overview-stats-wrapper ul {
+ list-style: none;
+ padding: 0;
+ margin: 0px 0px 0px 0px;
+}
+.user-overview-stats-instance {
+ float: left;
+ width: 400px;
+ height: 80px;
+ margin-bottom: 25px;
+}
+.user-overview-stats-instance-device_icon {
+ float: left;
+ padding-right: 15px;
+}
+.user-overview-stats-instance-device_icon img{
+}
+.user-overview-stats-instance li {
+ float: left;
+ list-style: none;
+ width: 100%;
+ height: 90px;
+}
+.user-overview-stats-instance-text {
+ position: relative;
+ top: 0px;
+ left: 0px;
+}
+.user-overview-stats-instance p {
+ color: #aaa;
+ font-size: 12px;
+ float: left;
+ position: relative;
+ top: 15px;
+ left: 0px;
+}
+.user-overview-stats-instance h3 strong{
+ color: #fff;
+}
+.user-overview-stats-instance h3 {
+ font-size: 30px;
+ font-weight: bold;
+ color: #f9be03;
+ line-height: 22px;
+ position: relative;
+ top: 5px;
+ margin: 0 5px 0 10px;
+ float: left;
+}
+.user-overview-stats-instance h4 {
+ color: #fff;
+ margin-bottom: 25px;
+}
+.user-overview-stats-instance h1 {
+ font-size: 54px;
+ font-weight: normal;
+ float: left;
+ color: #333;
+ color: rgba(255,255,255,0.05);
+ text-shadow: none;
+ position: relative;
+ top: 3px;
+ left: 3px;
+}
+.user-player ul {
+ list-style: none;
+ margin: 0;
+}
+.user-player-instance {
+ float: left;
+ width: 240px;
+ height: 80px;
+ margin-bottom: 25px;
+}
+.user-player-instance li {
+}
+.user-player-instance-box {
+ float: left;
+ border-radius: 3px;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ background-size: contain;
+ position: relative;
+ height: 80px;
+ width: 80px;
+}
+.user-player-instance-name {
+ float: left;
+ padding-top: 14px;
+ color: #fff;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ position: relative;
+ font-size: 14px;
+ line-height: 16px;
+ font-weight: normal;
+ width: 140px;
+ margin-left: 10px;
+ margin-bottom: 10px;
+}
+.user-player-instance-playcount h3 {
+ font-size: 30px;
+ font-weight: bold;
+ color: #f9be03;
+ line-height: 22px;
+ position: relative;
+ top: 5px;
+ margin: 0 5px 0 10px;
+ float: left;
+}
+.user-player-instance-playcount p {
+ color: #aaa;
+ font-size: 12px;
+ float: left;
+ position: relative;
+ top: 15px;
+ left: 0px;
+}
+.library-info-poster-face {
+ float: left;
+ margin: 15px 15px 15px 0;
+ background-size: cover;
+ background-position: center;
+ height: 80px;
+ width: 80px;
+ /*-webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);*/
+}
+.library-user-instance-box {
+ float: left;
+ -webkit-border-radius: 50%;
+ -moz-border-radius: 50%;
+ border-radius: 50%;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ background-size: contain;
+ position: relative;
+ height: 80px;
+ width: 80px;
+}
+a .library-user-instance-box:hover {
+ -webkit-box-shadow: inset 0 0 0 2px #e9a049;
+ -moz-box-shadow: inset 0 0 0 2px #e9a049;
+ box-shadow: inset 0 0 0 2px #e9a049;
+}
+#watched-stats-days-selection label {
+ margin-bottom: 0;
+}
+.home-padded-header {
+ margin: 25px 0;
+ height: 34px;
+}
+.home-padded-header h3 {
+ margin-top: 9px;
+ width: 175px;
+}
+.home-padded-header .button-bar {
+ float: left;
+}
+.home-platforms {
+}
+.home-platforms ul,
+.library-platforms ul {
+ list-style: none;
+ margin: 0;
+}
+.home-platforms-instance {
+ position: relative;
+ float: left;
+ width: 340px;
+ padding: 5px;
+ margin-right: 20px;
+ margin-bottom: 20px;
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box;
+ white-space: nowrap;
+}
+.home-platforms-instance-overlay {
+ height: 130px;
+ width: 100%;
+ padding: 5px;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ overflow: hidden;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ z-index: 0;
+}
+.home-platforms-instance-background {
+ background-color: #282828;
+ background-position: center;
+ background-size: cover;
+ height: 130px;
+ width: 100%;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ opacity: 0.15;
+ -webkit-filter: blur(3px);
+ -moz-filter: blur(3px);
+ filter: blur(3px);
+ -webkit-transition: background 1s linear;
+ transition: background 1s linear;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ z-index: -1;
+}
+.home-platforms-instance li {
+ position: relative;
+}
+.home-platforms-instance-info {
+ float: left;
+ position: relative;
+ padding-left: 80px;
+ width: 100%;
+ height: 120px;
+ overflow: hidden;
+}
+.home-platforms-instance-name {
+ color: #fff;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ position: relative;
+ font-size: 14px;
+ line-height: 16px;
+ font-weight: bold;
+ width: 100%;
+ padding: 0 0 0 20px;
+}
+.home-platforms-instance-name h4 {
+ margin: 10px 0 4px 0;
+}
+.home-platforms-instance-playcount {
+ display: inline-block;
+ position: relative;
+ padding: 6px 0 0 20px;
+ max-width: 100%;
+}
+.home-platforms-instance-playcount h4 {
+ font-size: 14px;
+ line-height: 16px;
+ margin: 10px 0 10px 0;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+.home-platforms-instance-playcount h3 {
+ font-size: 30px;
+ font-weight: bold;
+ color: #f9be03;
+ line-height: 22px;
+ position: relative;
+ top: 5px;
+ margin: 0 5px 0 0;
+ float: left;
+}
+.home-platforms-instance-playcount p {
+ color: #aaa;
+ font-size: 12px;
+ float: left;
+ position: relative;
+ top: 15px;
+ left: 0px;
+ margin-right: 5px;
+}
+.home-platforms-instance-last-user {
+ float: left;
+ position: relative;
+ padding: 6px 0 0 20px;
+ width: 100%;
+}
+.home-platforms-instance-last-user h4 {
+ font-size: 14px;
+ line-height: 16px;
+ margin: 10px 0 10px 0;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+.home-platforms-instance-last-user h5 {
+ font-size: 12px;
+ position: relative;
+ margin: 0 0 2px 0;
+ float: left;
+}
+.home-platforms-instance-last-user p {
+ color: #aaa;
+ font-size: 12px;
+ float: left;
+ clear: left;
+ position: relative;
+ width: 100%;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+.home-platforms-instance-poster {
+ margin-left: 0px;
+ position: absolute;
+ overflow: hidden;
+}
+.home-platforms-instance-cover {
+ margin-left: 0px;
+ position: absolute;
+ top: 20px;
+ overflow: hidden;
+}
+.home-platforms-instance-poster .home-platforms-poster-face {
+ background-position: center;
+ background-size: cover;
+ height: 120px;
+ width: 80px;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+}
+.home-platforms-instance-cover .home-platforms-cover-face {
+ background-position: center;
+ background-size: cover;
+ height: 80px;
+ width: 80px;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+}
+.home-platforms-instance-poster .home-platforms-library-thumb {
+ background-position: center;
+ background-size: cover;
+ height: 80px;
+ width: 80px;
+ margin-top: 20px;
+}
+.home-platforms-instance-box {
+ background-position: center;
+ background-size: cover;
+ margin: 20px 0 0 0px;
+ height: 80px;
+ width: 80px;
+ position: relative;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ overflow: hidden;
+}
+.home-platforms-instance-oval {
+ background-position: center;
+ background-size: cover;
+ margin: 20px 0 0 0px;
+ height: 80px;
+ width: 80px;
+ position: relative;
+ -webkit-border-radius: 50%;
+ -moz-border-radius: 50%;
+ border-radius: 50%;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ overflow: hidden;
+}
+.home-platforms-instance-list {
+ float: left;
+ position: relative;
+ width: 100%;
+ padding: 0 10px 25px 10px;
+}
+.home-platforms-instance-list li {
+ margin-top: 25px;
+ position: relative;
+ height: 60px;
+}
+.home-platforms-instance-list-number {
+ background-color: #f9be03;
+ float: left;
+ position: absolute;
+ top: -10px;
+ left: 10px;
+ height: 20px;
+ width: 20px;
+ display: block;
+ text-align: center;
+ padding-top: 1px;
+ -webkit-border-radius: 50%;
+ -moz-border-radius: 50%;
+ border-radius: 50%;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+}
+.home-platforms-instance-list-number h4 {
+ color: #000;
+ font-size: 15px;
+ font-weight: bold;
+ margin: 0;
+}
+.home-platforms-instance-list-info {
+ float: left;
+ position: relative;
+ padding-left: 75px;
+ width: 100%;
+ height: 60px;
+}
+.home-platforms-instance-list-name {
+ float: left;
+ color: #fff;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ position: relative;
+ font-size: 13px;
+ line-height: 15px;
+ font-weight: bold;
+ width: 100%;
+ padding: 2px 0 0 10px;
+}
+.home-platforms-instance-list-name h5 {
+ margin: 5px 0px;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+.home-platforms-instance-list-playcount {
+ float: left;
+ position: relative;
+ padding: 4px 0 0 10px;
+ width: 100%;
+}
+.home-platforms-instance-list-playcount h3 {
+ font-size: 20px;
+ font-weight: bold;
+ color: #f9be03;
+ line-height: 22px;
+ position: relative;
+ margin: 0 5px 0 0;
+ float: left;
+}
+.home-platforms-instance-list-playcount p {
+ color: #aaa;
+ font-size: 12px;
+ float: left;
+ position: relative;
+ top: 5px;
+ left: 0px;
+ margin-right: 5px;
+}
+.home-platforms-instance-list-last-user {
+ float: left;
+ position: relative;
+ padding: 0 0 0 10px;
+ width: 100%;
+}
+.home-platforms-instance-list-last-user h5 {
+ font-size: 12px;
+ position: relative;
+ margin: 0 0 2px 0;
+ float: left;
+}
+.home-platforms-instance-list-last-user p {
+ color: #aaa;
+ font-size: 12px;
+ float: left;
+ clear: left;
+ position: relative;
+ width: 100%;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+.home-platforms-instance-list-poster {
+ position: absolute;
+ left: 20px;
+ overflow: hidden;
+}
+.home-platforms-instance-list-cover {
+ position: absolute;
+ top: 10px;
+ left: 20px;
+ overflow: hidden;
+}
+.home-platforms-instance-list-poster .home-platforms-list-poster-face {
+ background-position: center;
+ background-size: cover;
+ height: 60px;
+ width: 40px;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+}
+.home-platforms-instance-list-cover .home-platforms-list-cover-face {
+ background-position: center;
+ background-size: cover;
+ height: 40px;
+ width: 40px;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+}
+.home-platforms-instance-list-box {
+ background-position: center;
+ background-size: cover;
+ margin: 10px 0 0 20px;
+ height: 40px;
+ width: 40px;
+ position: relative;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ overflow: hidden;
+}
+.home-platforms-instance-list-oval {
+ background-position: center;
+ background-size: cover;
+ margin: 10px 0 0 20px;
+ height: 40px;
+ width: 40px;
+ position: relative;
+ -webkit-border-radius: 50%;
+ -moz-border-radius: 50%;
+ border-radius: 50%;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ overflow: hidden;
+}
+.home-platforms-instance-list-chevron {
+ position: absolute;
+ top: 100px;
+ right: 5px;
+ cursor: pointer;
+}
+.home-platforms-instance-list-chevron i {
+ color: #999;
+ font-size: 16px;
+ -webkit-transition: all 0.3s ease;
+ -o-transition: all 0.3s ease;
+ transition: all 0.3s ease;
+}
+.home-platforms-instance-list-chevron i:hover {
+ color: #f9be03;
+}
+.home-platforms-instance-list-chevron.active i.fa-chevron-down{
+ color: #f9be03;
+ -webkit-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ -o-transform: rotate(180deg);
+ transform: rotate(180deg);
+}
+a .home-platforms-instance-box:hover,
+a .home-platforms-instance-oval:hover,
+a .home-platforms-instance-list-box:hover,
+a .home-platforms-instance-list-oval:hover,
+a .home-platforms-poster-face:hover,
+a .home-platforms-cover-face:hover,
+a .home-platforms-list-poster-face:hover,
+a .home-platforms-list-cover-face:hover
+ {
+ -webkit-box-shadow: inset 0 0 0 2px #e9a049;
+ -moz-box-shadow: inset 0 0 0 2px #e9a049;
+ box-shadow: inset 0 0 0 2px #e9a049;
+}
+.home-platforms-instance .slider {
+ background-color: #2d2d2d;
+ width: calc(100% + 20px);
+ display: none;
+ position: absolute;
+ top: 124px;
+ left: -5px;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.1);
+ z-index: 1;
+ clip: rect(1px, 350px, 1000px, -2px);
+}
+.history-table-title {
+ text-overflow: ellipsis;
+ overflow: hidden;
+ max-width: 350px;
+}
+.graphs-instance {
+ height: 330px;
+ padding: 20px;
+ background-color: #333;
+ margin-bottom: 20px;
+ border-radius: 8px;
+}
+.watch-chart {
+ margin-top: 10px;
+ height: 300px;
+ width: 100%;
+}
+.graphs-load {
+ color: #999999;
+ text-align: center;
+ line-height: 300px;
+}
+.card-back {
+ padding: 16px;
+ background-color: #282828;
+ margin-left: auto;
+ margin-right: auto;
+ margin-top: 20px;
+ margin-bottom: 20px;
+ width: 80%;
+ overflow: hidden;
+}
+.card-back-full {
+ padding: 20px;
+ background-color: #282828;
+ margin-top: 20px;
+ margin-bottom: 20px;
+ overflow: hidden;
+}
+.table-card-back {
+ padding: 16px 16px 16px 16px;
+ background-color: #282828;
+ margin-left: auto;
+ margin-right: auto;
+ margin-top: 20px;
+ margin-bottom: 20px;
+ width: 100%;
+ max-width: 1750px;
+ overflow: hidden;
+}
+.table-card-header {
+ padding: 16px 16px 16px 16px;
+ background-color: #2c2c2c;
+ border-bottom: 1px solid #3d3d3d;
+ border-top: 1px solid #282828;
+ margin-left: auto;
+ margin-right: auto;
+ margin-top: 20px;
+ margin-bottom: -20px;
+ width: 100%;
+ max-width: 1750px;
+ overflow: hidden;
+}
+.table-card-back td {
+ font-size: 12px;
+}
+.header-bar {
+ float: left;
+}
+.header-bar span {
+ font-size: 22px;
+ font-weight: bold;
+ line-height: 34px;
+}
+.button-bar {
+ float: right;
+}
+.colvis-button-bar,
+.refresh-users-button,
+.refresh-libraries-button {
+ /*float: right;*/
+}
+.refresh-users-button,
+.refresh-libraries-button {
+ /*margin-right: 5px;*/
+}
+.nav-settings,
+.nav-settings ul {
+ margin: 0px 0px 20px 0px;
+}
+.nav-settings > li {
+ list-style: none;
+ background-color: #282828;
+ width: 100%;
+ max-width: 340px;
+ min-width: 200px;
+ border-top: 1px solid #2d2d2d;
+}
+.nav-settings > li > a {
+ border-bottom: 1px solid #232323;
+ display: block;
+ padding: 15px 15px 15px 15px;
+ color: #999;
+ -webkit-transition: all 0.3s ease;
+ -o-transition: all 0.3s ease;
+ transition: all 0.3s ease;
+}
+.nav-settings > li > a:hover,
+.nav-settings > li > a:focus {
+ color: #eee;
+ background-color: #2f2f2f;
+}
+.nav-settings > .active > a,
+.nav-settings > .active > a:hover,
+.nav-settings > .active > a:focus {
+ color: #f9be03;
+ background-color: #2f2f2f;
+}
+.stacked-configs,
+.stacked-configs ul {
+ margin: 0px 0px 20px 0px;
+}
+.stacked-configs > li {
+ margin: 0;
+ list-style: none;
+ background-color: #282828;
+ width: 100%;
+ min-width: 320px;
+ max-width: 900px;
+}
+.stacked-configs > li > span {
+ display: block;
+ padding: 8px 20px 8px 15px;
+ color: #eee;
+ border-left: 2px solid #444;
+ border-top: 1px solid #2d2d2d;
+ -webkit-transition: all 0.3s ease;
+ -o-transition: all 0.3s ease;
+ transition: all 0.3s ease;
+}
+.stacked-configs > li > span:hover,
+.stacked-configs > li > span:focus {
+ color: #eee;
+ background-color: #2f2f2f;
+}
+.stacked-configs > li > span > a.toggle-right,
+.stacked-configs > li > span > span.toggle-right {
+ float: right;
+ color: #999;
+ padding-left: 10px;
+}
+.stacked-configs > li > span > a.toggle-left,
+.stacked-configs > li > span > span.toggle-left {
+ float: left;
+ color: #444;
+ padding-right: 8px;
+}
+.stacked-configs > li > span > a:hover {
+ color: #eee;
+}
+.stacked-configs > li > span > a.active,
+.stacked-configs > li > span > span.active {
+ color: #f9be03;
+}
+.stacked-configs > li.mobile-device > span > a.toggle-left,
+.stacked-configs > li.mobile-device > span > span.toggle-left {
+ color: #999;
+}
+.accordion {
+ width: 100%;
+ max-width: 900px;
+ margin: 0px 0px 20px 0px;
+ background: #282828;
+ list-style: none;
+}
+.accordion li {
+ margin: 0;
+}
+.accordion li .link {
+ cursor: pointer;
+ display: block;
+ padding: 8px 12px 8px 12px;
+ color: #999;
+ border-bottom: 1px solid #2d2d2d;
+ position: relative;
+ -webkit-transition: all 0.3s ease;
+ -o-transition: all 0.3s ease;
+ transition: all 0.3s ease;
+}
+.accordion li .link:hover,
+.accordion li .link:hover i.fa {
+ background: #2f2f2f;
+}
+.accordion li .link i.fa {
+ color: #999;
+}
+.accordion li .link span.toggle-right {
+ float: right;
+ padding-left: 10px;
+}
+.accordion li:last-child .link {
+ border-bottom: 0;
+}
+.accordion li .fa-chevron-down {
+ color: #999;
+ -webkit-transition: all 0.3s ease;
+ -o-transition: all 0.3s ease;
+ transition: all 0.3s ease;
+}
+.accordion li.open .link,
+.accordion li.open .link i.fa {
+ color: #f9be03;
+}
+.accordion li.open .fa-chevron-down {
+ color: #f9be03;
+ -webkit-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ -o-transform: rotate(180deg);
+ transform: rotate(180deg);
+}
+.submenu {
+ display: none;
+ background: #2d2d2d;
+ list-style: none;
+ margin: 0px;
+ padding: 20px;
+}
+.submenu li {
+ border-bottom: 1px solid #2f2f2f;
+}
+.submenu a {
+ display: block;
+ text-decoration: none;
+ color: #d9d9d9;
+ padding: 12px;
+ -webkit-transition: all 0.25s ease;
+ -o-transition: all 0.25s ease;
+ transition: all 0.25s ease;
+}
+.submenu a:hover {
+ background: #f9be03;
+ color: #FFF;
+}
+.ajaxMsg {
+ background-color: rgba(255,255,255,0.075);
+ color: #999999;
+ display: none;
+ font-size: 14px;
+ right: 10px;
+ padding: 10px 10px;
+ position: fixed;
+ text-align: center;
+ bottom: 10px;
+ min-height: 32px;
+ width: 400px;
+ z-index: 9999;
+}
+.ajaxMsg .msg {
+ line-height: normal;
+ padding-left: 20px;
+}
+.ajaxMsg .loader {
+ position: relative;
+ top: 2px;
+}
+.ajaxMsg .success {
+ text-align: left;
+}
+.ajaxMsg .error {
+ background-color: rgba(255,0,0,0.5);
+ font-size: 20px;
+ text-align: left;
+}
+.ajaxMsg .ui-icon {
+ display: inline-block;
+ margin-left: -20px;
+ top: 2px;
+ position: relative;
+ margin-right: 3px;
+}
+.dataTables_processing {
+ background-color: grey;
+ display: none;
+ font-size: 14px;
+ right: 10px;
+ padding: 10px 10px;
+ position: fixed;
+ text-align: center;
+ bottom: 10px;
+ min-height: 32px;
+ width: 250px;
+ z-index: 9999;
+}
+.dataTables_paginate li {
+ margin: 0;
+}
+div.dataTables_info {
+ white-space: normal !important;
+}
+.tooltip {
+ z-index: 9999;
+}
+.tooltip.top .tooltip-arrow {
+ border-top-color: #fff;
+}
+.tooltip.right .tooltip-arrow {
+ border-right-color: #fff;
+}
+.tooltip.bottom .tooltip-arrow {
+ border-bottom-color: #fff;
+}
+.tooltip.left .tooltip-arrow {
+ border-left-color: #fff;
+}
+.tooltip-inner {
+ color: #000;
+ background: #fff;
+ border: 0;
+ font-weight: bold;
+ border-radius: 2px;
+}
+.history-thumbnail-popover {
+ z-index: 2000;
+ padding: 0;
+ border: 0;
+}
+.history-thumbnail-popover.popover.left {
+ margin-left: -15px;
+}
+.history-thumbnail-popover.popover.right {
+ margin-left: 15px;
+}
+.history-thumbnail-popover .popover-content {
+ color: #000;
+ padding: 0;
+}
+.history-thumbnail {
+ background-position: center;
+ background-size: cover;
+ width: 80px;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+ -webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+ box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1);
+}
+.edit-user-toggles,
+.edit-server-toggles,
+.edit-library-toggles {
+ padding-right: 0px;
+ margin-right: 0px;
+ display: inline-block;
+}
+.edit-user-toggles > input[type='checkbox'],
+.edit-server-toggles > input[type='checkbox'],
+.edit-library-toggles > input[type='checkbox'] {
+ display: none;
+}
+.edit-user-toggles > input[type='checkbox'] + label,
+.edit-server-toggles > input[type='checkbox'] + label,
+.edit-library-toggles > input[type='checkbox'] + label {
+ color: #444;
+ cursor: pointer;
+}
+.edit-user-toggles > input[type='checkbox']:checked + label,
+.edit-server-toggles > input[type='checkbox']:checked + label,
+.edit-library-toggles > input[type='checkbox']:checked + label {
+ color: #fff;
+ cursor: pointer;
+}
+.edit-user-name > input[type='text'] {
+ margin: 0;
+}
+.noTransition
+{
+ -moz-transition: none !important;
+ -webkit-transition: none !important;
+ -o-transition: none !important;
+ transition: none !important;
+}
+#users-to-delete > li,
+#users-to-purge > li,
+#libraries-to-delete > li,
+#libraries-to-purge > li {
+ color: #e9a049;
+}
+#updatebar {
+ background-color: #444;
+ opacity: 0.95;
+ color: #999999;
+ font-size: 14px;
+ right: 10px;
+ padding: 10px 10px;
+ position: fixed;
+ text-align: center;
+ bottom: 10px;
+ min-height: 22px;
+ width: 400px;
+ z-index: 9999;
+ display: block;
+}
+#updatebar .msg {
+ line-height: normal;
+ padding-left: 20px;
+}
+#updatebar .loader {
+ position: relative;
+ top: 2px;
+}
+#updatebar.success {
+ padding: 15px 10px;
+ text-align: left;
+}
+#updatebar.error {
+ padding: 15px 10px;
+ text-align: left;
+}
+#updatebar .ui-icon {
+ display: inline-block;
+ margin-left: -20px;
+ top: 2px;
+ position: relative;
+ margin-right: 3px;
+}
+#updatebar a:hover {
+ color: #e9a049;
+}
+.body-container {
+ position: absolute;
+ top: 50px;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ overflow: auto;
+ -webkit-overflow-scrolling: touch;
+}
+::-webkit-scrollbar {
+ width: 15px;
+}
+::-webkit-scrollbar-track {
+ background-color: rgba(0,0,0,.2);
+}
+::-webkit-scrollbar-thumb {
+ min-height: 50px;
+ background-color: rgba(255,255,255,.15);
+ border: 3px solid transparent;
+ border-radius: 8px;
+ background-clip: padding-box;
+}
+pre::-webkit-scrollbar-track {
+ background-color: rgba(255,255,255,.2);
+}
+pre::-webkit-scrollbar-thumb {
+ background-color: rgba(0,0,0,.15);
+}
+
+@media only screen
+ and (min-device-width: 300px)
+ and (max-device-width: 450px) {
+ .home-platforms-instance {
+ width: calc(100% - 20px);
+ }
+ .dashboard-activity-instance {
+ width: 100%;
+ }
+ .dashboard-stats-instance {
+ width: 100%;
+ }
+}
+@media only screen
+ and (min-device-width: 300px)
+ and (max-device-width: 740px) {
+ .header-bar {
+ display: block;
+ float: none !important;
+ }
+ .button-bar {
+ float: left !important;
+ clear: both;
+ margin-top: 15px;
+ }
+ .button-bar > div,
+ .button-bar > button,
+ .button-bar > span {
+ float: left !important;
+ clear: both !important;
+ margin-bottom: 10px;
+ }
+ .button-bar > div > button.btn {
+ float: left !important;
+ clear: both !important;
+ }
+ .home-padded-header .button-bar {
+ margin-top: 10px;
+ margin-bottom: 15px;
+ }
+}
+@media only screen
+ and (min-device-width: 740px)
+ and (max-device-width: 1024px) {
+ .button-bar {
+ float: right !important;
+ }
+ .button-bar > div > button.btn {
+ float: left !important;
+ clear: both !important;
+ }
+ .home-padded-header .button-bar {
+ float: left !important;
+ }
+}
+#search_form {
+ width: 270px;
+ padding: 8px 15px;
+}
+#search_form span.input-textbox {
+ overflow: hidden;
+ width: 200px;
+ height: 34px;
+ display: inline-flex;
+ float: right;
+}
+#search_form #query {
+ width: 0;
+ height: 34px;
+ margin-top: 0;
+ float: right;
+ position: relative;
+ right: -200px;
+ border-radius: 3px 0 0 3px;
+}
+#search_form #query.active {
+ width: 200px;
+ right: 0px;
+}
+#search_form #search_button.btn-inactive {
+ background-color: #000;
+ border: 1px solid rgba(0,0,0,0);
+ -webkit-transition: background 0.3s;
+ -moz-transition: background 0.3s;
+ -ms-transition: background 0.3s;
+ -o-transition: background 0.3s;
+ transition: background 0.3s;
+}
+#update_search_form div.input-group {
+ display: inline-table;
+ vertical-align: middle;
+ max-width: 250px;
+}
+#update_search_form #update_query {
+ margin: 5px 0 0 0.5em;
+}
+.notification-params {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #282828;
+}
+.notification-params th {
+ padding-left: 10px;
+ height: 30px;
+}
+.notification-params td {
+ height: 25px;
+}
+.notification-params td:first-child {
+ padding-left: 10px;
+ width: 250px;
+}
+.notification-params.time-options td:first-child {
+ padding-left: 10px;
+ width: 125px;
+}
+.notification-params.time-options td:nth-child(2) {
+ padding-left: 10px;
+ width: 275px;
+}
+.notification-params td:not(:first-child) {
+ padding-right: 10px;
+}
+.notification-params tr:nth-child(odd) td {
+ background-color: rgba(255,255,255,0.035);
+}
+.notification-params tr:nth-child(even) td {
+ background-color: rgba(255,255,255,0.010);
+}
+.activity-queue {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #282828;
+}
+.activity-queue th {
+ padding-left: 10px;
+ height: 30px;
+}
+.activity-queue th:first-child {
+ width: 268px;
+}
+.activity-queue th:nth-child(2) {
+ width: 125px;
+}
+.activity-queue th:nth-child(3) {
+ width: 175px;
+}
+.activity-queue td {
+ height: 25px;
+ padding: 5px 10px;
+}
+.activity-queue tr:nth-child(odd) td {
+ background-color: rgba(255,255,255,0.035);
+}
+.activity-queue tr:nth-child(even) td {
+ background-color: rgba(255,255,255,0.010);
+}
+#days-selection label,
+#months-selection label {
+ margin-bottom: 0;
+}
+.card-sortable {
+ height: 36px;
+ padding: 0 20px 0 0;
+ line-height: 34px;
+ cursor: move;
+ cursor: -webkit-grab;
+ cursor: grab;
+ border-bottom: 1px solid #232323;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ -o-user-select: none;
+ user-select: none;
+}
+.card {
+ position: relative;
+ background-color: #282828;
+ border-top: 1px solid #2d2d2d;
+}
+.card label {
+ font-weight: normal;
+}
+.card-handle {
+ display: inline-block;
+ width: 30px;
+ margin-right: 10px;
+ color: #444;
+ text-align: center;
+ background-color: #2f2f2f;
+}
+.selectize-input input[type='text'] {
+ height: 20px;
+}
+.small-muted {
+ font-size: small;
+ color: #777;
+}
+.config-info-table,
+.config-servers-table,
+.config-scheduler-table {
+ width: 100%;
+}
+.config-info-table td,
+.config-info-table th,
+.config-scheduler-table td,
+.config-scheduler-table th {
+ padding-bottom: 5px;
+}
+.config-info-table td:first-child {
+ width: 150px;
+}
+.config-scheduler-table td:first-child {
+ width: 300px;
+}
+.config-scheduler-table th {
+ color: #fff;
+}
+.config-servers-table>tfoot>tr>td {
+ padding-top: 12px;
+ padding-bottom: 12px;
+ padding-left: 5px;
+ padding-right: 10px;
+ background-color: #404040;
+}
+.config-servers-table>tfoot>tr>td p {
+ font-size: 18px;
+ margin: 0px;
+ text-align: left;
+}
+.config-servers-table td,
+.config-servers-table th {
+ padding-bottom: 10px;
+}
+.config-servers-table th {
+ color: #fff;
+ padding-top: 15px;
+}
+.config-servers-table .active i {
+ color: #f9be03 !important;
+}
+a.no-highlight {
+ color: #777;
+}
+a.no-highlight:hover {
+ color: #fff;
+}
+.top-line {
+ border-top: 1px dotted #777;
+ padding-top: 5px;
+}
+.help-bold {
+ font-weight: bold;
+ color: #fff;
+}
+.save-button {
+ margin-top: 15px;
+}
+.nav-dashboard > li {
+ float: left;
+}
+.btn-gray.disabled,
+.btn-gray.disabled:focus,
+.btn-gray.disabled:hover,
+.btn-gray.disabled:active {
+ color: #323232;
+ cursor: default;
+}
+.nav-header > li > a:focus,
+.nav-header > li > a:hover {
+ background-color: transparent;
+}
+div[id^="recently-added-row-scroller-"],
+#recently-watched-row-scroller {
+ position: relative;
+ height: 265px;
+ margin-bottom: 25px;
+}
+
+@media (min-width: 768px) {
+ .login-container {
+ max-width: 750px;
+ }
+ .modal.wide .modal-dialog {
+ width: 780px;
+ }
+}
+@media (min-width: 992px) {
+ .login-container {
+ max-width: 970px;
+ }
+}
+@media (min-width: 1200px) {
+ .login-container {
+ max-width: 1170px;
+ }
+}
+.login-body-container {
+ margin: 50px 0;
+}
+.login-container {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: 15px;
+ padding-right: 15px;
+}
+.login {
+ margin: 0 auto;
+}
+.login-logo {
+ margin: 0 auto 50px auto;
+ text-align: center;
+}
+.login-container .login-method-header {
+ text-align: center;
+ font-weight: 600;
+ text-transform: uppercase;
+}
+.login-container .form-group {
+ margin-bottom: 20px;
+}
+.login-container .form-group label {
+ font-weight: 400;
+ color: #999;
+}
+.login-container .form-control {
+ height: 38px;
+ line-height: 1.5em;
+}
+.login-container .form-footer {
+ margin-top: 40px;
+}
+.login-container .login-button {
+ float: right;
+ text-transform: uppercase;
+ text-shadow: 0 -1px 1px rgba(0,0,0,.4),0 0 15px rgba(0,0,0,.2);
+}
+.login-container .remember-group {
+ color: #999;
+ display: inline-block;
+ margin-top: 7.5px;
+}
+.login-container .remember-group .control-label {
+ display: inline;
+ margin-bottom: 0;
+ font-weight: 400;
+ cursor: pointer;
+}
+.login-divider {
+ text-align: center;
+ border-bottom: 1px solid #555;
+ line-height: 0.1em;
+ margin: 50px auto;
+ max-width: 400px;
+ text-transform: uppercase;
+}
+.login-divider span {
+ background: #1f1f1f;
+ padding: 0 15px;
+ color: #999;
+}
+.login-button-plex {
+ text-align: center;
+}
+.login-button-plex .remember-group {
+ margin-top: 20px;
+}
+.login-button-plex button#sign-in-plex {
+ float: none;
+}
+.login-alert {
+ text-align: center;
+ padding: 8px;
+ display: none;
+}
+#admin-login-modal .form-group label {
+ font-weight: 400;
+ color: #999;
+}
+#admin-login-modal .remember-group {
+ float: left;
+ color: #999;
+}
+#admin-login-modal .remember-group .control-label {
+ display: inline;
+ margin-bottom: 0;
+ font-weight: 400;
+ cursor: pointer;
+}
+.datatable-wrap {
+ min-width: 150px;
+ max-width: 250px;
+}
+.inline-pre {
+ font-family: monospace;
+ margin: 0 2px;
+ padding: 2px 5px;
+ font-size: 13px;
+ color: #fff;
+ background-color: #555;
+ border: 0px solid #444;
+ border-radius: 3px;
+}
+.overlay-refresh-image {
+ opacity: 0;
+ color: #000;
+ font-size: 16px;
+ float: left;
+ position: absolute;
+ top: 0px;
+ right: 10px;
+ z-index: 1;
+ transition: all .1s cubic-bezier(.4,0,1,1);
+ -webkit-transition: all .1s cubic-bezier(.4,0,1,1);
+ -moz-transition: all .1s cubic-bezier(.4,0,1,1);
+ -o-transition: all .1s cubic-bezier(.4,0,1,1);
+ text-shadow: -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff;
+}
+.overlay-refresh-image.left {
+ left: 10px;
+}
+.overlay-refresh-image.info-art {
+ color: #999;
+ top: 15px;
+ right: 25px;
+ opacity: 1;
+ text-shadow: none;
+ cursor: pointer;
+}
+.overlay-refresh-image.info-art:hover {
+ color: #fff;
+ text-shadow: none;
+}
+a:hover .overlay-refresh-image {
+ opacity: .25;
+ top: 8px;
+}
+a:hover .overlay-refresh-image:hover {
+ opacity: .9;
+}
+#ip_error, #isp_error {
+ color: #aaa;
+ display: none;
+ text-align: center;
+ padding-top: 10px;
+ padding-bottom: 10px;
+}
+#plexpy-log-levels label,
+#plex-log-levels label {
+ margin-bottom: 0;
+}
+#plexpy-notifiers-table .friendly_name,
+#notifier-config-modal span.notifier_id,
+#plexpy-newsletters-table .friendly_name,
+#newsletter-config-modal span.newsletter_id,
+#plexpy-mobile-devices-table .friendly_name,
+#mobile-device-config-modal span.notifier_id {
+ color: #777;
+}
+#notifier-config-modal .nav-tabs,
+#newsletter-config-modal .nav-tabs {
+ margin-bottom: 10px;
+ padding-left: 15px;
+ border-bottom: 1px solid #444;
+}
+#notifier-config-modal .nav-tabs > li,
+#newsletter-config-modal .nav-tabs > li {
+ margin: 0 0 -1px 0;
+}
+#notifier-config-modal .nav-tabs > li > a,
+#newsletter-config-modal .nav-tabs > li > a {
+ padding: 5px 10px;
+ color: #737373;
+}
+#notifier-config-modal .nav-tabs > li > a:hover,
+#newsletter-config-modal .nav-tabs > li > a:hover {
+ border-color: #444;
+ background: #222;
+}
+#notifier-config-modal .nav-tabs > li.active > a,
+#notifier-config-modal .nav-tabs > li.active > a:hover,
+#notifier-config-modal .nav-tabs > li.active > a:focus,
+#newsletter-config-modal .nav-tabs > li.active > a,
+#newsletter-config-modal .nav-tabs > li.active > a:hover,
+#newsletter-config-modal .nav-tabs > li.active > a:focus {
+ color: #fff;
+ background: #222;
+}
+#notifier-config-modal .nav-tabs > li.active > a,
+#notifier-config-modal .nav-tabs > li.active > a:hover,
+#notifier-config-modal .nav-tabs > li.active > a:focus,
+#newsletter-config-modal .nav-tabs > li.active > a,
+#newsletter-config-modal .nav-tabs > li.active > a:hover,
+#newsletter-config-modal .nav-tabs > li.active > a:focus {
+ border: 1px solid #444;
+ border-bottom-color: transparent;
+}
+#newsletter-config-modal #custom_cron {
+ display: inline-block;
+ width: initial;
+ height: 32px;
+ margin-right: 5px;
+ margin-top: 4px;
+}
+#newsletter-config-modal #cron-widget {
+ display: inline-block;
+ margin-top: 1px;
+}
+#newsletter-config-modal #cron-widget select.cron-select {
+ width: initial;
+ display: inline;
+ height: 32px;
+ margin-top: 4px;
+}
+#newsletter-config-modal #cron-widget select.cron-select[name=cron-period] option[value=minute],
+#newsletter-config-modal #cron-widget select.cron-select[name=cron-period] option[value=hour] {
+ display: none !important;
+}
+.git-group input.form-control {
+ width: 50%;
+}
+.git-group select.form-control {
+ width: 50%;
+ height: 32px;
+}
+#changelog-modal .modal-body > h2 {
+ margin-bottom: 10px;
+ padding-bottom: 10px;
+ border-bottom: 1px solid #444;
+ font-size: 18px;
+}
+#changelog-modal .modal-body > ul {
+ padding-left: 25px;
+ margin-bottom: 30px;
+}
+#changelog-modal ul {
+ padding-left: 20px;
+}
+.google-play-badge {
+ display:inline-block;
+ height:45px;
+ margin-top: 10px;
+}
+.google-play-badge img {
+ border: 1px solid #3B3B3B;
+ border-radius: 6px;
+ box-sizing: border-box;
+ height: 45px;
+ vertical-align: middle;
+}
+
+.svg-icon {
+ padding: 10px;
+ background-origin: content-box !important;
+ background-size: contain !important;
+ background-repeat: no-repeat !important;
+ background-position: center !important;
+}
+.platform-android {
+ background-color: #a4ca39;
+ background-image: url(../images/platforms/android.svg);
+}
+.platform-atv {
+ background-color: #858487;
+ background-image: url(../images/platforms/atv.svg);
+}
+.platform-chrome {
+ background-color: #ed5e50;
+ background-image: url(../images/platforms/chrome.svg);
+}
+.platform-chromecast {
+ background-color: #10a4e8;
+ background-image: url(../images/platforms/chromecast.svg);
+}
+.platform-default {
+ background-color: #e5a00d;
+ background-image: url(../images/platforms/default.svg);
+}
+.platform-dlna {
+ background-color: #0cb14b;
+ background-image: url(../images/platforms/dlna.svg);
+}
+.platform-firefox {
+ background-color: #e67817;
+ background-image: url(../images/platforms/firefox.svg);
+}
+.platform-gtv {
+ background-color: #008bcf;
+ background-image: url(../images/platforms/gtv.svg);
+}
+.platform-ie {
+ background-color: #00599e;
+ background-image: url(../images/platforms/ie.svg);
+}
+.platform-ios {
+ background-color: #858487;
+ background-image: url(../images/platforms/ios.svg);
+}
+.platform-kodi {
+ background-color: #31afe1;
+ background-image: url(../images/platforms/kodi.svg);
+}
+.platform-linux {
+ background-color: #1793d0;
+ background-image: url(../images/platforms/linux.svg);
+}
+.platform-macos {
+ background-color: #858487;
+ background-image: url(../images/platforms/macos.svg);
+}
+.platform-msedge {
+ background-color: #0078d7;
+ background-image: url(../images/platforms/msedge.svg);
+}
+.platform-opera {
+ background-color: #ff1b2d;
+ background-image: url(../images/platforms/opera.svg);
+}
+.platform-playstation {
+ background-color: #034da2;
+ background-image: url(../images/platforms/playstation.svg);
+}
+.platform-plex {
+ background-color: #e5a00d;
+ background-image: url(../images/platforms/plex.svg);
+}
+.platform-plexamp {
+ background-color: #e5a00d;
+ background-image: url(../images/platforms/plexamp.svg);
+}
+.platform-roku {
+ background-color: #6d3c97;
+ background-image: url(../images/platforms/roku.svg);
+}
+.platform-safari {
+ background-color: #00a9ec;
+ background-image: url(../images/platforms/safari.svg);
+}
+.platform-samsung {
+ background-color: #034ea2;
+ background-image: url(../images/platforms/samsung.svg);
+}
+.platform-synclounge {
+ background-color: #151924;
+ background-image: url(../images/platforms/synclounge.svg);
+}
+.platform-tivo {
+ background-color: #00a7e1;
+ background-image: url(../images/platforms/tivo.svg);
+}
+.platform-wiiu {
+ background-color: #03a9f4;
+ background-image: url(../images/platforms/wiiu.svg);
+}
+.platform-windows {
+ background-color: #2fc0f5;
+ background-image: url(../images/platforms/windows.svg);
+}
+.platform-wp {
+ background-color: #68217a;
+ background-image: url(../images/platforms/windows.svg);
+}
+.platform-xbmc {
+ background-color: #3b4872;
+ background-image: url(../images/platforms/xbmc.svg);
+}
+.platform-xbox {
+ background-color: #107c10;
+ background-image: url(../images/platforms/xbox.svg);
+}
+.platform-android-rgba {
+ background-color: rgba(164, 202, 57, 0.40);
+}
+.platform-atv-rgba {
+ background-color: rgba(133, 132, 135, 0.40);
+}
+.platform-chrome-rgba {
+ background-color: rgba(237, 94, 80, 0.40);
+}
+.platform-chromecast-rgba {
+ background-color: rgba(16, 164, 232, 0.40);
+}
+.platform-default-rgba {
+ background-color: rgba(229, 160, 13, 0.40);
+}
+.platform-dlna-rgba {
+ background-color: rgba(12, 177, 75, 0.40);
+}
+.platform-firefox-rgba {
+ background-color: rgba(230, 120, 23, 0.40);
+}
+.platform-gtv-rgba {
+ background-color: rgba(0, 139, 207, 0.40);
+}
+.platform-ie-rgba {
+ background-color: rgba(0, 89, 158, 0.40);
+}
+.platform-ios-rgba {
+ background-color: rgba(133, 132, 135, 0.40);
+}
+.platform-kodi-rgba {
+ background-color: rgba(49, 175, 225, 0.40);
+}
+.platform-linux-rgba {
+ background-color: rgba(23, 147, 208, 0.40);
+}
+.platform-macos-rgba {
+ background-color: rgba(133, 132, 135, 0.40);
+}
+.platform-msedge-rgba {
+ background-color: rgba(0, 120, 215, 0.40);
+}
+.platform-opera-rgba {
+ background-color: rgba(255, 27, 45, 0.40);
+}
+.platform-playstation-rgba {
+ background-color: rgba(3, 77, 162, 0.40);
+}
+.platform-plex-rgba {
+ background-color: rgba(229, 160, 13, 0.40);
+}
+.platform-plexamp-rgba {
+ background-color: rgba(229, 160, 13, 0.40);
+}
+.platform-roku-rgba {
+ background-color: rgba(109, 60, 151, 0.40);
+}
+.platform-safari-rgba {
+ background-color: rgba(0, 169, 236, 0.40);
+}
+.platform-samsung-rgba {
+ background-color: rgba(3, 78, 162, 0.40);
+}
+.platform-synclounge-rgba {
+ background-color: rgba(21, 25, 36, 0.40);
+}
+.platform-tivo-rgba {
+ background-color: rgba(0, 167, 225, 0.40);
+}
+.platform-wiiu-rgba {
+ background-color: rgba(3, 169, 244, 0.40);
+}
+.platform-windows-rgba {
+ background-color: rgba(47, 192, 245, 0.40);
+}
+.platform-wp-rgba {
+ background-color: rgba(104, 33, 122, 0.40);
+}
+.platform-xbmc-rgba {
+ background-color: rgba(59, 72, 114, 0.40);
+}
+.platform-xbox-rgba {
+ background-color: rgba(16, 124, 16, 0.40);
+}
+.library-movie {
+ background-image: url(../images/libraries/movie.svg);
+}
+.library-show {
+ background-image: url(../images/libraries/show.svg);
+}
+.library-artist {
+ background-image: url(../images/libraries/artist.svg);
+}
+.library-photo {
+ background-image: url(../images/libraries/photo.svg);
+}
+.library-video {
+ background-image: url(../images/libraries/video.svg);
+}
+.stats-most_concurrent {
+ background-image: url(../images/icons/most-concurrent-streams.svg);
+}
+
+.transparent {
+ background-color: transparent !important;
+}
+.no-image {
+ background-image: none !important;
+}
+#info-modal .stream-info-current {
+ color: #aaa;
+ text-align: center;
+ padding-bottom: 10px;
+}
+#info-modal .stream-info-item {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: nowrap;
+ align-items: baseline;
+ width: 100%;
+ margin-bottom: 5px;
+}
+#info-modal .stream-info-item .sub-heading {
+ height: 100%;
+ width: 75px;
+ color: #aaa;
+ font-size: 10px;
+ text-align: right;
+ text-transform: uppercase;
+ line-height: 14px;
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0;
+}
+#info-modal .stream-info-item .sub-value {
+ color: #fff;
+ font-weight: bold;
+ margin-left: 10px;
+ text-align: left;
+ line-height: 14px;
+ -webkit-flex-grow: 1;
+ flex-grow: 1;
+}
+.stream-info {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #282828;
+ table-layout: fixed;
+}
+.stream-info .heading {
+ color: #F9AA03;
+ text-transform: uppercase;
+ font-size: 15px;
+ font-weight: bold !important;
+}
+.stream-info th:first-child {
+ width: 125px;
+ height: 30px;
+ color: #fff;
+ font-size: 12px;
+ text-align: right;
+ text-transform: uppercase;
+}
+.stream-info th:not(:first-child) {
+ text-align: center;
+ font-weight: normal;
+}
+.stream-info td {
+ height: 25px;
+}
+.stream-info td:first-child {
+ color: #aaa;
+ font-size: 10px;
+ text-align: right;
+ text-transform: uppercase;
+}
+.stream-info td:not(:first-child) {
+ text-align: center;
+}
+.stream-info tr:nth-child(odd) td {
+ background-color: rgba(255,255,255,0.035);
+}
+.stream-info tr:nth-child(even) td {
+ background-color: rgba(255,255,255,0.010);
+}
+.number-input {
+ margin: 0 !important;
+ width: 55px !important;
+ height: 34px !important;
+ -moz-appearance: textfield;
+}
+.number-input::-webkit-inner-spin-button,
+.number-input::-webkit-outer-spin-button {
+ -webkit-appearance: none;
+ margin: 0;
+}
+.newsletter-time_frame .input-group-addon {
+ height: 32px;
+ width: 52px;
+ margin-top: 5px;
+ line-height: 1.42857143;
+}
+.newsletter-time_frame input.form-control {
+ width: calc(50% - 37px);
+}
+.newsletter-time_frame select.form-control {
+ width: calc(50% - 15px);
+ height: 32px;
+}
+.newsletter-loader-container {
+ font-family: 'Open Sans', Arial, sans-serif;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+}
+.newsletter-loader-message {
+ color: #282A2D;
+ text-align: center;
+ position: absolute;
+ left: 50%;
+ top: 25%;
+ transform: translate(-50%, -50%);
+}
+.newsletter-loader {
+ border: 5px solid #ccc;
+ -webkit-animation: spin 1s linear infinite;
+ animation: spin 1s linear infinite;
+ border-top: 5px solid #282A2D;
+ border-radius: 50%;
+ width: 50px;
+ height: 50px;
+ position: relative;
+ left: calc(50% - 25px);
+}
+@keyframes spin {
+ 0% { transform: rotate(0deg); }
+ 100% { transform: rotate(360deg); }
+}
+a[data-tab-destination] {
+ cursor: pointer;
+}
+.modal-config-section {
+ margin-top: 10px !important;
+ padding-top: 10px;
+ border-top: 1px solid #444;
+}
+.newsletter-logo {
+ margin: 0 auto 50px auto;
+ text-align: center;
+}
+.pointer {
+ cursor: pointer;
+}
+
+.iframe-container {
+ width: 100%;
+ height: calc(100vh - 200px);
+ position: relative;
+}
+.iframe-overlay {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ background: url(../images/discord-overlay.png) no-repeat;
+ background-size: cover;
+ border: 1px solid #36393e;
+}
+.iframe-button-container {
+ margin: 0;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+}
+.iframe-button {
+ color: #fff;
+ border-radius: 20px;
+ text-align: center;
+ cursor: pointer;
+ font-size: 15px;
+ height: 28px;
+ line-height: 28px;
+ min-width: 200px;
+ transition: box-shadow 0.3s ease;
+ padding: 0 15px;
+ background: rgba(114, 137, 218, 0.4);
+ text-transform: uppercase;
+ text-decoration: none;
+ display: block;
+}
+.iframe-button:hover,
+.iframe-button:focus {
+ color: #fff;
+ box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 0px 99999px inset, rgba(0, 0, 0, 0.2) 0px 1px 5px 0px, rgba(0, 0, 0, 0.14) 0px 2px 2px 0px, rgba(0, 0, 0, 0.12) 0px 3px 1px -2px;
+}
+.iframe-button:active {
+ box-shadow: rgba(255, 255, 255, 0.1) 0px 0px 0px 99999px inset, rgba(0, 0, 0, 0.2) 0px 5px 5px -3px, rgba(0, 0, 0, 0.14) 0px 8px 10px 1px, rgba(0, 0, 0, 0.12) 0px 3px 14px 2px;
+}
+.iframe {
+ width: 100%;
+ height: 100%;
+ position: inherit;
+ display: block;
+ border: 0;
+}
+.fa-blank {
+ visibility: hidden;
+}
+
+#browser-warning {
+ height: 25px;
+ width: 100%;
+ background: #cc7b19;
+ text-align: center;
+ font-weight: bold;
+ padding-top: 2px;
+ position: absolute;
+ top: 0;
+ z-index: 9999;
+}
diff --git a/data/interfaces/default/current_activity_header.html b/data/interfaces/default/current_activity_header.html
new file mode 100644
index 00000000..042450b1
--- /dev/null
+++ b/data/interfaces/default/current_activity_header.html
@@ -0,0 +1,38 @@
+<%doc>
+USAGE DOCUMENTATION :: PLEASE LEAVE THIS AT THE TOP OF THIS FILE
+
+For Mako templating syntax documentation please visit: http://docs.makotemplates.org/en/latest/
+
+Filename: current_activity_header.html
+Version: 0.1
+Variable names: data [string]
+
+data :: Usable parameters
+
+data Returns the current number of active streams
+
+DOCUMENTATION :: END
+%doc>
+
+% if data != None:
+<%
+ s = '('
+ if data['direct_play']:
+ s += str(data['direct_play']) + ' direct play' + ('s' if data['direct_play'] > 1 else '') + ', '
+ if data['direct_stream']:
+ s += str(data['direct_stream']) + ' direct stream' + ('s' if data['direct_stream'] > 1 else '') + ', '
+ if data['transcode']:
+ s += str(data['transcode']) + ' transcode' + ('s' if data['transcode'] > 1 else '') + ', '
+ s = s.rstrip(', ')
+ s += ')'
+%>
+ % if data['stream_count'] == '0':
+ Activity
+ % elif data['stream_count'] == '1':
+ Activity ${data['stream_count']} stream ${s}
+ % else:
+ Activity ${data['stream_count']} streams ${s}
+ % endif
+% else:
+Activity
+% endif
diff --git a/data/interfaces/default/current_activity_instance.html b/data/interfaces/default/current_activity_instance.html
new file mode 100644
index 00000000..71e9cf48
--- /dev/null
+++ b/data/interfaces/default/current_activity_instance.html
@@ -0,0 +1,484 @@
+<%doc>
+USAGE DOCUMENTATION :: PLEASE LEAVE THIS AT THE TOP OF THIS FILE
+
+For Mako templating syntax documentation please visit: http://docs.makotemplates.org/en/latest/
+
+Filename: current_activity_instance.html
+Version: 0.1
+Variable names: data {dict}
+
+data :: Usable parameters
+
+== Global keys ==
+session_key Returns a unique session id for the active stream
+rating_key Returns the unique identifier for the media item.
+media_index Returns the index of the media item.
+parent_media_index Returns the index of the media item's parent.
+media_type Returns the type of session. Either 'track', 'episode' or 'movie'.
+thumb Returns the location of the item's thumbnail. Use with pms_image_proxy.
+bif_thumb Returns the location of the item's bif thumbnail. Use with pms_image_proxy.
+art Returns the location of the item's artwork
+progress_percent Returns the current progress of the item. 0 to 100.
+user Returns the name of the user owning the session.
+user_id Returns the Plex user id if available.
+machine_id Returns the machine id of the players being used.
+friendly_name Returns the friendlly name of the user owning the session.
+user_thumb Returns the profile picture of the user owning the session.
+state Returns the state of the current session. Either 'playing', 'paused' or 'buffering'.
+title Returns the name of the episode, movie or music track.
+year Returns the year of the episode, movie, or clip.
+ip_address Returns the ip address of the stream.
+player Returns the name of the platform used to play the stream.
+platform Returns the type of platform used to play the stream.
+transcode_throttled Returns true if the transcode session is throttled.
+transcode_progress Returns the current transcode progress of the item. 0 to 100.
+transcode_speed Returns the current transcode speed of the item.
+audio_decision Returns the audio transcode decision. Either 'transcode', 'copy' or 'direct play'.
+audio_codec Returns the name of the audio codec.
+audio_channels Returns the number of audio channels.
+grandparent_title Returns the title of the item's grandparent.
+parent_title Returns the title of the item's parent.
+video_decision Returns the video transcode decision. Either 'transcode', 'copy' or 'direct play'.
+video_codec Returns the name of the video codec.
+height Returns the value of the video height.
+width Returns the value of the video width.
+container Returns the value of the media container.
+bitrate Returns the value of the media bitrate.
+video_resolution Returns the value of the video resolution.
+video_framerate Returns the value of the video framerate.
+video_aspect_ratio Returns the value of the video aspect ratio.
+transcode_audio_channels Returns the amount of audio channels if there is a transcode session.
+transcode_audio_codec Returns the name of the audio codec if there is a transcode session.
+transcode_video_codec Returns the name of the video codec if there is a transcode session.
+transcode_width Returns the video width if there is a transcode session.
+transcode_height Returns the video height if there is a transcode session.
+transcode_container Returns the value of media container if there is a transcode session.
+transcode_protocol Returns the value of media protocol if there is a transcode session.
+indexes Returns true if the media has media indexes and are enabled
+
+DOCUMENTATION :: END
+%doc>
+
+% if session is not None:
+<%
+ from collections import defaultdict
+ from urllib.parse import quote
+ from plexpy import helpers
+ from plexpy.common import VIDEO_RESOLUTION_OVERRIDES, AUDIO_CODEC_OVERRIDES, EXTRA_TYPES
+ import plexpy
+%>
+<%
+ data = defaultdict(lambda: 'Unknown', **session)
+ sk = '{}-{}'.format(data['server_id'], data['session_key'])
+
+ href = 'info?server_id={}'.format(data['server_id']) + '&rating_key={}'.format(data['rating_key']) if data['rating_key'] else '#'
+ parent_href = 'info?server_id={}'.format(data['server_id']) + '&rating_key={}'.format(data['parent_rating_key']) if data['parent_rating_key'] else '#'
+ grandparent_href = 'info?server_id={}'.format(data['server_id']) + '&rating_key={}'.format(data['grandparent_rating_key']) if data['grandparent_rating_key'] else '#'
+ user_href = 'user?user_id={}'.format(data['user_id']) if data['user_id'] else '#'
+%>
+
+
+ <%
+ if data['live'] == 1:
+ background_url = 'images/art-live.png'
+ elif data['channel_stream'] == 0:
+ background_url = 'pms_image_proxy?server_id=' + str(data['server_id']) + '&img=' + data['art'] + '&width=500&height=280&opacity=40&background=282828&blur=3&fallback=art&refresh=true'
+ else:
+ if (data['art'] and data['art'].startswith('http')) or (data['thumb'] and data['thumb'].startswith('http')):
+ background_url = data['art']
+ else:
+ background_url = 'pms_image_proxy?server_id=' + str(data['server_id']) + '&img=' + quote(data['art'] or data['thumb']) + '&width=500&height=280&fallback=art&refresh=true&clip=true'
+ %>
+
+
+ % if data['media_type'] == 'track':
+
+ % endif
+ % if data['live'] == 1:
+
+ % elif data['channel_stream'] == 0:
+ % if data['media_type'] == 'movie':
+
+
+
+ % elif data['media_type'] == 'episode':
+
+
+
+ % elif data['media_type'] == 'track':
+
+
+
+ % elif data['media_type'] in ('photo', 'clip'):
+ % if data['extra_type']:
+
+ % else:
+
+ % endif
+ % else:
+
+ % endif
+ % else:
+ % if data['channel_icon'].startswith('http'):
+
+
+ % else:
+
+
+ % endif
+ % endif
+
+
+ <%
+ if not _session['user_group'] == 'admin' or not data['session_id']:
+ no_terminate = '-no-terminate'
+ else:
+ no_terminate = ''
+ %>
+
+ % if _session['user_group'] == 'admin' and plexpass and data['session_id']:
+
+
+
+ % endif
+
+
+
+ % if data['media_type'] != 'photo':
+
+ % if data['live'] == 1:
+ Live
+ % elif data['view_offset']:
+ ETA:
+
+
+
+
+ /
+
+
+ % else:
+ ETA: Unknown 0:00 /
+
+
+ % endif
+
+ % endif
+
+
+
+
+ % if data['live'] == 1:
+
Live
+ % else:
+
${data['transcode_progress']}%
+
${data['progress_percent']}%
+ % endif
+
+
+
+
+
+% endif
\ No newline at end of file
diff --git a/data/interfaces/default/edit_library.html b/data/interfaces/default/edit_library.html
new file mode 100644
index 00000000..824f5943
--- /dev/null
+++ b/data/interfaces/default/edit_library.html
@@ -0,0 +1,111 @@
+<%doc>
+USAGE DOCUMENTATION :: PLEASE LEAVE THIS AT THE TOP OF THIS FILE
+
+For Mako templating syntax documentation please visit: http://docs.makotemplates.org/en/latest/
+
+Filename: edit_library.html
+Version: 0.1
+Variable names: data [list]
+
+data :: Usable parameters
+
+== Global keys ==
+section_id Returns the library id of the library.
+section_name Returns the name of the library.
+section_type Returns the type of the library.
+library_thumb Returns the thumbnail for the library.
+custom_thumb Returns the custom thumbnail for the library.
+library_art Returns the artwork for the library.
+count Returns the item count for the library.
+parent_count Returns the parent item count for the library.
+child_count Returns the child item count for the library.
+do_notify Returns bool value for whether to send notifications for the library.
+keep_history Returns bool value for whether to keep history for the library.
+
+DOCUMENTATION :: END
+%doc>
+
+<%!
+ from plexpy import helpers
+%>
+
+% if data != None:
+
+
+
+
+
+
+
+
+ Keep history
+
+
Uncheck this if you do not want to keep any history on this library's activity.
+
+ % if data['library_id']:
+
+ % endif
+
+
+
+
+
+
+% endif
\ No newline at end of file
diff --git a/data/interfaces/default/edit_user.html b/data/interfaces/default/edit_user.html
new file mode 100644
index 00000000..3753bdeb
--- /dev/null
+++ b/data/interfaces/default/edit_user.html
@@ -0,0 +1,139 @@
+<%doc>
+USAGE DOCUMENTATION :: PLEASE LEAVE THIS AT THE TOP OF THIS FILE
+
+For Mako templating syntax documentation please visit: http://docs.makotemplates.org/en/latest/
+
+Filename: edit_user.html
+Version: 0.1
+Variable names: data [list]
+
+data :: Usable parameters
+
+== Global keys ==
+user_id Returns the user id of the user.
+username Returns the user's username.
+friendly_name Returns the friendly name of the user.
+email Returns the user's email address.
+user_thumb Returns the thumbnail for the user.
+is_home_user Returns bool value for whether the user is part of a Plex Home.
+is_allow_sync Returns bool value for whether the user has sync rights.
+is_restricted Returns bool value for whether the user account is restricted.
+do_notify Returns bool value for whether to send notifications for the user.
+keep_history Returns bool value for whether to keep history for the user.
+allow_guest Returns bool value for whether to allow guest access for the user.
+
+DOCUMENTATION :: END
+%doc>
+
+<%!
+ from plexpy import helpers
+ from plexpy.common import GUEST_ACCESS_LEVELS
+%>
+
+% if data != None:
+
+
+
+
+
+
+
+
+
+ Keep history
+
+
Uncheck this if you do not want to keep any history on this user's activity.
+
+
+ % if data['user_id']:
+
+ % endif
+
+
+
+
+
+
+% endif
\ No newline at end of file
diff --git a/data/interfaces/default/fonts/Open-Sans-600/LICENSE.txt b/data/interfaces/default/fonts/Open-Sans-600/LICENSE.txt
new file mode 100644
index 00000000..d6456956
--- /dev/null
+++ b/data/interfaces/default/fonts/Open-Sans-600/LICENSE.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/data/interfaces/default/fonts/Open-Sans-600/Open-Sans-600.eot b/data/interfaces/default/fonts/Open-Sans-600/Open-Sans-600.eot
new file mode 100644
index 00000000..cbbfa5b0
Binary files /dev/null and b/data/interfaces/default/fonts/Open-Sans-600/Open-Sans-600.eot differ
diff --git a/data/interfaces/default/fonts/Open-Sans-600/Open-Sans-600.svg b/data/interfaces/default/fonts/Open-Sans-600/Open-Sans-600.svg
new file mode 100644
index 00000000..7a3f2dd9
--- /dev/null
+++ b/data/interfaces/default/fonts/Open-Sans-600/Open-Sans-600.svg
@@ -0,0 +1,1637 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/interfaces/default/fonts/Open-Sans-600/Open-Sans-600.ttf b/data/interfaces/default/fonts/Open-Sans-600/Open-Sans-600.ttf
new file mode 100644
index 00000000..314e983a
Binary files /dev/null and b/data/interfaces/default/fonts/Open-Sans-600/Open-Sans-600.ttf differ
diff --git a/data/interfaces/default/fonts/Open-Sans-600/Open-Sans-600.woff b/data/interfaces/default/fonts/Open-Sans-600/Open-Sans-600.woff
new file mode 100644
index 00000000..c7cdaffa
Binary files /dev/null and b/data/interfaces/default/fonts/Open-Sans-600/Open-Sans-600.woff differ
diff --git a/data/interfaces/default/fonts/Open-Sans-600/Open-Sans-600.woff2 b/data/interfaces/default/fonts/Open-Sans-600/Open-Sans-600.woff2
new file mode 100644
index 00000000..4001c52a
Binary files /dev/null and b/data/interfaces/default/fonts/Open-Sans-600/Open-Sans-600.woff2 differ
diff --git a/data/interfaces/default/fonts/Open-Sans-regular/LICENSE.txt b/data/interfaces/default/fonts/Open-Sans-regular/LICENSE.txt
new file mode 100644
index 00000000..d6456956
--- /dev/null
+++ b/data/interfaces/default/fonts/Open-Sans-regular/LICENSE.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/data/interfaces/default/fonts/Open-Sans-regular/Open-Sans-regular.eot b/data/interfaces/default/fonts/Open-Sans-regular/Open-Sans-regular.eot
new file mode 100644
index 00000000..1d98e6ea
Binary files /dev/null and b/data/interfaces/default/fonts/Open-Sans-regular/Open-Sans-regular.eot differ
diff --git a/data/interfaces/default/fonts/Open-Sans-regular/Open-Sans-regular.svg b/data/interfaces/default/fonts/Open-Sans-regular/Open-Sans-regular.svg
new file mode 100644
index 00000000..052c59ff
--- /dev/null
+++ b/data/interfaces/default/fonts/Open-Sans-regular/Open-Sans-regular.svg
@@ -0,0 +1,1637 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/interfaces/default/fonts/Open-Sans-regular/Open-Sans-regular.ttf b/data/interfaces/default/fonts/Open-Sans-regular/Open-Sans-regular.ttf
new file mode 100644
index 00000000..0dae9c3b
Binary files /dev/null and b/data/interfaces/default/fonts/Open-Sans-regular/Open-Sans-regular.ttf differ
diff --git a/data/interfaces/default/fonts/Open-Sans-regular/Open-Sans-regular.woff b/data/interfaces/default/fonts/Open-Sans-regular/Open-Sans-regular.woff
new file mode 100644
index 00000000..ac2b2c65
Binary files /dev/null and b/data/interfaces/default/fonts/Open-Sans-regular/Open-Sans-regular.woff differ
diff --git a/data/interfaces/default/fonts/Open-Sans-regular/Open-Sans-regular.woff2 b/data/interfaces/default/fonts/Open-Sans-regular/Open-Sans-regular.woff2
new file mode 100644
index 00000000..402dfd77
Binary files /dev/null and b/data/interfaces/default/fonts/Open-Sans-regular/Open-Sans-regular.woff2 differ
diff --git a/data/interfaces/default/fonts/bootstrap3/glyphicons-halflings-regular.eot b/data/interfaces/default/fonts/bootstrap3/glyphicons-halflings-regular.eot
new file mode 100644
index 00000000..b93a4953
Binary files /dev/null and b/data/interfaces/default/fonts/bootstrap3/glyphicons-halflings-regular.eot differ
diff --git a/data/interfaces/default/fonts/bootstrap3/glyphicons-halflings-regular.svg b/data/interfaces/default/fonts/bootstrap3/glyphicons-halflings-regular.svg
new file mode 100644
index 00000000..94fb5490
--- /dev/null
+++ b/data/interfaces/default/fonts/bootstrap3/glyphicons-halflings-regular.svg
@@ -0,0 +1,288 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data/interfaces/default/fonts/bootstrap3/glyphicons-halflings-regular.ttf b/data/interfaces/default/fonts/bootstrap3/glyphicons-halflings-regular.ttf
new file mode 100644
index 00000000..1413fc60
Binary files /dev/null and b/data/interfaces/default/fonts/bootstrap3/glyphicons-halflings-regular.ttf differ
diff --git a/data/interfaces/default/fonts/bootstrap3/glyphicons-halflings-regular.woff b/data/interfaces/default/fonts/bootstrap3/glyphicons-halflings-regular.woff
new file mode 100644
index 00000000..9e612858
Binary files /dev/null and b/data/interfaces/default/fonts/bootstrap3/glyphicons-halflings-regular.woff differ
diff --git a/data/interfaces/default/fonts/bootstrap3/glyphicons-halflings-regular.woff2 b/data/interfaces/default/fonts/bootstrap3/glyphicons-halflings-regular.woff2
new file mode 100644
index 00000000..64539b54
Binary files /dev/null and b/data/interfaces/default/fonts/bootstrap3/glyphicons-halflings-regular.woff2 differ
diff --git a/data/interfaces/default/fonts/font-awesome/fa-brands-400.eot b/data/interfaces/default/fonts/font-awesome/fa-brands-400.eot
new file mode 100644
index 00000000..f8e48185
Binary files /dev/null and b/data/interfaces/default/fonts/font-awesome/fa-brands-400.eot differ
diff --git a/data/interfaces/default/fonts/font-awesome/fa-brands-400.svg b/data/interfaces/default/fonts/font-awesome/fa-brands-400.svg
new file mode 100644
index 00000000..68eb65a1
--- /dev/null
+++ b/data/interfaces/default/fonts/font-awesome/fa-brands-400.svg
@@ -0,0 +1,1127 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/interfaces/default/fonts/font-awesome/fa-brands-400.ttf b/data/interfaces/default/fonts/font-awesome/fa-brands-400.ttf
new file mode 100644
index 00000000..2b00dae7
Binary files /dev/null and b/data/interfaces/default/fonts/font-awesome/fa-brands-400.ttf differ
diff --git a/data/interfaces/default/fonts/font-awesome/fa-brands-400.woff b/data/interfaces/default/fonts/font-awesome/fa-brands-400.woff
new file mode 100644
index 00000000..9e4b7e1c
Binary files /dev/null and b/data/interfaces/default/fonts/font-awesome/fa-brands-400.woff differ
diff --git a/data/interfaces/default/fonts/font-awesome/fa-brands-400.woff2 b/data/interfaces/default/fonts/font-awesome/fa-brands-400.woff2
new file mode 100644
index 00000000..b9e58c5e
Binary files /dev/null and b/data/interfaces/default/fonts/font-awesome/fa-brands-400.woff2 differ
diff --git a/data/interfaces/default/fonts/font-awesome/fa-regular-400.eot b/data/interfaces/default/fonts/font-awesome/fa-regular-400.eot
new file mode 100644
index 00000000..5217c95f
Binary files /dev/null and b/data/interfaces/default/fonts/font-awesome/fa-regular-400.eot differ
diff --git a/data/interfaces/default/fonts/font-awesome/fa-regular-400.svg b/data/interfaces/default/fonts/font-awesome/fa-regular-400.svg
new file mode 100644
index 00000000..5f495431
--- /dev/null
+++ b/data/interfaces/default/fonts/font-awesome/fa-regular-400.svg
@@ -0,0 +1,467 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/interfaces/default/fonts/font-awesome/fa-regular-400.ttf b/data/interfaces/default/fonts/font-awesome/fa-regular-400.ttf
new file mode 100644
index 00000000..cefbd50f
Binary files /dev/null and b/data/interfaces/default/fonts/font-awesome/fa-regular-400.ttf differ
diff --git a/data/interfaces/default/fonts/font-awesome/fa-regular-400.woff b/data/interfaces/default/fonts/font-awesome/fa-regular-400.woff
new file mode 100644
index 00000000..954b0593
Binary files /dev/null and b/data/interfaces/default/fonts/font-awesome/fa-regular-400.woff differ
diff --git a/data/interfaces/default/fonts/font-awesome/fa-regular-400.woff2 b/data/interfaces/default/fonts/font-awesome/fa-regular-400.woff2
new file mode 100644
index 00000000..bd35950e
Binary files /dev/null and b/data/interfaces/default/fonts/font-awesome/fa-regular-400.woff2 differ
diff --git a/data/interfaces/default/fonts/font-awesome/fa-solid-900.eot b/data/interfaces/default/fonts/font-awesome/fa-solid-900.eot
new file mode 100644
index 00000000..cc691d63
Binary files /dev/null and b/data/interfaces/default/fonts/font-awesome/fa-solid-900.eot differ
diff --git a/data/interfaces/default/fonts/font-awesome/fa-solid-900.svg b/data/interfaces/default/fonts/font-awesome/fa-solid-900.svg
new file mode 100644
index 00000000..1534b64b
--- /dev/null
+++ b/data/interfaces/default/fonts/font-awesome/fa-solid-900.svg
@@ -0,0 +1,2231 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/interfaces/default/fonts/font-awesome/fa-solid-900.ttf b/data/interfaces/default/fonts/font-awesome/fa-solid-900.ttf
new file mode 100644
index 00000000..618136ab
Binary files /dev/null and b/data/interfaces/default/fonts/font-awesome/fa-solid-900.ttf differ
diff --git a/data/interfaces/default/fonts/font-awesome/fa-solid-900.woff b/data/interfaces/default/fonts/font-awesome/fa-solid-900.woff
new file mode 100644
index 00000000..af476578
Binary files /dev/null and b/data/interfaces/default/fonts/font-awesome/fa-solid-900.woff differ
diff --git a/data/interfaces/default/fonts/font-awesome/fa-solid-900.woff2 b/data/interfaces/default/fonts/font-awesome/fa-solid-900.woff2
new file mode 100644
index 00000000..9ef566a9
Binary files /dev/null and b/data/interfaces/default/fonts/font-awesome/fa-solid-900.woff2 differ
diff --git a/data/interfaces/default/graphs.html b/data/interfaces/default/graphs.html
new file mode 100644
index 00000000..d0853bd7
--- /dev/null
+++ b/data/interfaces/default/graphs.html
@@ -0,0 +1,780 @@
+<%inherit file="base.html"/>
+
+<%def name="headIncludes()">
+
+
+%def>
+
+<%def name="body()">
+
+
+
+
+
+
+
+
+
Daily Play count Last 30 days
+
+ The total play count or duration of tv, movies, and music played per day. Click a graph point to open up a list of items played for that specific date.
+
+
+
+
+
+
+
Play count by day of week Last 30 days
+
+ The combined total of tv, movies, and music played per day of the week.
+
+
+
+
+ Loading chart...
+
+
+
+
+
+
+
Play count by hour of day Last 30 days
+
+ The combined total of tv, movies, and music played per hour of the day.
+
+
+
+
+ Loading chart...
+
+
+
+
+
+
+
+
+
Play count by top 10 platforms Last 30 days
+
+ The combined total of tv, movies, and music played by top 10 most active platforms.
+
+
+
+
+
Play count by top 10 users Last 30 days
+
+ The combined total of tv, movies, and music played by top 10 most active users.
+
+
+
+
+ Loading chart...
+
+
+
+
+
+
+
+
+
+
+
Daily Stream type breakdown Last 30 days
+
+ The total play count or duration of tv, movies, and music by the transcode decision. Click a graph point to open up a list of items played for that specific date.
+
+
+
+
+
+
+
Play count by source resolution Last 30 days
+
+ The combined total of tv and movies by their original resolution (pre-transcoding).
+
+
+
+
+
Play count by stream resolution Last 30 days
+
+ The combined total of tv and movies by their streamed resolution (post-transcoding).
+
+
+
+
+
+
+
Play count by platform and stream type Last 30 days
+
+ The combined total of tv, movies, and music by platform and stream type.
+
+
+
+
+
Play count by user and stream type Last 30 days
+
+ The combined total of tv, movies, and music by user and stream type.
+
+
+
+
+
+
+
+
+
Plays by month Last 12 months
+
+ The combined total of tv, movies, and music by month.
+
+
+
+
+
+
+
+
+%def>
+
+<%def name="modalIncludes()">
+
+
+
+
+%def>
+
+<%def name="javascriptIncludes()">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+%def>
\ No newline at end of file
diff --git a/data/interfaces/default/history.html b/data/interfaces/default/history.html
new file mode 100644
index 00000000..36f55c7e
--- /dev/null
+++ b/data/interfaces/default/history.html
@@ -0,0 +1,258 @@
+<%inherit file="base.html"/>
+
+<%def name="headIncludes()">
+
+
+
+%def>
+
+<%def name="body()">
+
+
+
+
+
+
+ Delete
+ Date
+ Server
+ User
+ IP Address
+ Platform
+ Player
+ Title
+ Started
+ Paused
+ Stopped
+ Duration
+
+
+
+
+
+
+
+
+%def>
+
+<%def name="modalIncludes()">
+
+
+
+
+
+
+
+
+
+
Are you REALLY sure you want to delete history item(s)?
+
This is permanent and cannot be undone!
+
+
+
+
+
+%def>
+
+<%def name="javascriptIncludes()">
+
+
+
+
+
+
+
+%def>
diff --git a/data/interfaces/default/history_table_modal.html b/data/interfaces/default/history_table_modal.html
new file mode 100644
index 00000000..ddd7dce5
--- /dev/null
+++ b/data/interfaces/default/history_table_modal.html
@@ -0,0 +1,90 @@
+% if data:
+
+
+
+
+
+
+
+ Delete
+ Date
+ User
+ IP Address
+ Platform
+ Player
+ Server
+ Title
+ Started
+ Paused
+ Stopped
+ Duration
+
+
+
+
+
+
+
+
+
+
+
+
+
+% else:
+
+% endif
diff --git a/data/interfaces/default/home_stats.html b/data/interfaces/default/home_stats.html
new file mode 100644
index 00000000..42f93500
--- /dev/null
+++ b/data/interfaces/default/home_stats.html
@@ -0,0 +1,248 @@
+<%doc>
+USAGE DOCUMENTATION :: PLEASE LEAVE THIS AT THE TOP OF THIS FILE
+
+For Mako templating syntax documentation please visit: http://docs.makotemplates.org/en/latest/
+
+Filename: home_stats.html
+Version: 0.1
+Variable names: data [array]
+
+data[array_index] :: Usable parameters
+
+data['stat_id'] Returns the name of the stat. Either 'top_tv', 'top_movies', 'popular_tv', 'popular_movies', 'top_user' or 'top_platform'
+data['stat_type'] Returns the type of the stat. Either 'total_plays' or 'total_duration'
+data['rows'] Returns an array containing stat data
+
+data[array_index]['rows'] :: Usable parameters
+
+row_id Return the db row id for a metadata item if one exists
+
+== Only if 'stat_id' is 'top_tv' or 'popular_tv' or 'top_movies' or 'popular_movies' or 'top_music' or 'popular_music' or 'last_watched' ==
+thumb Return the thumb for the media item.
+
+== Only if 'stat_id' is 'top_tv' or 'popular_tv' or 'top_music' or 'popular_music' ==
+grandparent_thumb Returns location of the item's thumbnail. Use with pms_image_proxy.
+rating_key Returns the unique identifier for the media item.
+title Returns the title for the associated stat.
+
+== Only if 'stat_id' is 'top_tv' or 'top_movies' or 'top_music' or 'top_user' or 'top_platform' ==
+total_plays Returns the count for the associated stat.
+total_duration Returns the total duration for the associated stat.
+
+== Only of 'stat_id' is 'popular_tv' or 'popular_movies' or 'popular_music' ==
+users_watched Returns the count for the associated stat.
+
+== Only if 'stat_id' is 'top_user' or 'last_watched' ==
+user_thumb Returns url of the user's gravatar. Returns '' if none exists.
+user Returns the username for the associated stat.
+user_id Returns the user id for the associated stat.
+friendly_name Returns the friendly name of the user for the associated stat.
+
+== Only if 'stat_id' is 'top_platform' or 'last_watched' ==
+player Returns the player name for the associated stat.
+
+== Only if 'stat_id' is 'last_watched' ==
+last_watch Returns the time the media item was last watched.
+
+== Only if 'stat_id' is 'most_concurrent' ==
+count Returns the count of the most concurrent streams.
+started Returns the start time of the most concurrent streams.
+stopped Returns the stop time of the most concurrent streams.
+
+DOCUMENTATION :: END
+%doc>
+
+<%!
+ from plexpy import helpers
+
+ # Human readable duration
+ def hd(seconds):
+ m, s = divmod(helpers.cast_to_int(seconds), 60)
+ h, m = divmod(m, 60)
+ return str(h).zfill(1) + ':' + str(m).zfill(2)
+%>
+
+% if data and any(top_stat['rows'] for top_stat in data):
+% for top_stat in data:
+% if top_stat['rows']:
+<%
+ stat_id = top_stat['stat_id']
+ row0 = top_stat['rows'][0]
+%>
+
+
+ % if stat_id in ('top_movies', 'popular_movies', 'top_tv', 'popular_tv', 'top_music', 'popular_music', 'last_watched'):
+ % if row0['art']:
+
+ % else:
+
+ % endif
+ % elif stat_id == 'top_platforms':
+
+
+% endif
+% endfor
+
+% else:
+
No stats to show for the selected period.
+% endif
\ No newline at end of file
diff --git a/data/interfaces/default/images/13AD46AC.png b/data/interfaces/default/images/13AD46AC.png
new file mode 100644
index 00000000..7ab91c05
Binary files /dev/null and b/data/interfaces/default/images/13AD46AC.png differ
diff --git a/data/interfaces/default/images/13AD46AD.png b/data/interfaces/default/images/13AD46AD.png
new file mode 100644
index 00000000..9d6cfd90
Binary files /dev/null and b/data/interfaces/default/images/13AD46AD.png differ
diff --git a/data/interfaces/default/images/93124B54.png b/data/interfaces/default/images/93124B54.png
new file mode 100644
index 00000000..c4abfd72
Binary files /dev/null and b/data/interfaces/default/images/93124B54.png differ
diff --git a/data/interfaces/default/images/93124B55.png b/data/interfaces/default/images/93124B55.png
new file mode 100644
index 00000000..5437946b
Binary files /dev/null and b/data/interfaces/default/images/93124B55.png differ
diff --git a/data/interfaces/default/images/art-live.png b/data/interfaces/default/images/art-live.png
new file mode 100644
index 00000000..25db2664
Binary files /dev/null and b/data/interfaces/default/images/art-live.png differ
diff --git a/data/interfaces/default/images/art.png b/data/interfaces/default/images/art.png
new file mode 100644
index 00000000..997b001f
Binary files /dev/null and b/data/interfaces/default/images/art.png differ
diff --git a/data/interfaces/default/images/background.png b/data/interfaces/default/images/background.png
new file mode 100644
index 00000000..e85c4fd2
Binary files /dev/null and b/data/interfaces/default/images/background.png differ
diff --git a/data/interfaces/default/images/become_a_patron_button.png b/data/interfaces/default/images/become_a_patron_button.png
new file mode 100644
index 00000000..291b7bcf
Binary files /dev/null and b/data/interfaces/default/images/become_a_patron_button.png differ
diff --git a/data/interfaces/default/images/chevron.png b/data/interfaces/default/images/chevron.png
new file mode 100644
index 00000000..b8618674
Binary files /dev/null and b/data/interfaces/default/images/chevron.png differ
diff --git a/data/interfaces/default/images/cover.png b/data/interfaces/default/images/cover.png
new file mode 100644
index 00000000..6b63617a
Binary files /dev/null and b/data/interfaces/default/images/cover.png differ
diff --git a/data/interfaces/default/images/discord-overlay.png b/data/interfaces/default/images/discord-overlay.png
new file mode 100644
index 00000000..0ee330a0
Binary files /dev/null and b/data/interfaces/default/images/discord-overlay.png differ
diff --git a/data/interfaces/default/images/en-play-badge.png b/data/interfaces/default/images/en-play-badge.png
new file mode 100644
index 00000000..0c317c05
Binary files /dev/null and b/data/interfaces/default/images/en-play-badge.png differ
diff --git a/data/interfaces/default/images/favicon/android-chrome-192x192.png b/data/interfaces/default/images/favicon/android-chrome-192x192.png
new file mode 100644
index 00000000..45673c54
Binary files /dev/null and b/data/interfaces/default/images/favicon/android-chrome-192x192.png differ
diff --git a/data/interfaces/default/images/favicon/android-chrome-256x256.png b/data/interfaces/default/images/favicon/android-chrome-256x256.png
new file mode 100644
index 00000000..ec934f6f
Binary files /dev/null and b/data/interfaces/default/images/favicon/android-chrome-256x256.png differ
diff --git a/data/interfaces/default/images/favicon/apple-touch-icon-precomposed.png b/data/interfaces/default/images/favicon/apple-touch-icon-precomposed.png
new file mode 100644
index 00000000..af1e5efb
Binary files /dev/null and b/data/interfaces/default/images/favicon/apple-touch-icon-precomposed.png differ
diff --git a/data/interfaces/default/images/favicon/apple-touch-icon.png b/data/interfaces/default/images/favicon/apple-touch-icon.png
new file mode 100644
index 00000000..d9ffd395
Binary files /dev/null and b/data/interfaces/default/images/favicon/apple-touch-icon.png differ
diff --git a/data/interfaces/default/images/favicon/browserconfig.xml b/data/interfaces/default/images/favicon/browserconfig.xml
new file mode 100644
index 00000000..58f4aee7
--- /dev/null
+++ b/data/interfaces/default/images/favicon/browserconfig.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+ #282a2d
+
+
+
diff --git a/data/interfaces/default/images/favicon/favicon-16x16.png b/data/interfaces/default/images/favicon/favicon-16x16.png
new file mode 100644
index 00000000..7469a6ff
Binary files /dev/null and b/data/interfaces/default/images/favicon/favicon-16x16.png differ
diff --git a/data/interfaces/default/images/favicon/favicon-32x32.png b/data/interfaces/default/images/favicon/favicon-32x32.png
new file mode 100644
index 00000000..1e10f158
Binary files /dev/null and b/data/interfaces/default/images/favicon/favicon-32x32.png differ
diff --git a/data/interfaces/default/images/favicon/favicon.ico b/data/interfaces/default/images/favicon/favicon.ico
new file mode 100644
index 00000000..4484b9c0
Binary files /dev/null and b/data/interfaces/default/images/favicon/favicon.ico differ
diff --git a/data/interfaces/default/images/favicon/manifest.json b/data/interfaces/default/images/favicon/manifest.json
new file mode 100644
index 00000000..98ba817a
--- /dev/null
+++ b/data/interfaces/default/images/favicon/manifest.json
@@ -0,0 +1,18 @@
+{
+ "name": "Tautulli",
+ "icons": [
+ {
+ "src": "${http_root}images/favicon/android-chrome-192x192.png?v=2.0.5",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "${http_root}images/favicon/android-chrome-256x256.png?v=2.0.5",
+ "sizes": "256x256",
+ "type": "image/png"
+ }
+ ],
+ "theme_color": "#282a2d",
+ "background_color": "#282a2d",
+ "display": "standalone"
+}
\ No newline at end of file
diff --git a/data/interfaces/default/images/favicon/mstile-150x150.png b/data/interfaces/default/images/favicon/mstile-150x150.png
new file mode 100644
index 00000000..6ad35a91
Binary files /dev/null and b/data/interfaces/default/images/favicon/mstile-150x150.png differ
diff --git a/data/interfaces/default/images/favicon/safari-pinned-tab.svg b/data/interfaces/default/images/favicon/safari-pinned-tab.svg
new file mode 100644
index 00000000..dbc29de2
--- /dev/null
+++ b/data/interfaces/default/images/favicon/safari-pinned-tab.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/data/interfaces/default/images/gold-rect-paypal-34px.png b/data/interfaces/default/images/gold-rect-paypal-34px.png
new file mode 100644
index 00000000..a6ab3cce
Binary files /dev/null and b/data/interfaces/default/images/gold-rect-paypal-34px.png differ
diff --git a/data/interfaces/default/images/gravatar-default-80x80.png b/data/interfaces/default/images/gravatar-default-80x80.png
new file mode 100644
index 00000000..9440f72b
Binary files /dev/null and b/data/interfaces/default/images/gravatar-default-80x80.png differ
diff --git a/data/interfaces/default/images/gravatar-default.png b/data/interfaces/default/images/gravatar-default.png
new file mode 100644
index 00000000..d72cb55c
Binary files /dev/null and b/data/interfaces/default/images/gravatar-default.png differ
diff --git a/data/interfaces/default/images/libraries/artist.png b/data/interfaces/default/images/libraries/artist.png
new file mode 100644
index 00000000..10a67be0
Binary files /dev/null and b/data/interfaces/default/images/libraries/artist.png differ
diff --git a/data/interfaces/default/images/libraries/artist.svg b/data/interfaces/default/images/libraries/artist.svg
new file mode 100644
index 00000000..b3bfa5b5
--- /dev/null
+++ b/data/interfaces/default/images/libraries/artist.svg
@@ -0,0 +1,5 @@
+
+
+artist
+
+
diff --git a/data/interfaces/default/images/libraries/movie.png b/data/interfaces/default/images/libraries/movie.png
new file mode 100644
index 00000000..6510383d
Binary files /dev/null and b/data/interfaces/default/images/libraries/movie.png differ
diff --git a/data/interfaces/default/images/libraries/movie.svg b/data/interfaces/default/images/libraries/movie.svg
new file mode 100644
index 00000000..6e1f1cf5
--- /dev/null
+++ b/data/interfaces/default/images/libraries/movie.svg
@@ -0,0 +1,5 @@
+
+
+movie
+
+
diff --git a/data/interfaces/default/images/libraries/photo.png b/data/interfaces/default/images/libraries/photo.png
new file mode 100644
index 00000000..b9e48a85
Binary files /dev/null and b/data/interfaces/default/images/libraries/photo.png differ
diff --git a/data/interfaces/default/images/libraries/photo.svg b/data/interfaces/default/images/libraries/photo.svg
new file mode 100644
index 00000000..2ceadc5d
--- /dev/null
+++ b/data/interfaces/default/images/libraries/photo.svg
@@ -0,0 +1,6 @@
+
+
+photo
+
+
+
diff --git a/data/interfaces/default/images/libraries/playlist.png b/data/interfaces/default/images/libraries/playlist.png
new file mode 100644
index 00000000..c52df8a1
Binary files /dev/null and b/data/interfaces/default/images/libraries/playlist.png differ
diff --git a/data/interfaces/default/images/libraries/playlist.svg b/data/interfaces/default/images/libraries/playlist.svg
new file mode 100644
index 00000000..661793dd
--- /dev/null
+++ b/data/interfaces/default/images/libraries/playlist.svg
@@ -0,0 +1,12 @@
+
+
+playlist
+
+
+
+
+
+
+
+
+
diff --git a/data/interfaces/default/images/libraries/show.png b/data/interfaces/default/images/libraries/show.png
new file mode 100644
index 00000000..6b54f49b
Binary files /dev/null and b/data/interfaces/default/images/libraries/show.png differ
diff --git a/data/interfaces/default/images/libraries/show.svg b/data/interfaces/default/images/libraries/show.svg
new file mode 100644
index 00000000..f4b6a4a0
--- /dev/null
+++ b/data/interfaces/default/images/libraries/show.svg
@@ -0,0 +1,6 @@
+
+
+show
+
+
+
diff --git a/data/interfaces/default/images/libraries/video.png b/data/interfaces/default/images/libraries/video.png
new file mode 100644
index 00000000..d73aa7f9
Binary files /dev/null and b/data/interfaces/default/images/libraries/video.png differ
diff --git a/data/interfaces/default/images/libraries/video.svg b/data/interfaces/default/images/libraries/video.svg
new file mode 100644
index 00000000..4cee59b9
--- /dev/null
+++ b/data/interfaces/default/images/libraries/video.svg
@@ -0,0 +1,5 @@
+
+
+video
+
+
diff --git a/data/interfaces/default/images/logo-circle.png b/data/interfaces/default/images/logo-circle.png
new file mode 100644
index 00000000..3cf72642
Binary files /dev/null and b/data/interfaces/default/images/logo-circle.png differ
diff --git a/data/interfaces/default/images/logo-tautulli-100.png b/data/interfaces/default/images/logo-tautulli-100.png
new file mode 100644
index 00000000..52bef662
Binary files /dev/null and b/data/interfaces/default/images/logo-tautulli-100.png differ
diff --git a/data/interfaces/default/images/logo-tautulli-45.png b/data/interfaces/default/images/logo-tautulli-45.png
new file mode 100644
index 00000000..89330311
Binary files /dev/null and b/data/interfaces/default/images/logo-tautulli-45.png differ
diff --git a/data/interfaces/default/images/logo-tautulli-newsletter.png b/data/interfaces/default/images/logo-tautulli-newsletter.png
new file mode 100644
index 00000000..e1ec4923
Binary files /dev/null and b/data/interfaces/default/images/logo-tautulli-newsletter.png differ
diff --git a/data/interfaces/default/images/logo-tautulli.png b/data/interfaces/default/images/logo-tautulli.png
new file mode 100644
index 00000000..2c02ff68
Binary files /dev/null and b/data/interfaces/default/images/logo-tautulli.png differ
diff --git a/data/interfaces/default/images/logo-tautulli.svg b/data/interfaces/default/images/logo-tautulli.svg
new file mode 100644
index 00000000..3b66cd69
--- /dev/null
+++ b/data/interfaces/default/images/logo-tautulli.svg
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/interfaces/default/images/logo.png b/data/interfaces/default/images/logo.png
new file mode 100644
index 00000000..1737c3d3
Binary files /dev/null and b/data/interfaces/default/images/logo.png differ
diff --git a/data/interfaces/default/images/logo.svg b/data/interfaces/default/images/logo.svg
new file mode 100644
index 00000000..686a614e
--- /dev/null
+++ b/data/interfaces/default/images/logo.svg
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/interfaces/default/images/logo_tray-update.ico b/data/interfaces/default/images/logo_tray-update.ico
new file mode 100644
index 00000000..05f4a98c
Binary files /dev/null and b/data/interfaces/default/images/logo_tray-update.ico differ
diff --git a/data/interfaces/default/images/logo_tray.ico b/data/interfaces/default/images/logo_tray.ico
new file mode 100644
index 00000000..71ed8d90
Binary files /dev/null and b/data/interfaces/default/images/logo_tray.ico differ
diff --git a/data/interfaces/default/images/media_flags/aspect_ratio/1.33.png b/data/interfaces/default/images/media_flags/aspect_ratio/1.33.png
new file mode 100644
index 00000000..3c58c524
Binary files /dev/null and b/data/interfaces/default/images/media_flags/aspect_ratio/1.33.png differ
diff --git a/data/interfaces/default/images/media_flags/aspect_ratio/1.66.png b/data/interfaces/default/images/media_flags/aspect_ratio/1.66.png
new file mode 100644
index 00000000..dd6bae2e
Binary files /dev/null and b/data/interfaces/default/images/media_flags/aspect_ratio/1.66.png differ
diff --git a/data/interfaces/default/images/media_flags/aspect_ratio/1.78.png b/data/interfaces/default/images/media_flags/aspect_ratio/1.78.png
new file mode 100644
index 00000000..34d3184e
Binary files /dev/null and b/data/interfaces/default/images/media_flags/aspect_ratio/1.78.png differ
diff --git a/data/interfaces/default/images/media_flags/aspect_ratio/1.85.png b/data/interfaces/default/images/media_flags/aspect_ratio/1.85.png
new file mode 100644
index 00000000..3da66e01
Binary files /dev/null and b/data/interfaces/default/images/media_flags/aspect_ratio/1.85.png differ
diff --git a/data/interfaces/default/images/media_flags/aspect_ratio/2.20.png b/data/interfaces/default/images/media_flags/aspect_ratio/2.20.png
new file mode 100644
index 00000000..46b5c59a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/aspect_ratio/2.20.png differ
diff --git a/data/interfaces/default/images/media_flags/aspect_ratio/2.25.png b/data/interfaces/default/images/media_flags/aspect_ratio/2.25.png
new file mode 100644
index 00000000..7570fbae
Binary files /dev/null and b/data/interfaces/default/images/media_flags/aspect_ratio/2.25.png differ
diff --git a/data/interfaces/default/images/media_flags/aspect_ratio/2.35.png b/data/interfaces/default/images/media_flags/aspect_ratio/2.35.png
new file mode 100644
index 00000000..46b6d308
Binary files /dev/null and b/data/interfaces/default/images/media_flags/aspect_ratio/2.35.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_channels/1.png b/data/interfaces/default/images/media_flags/audio_channels/1.png
new file mode 100644
index 00000000..6a3c2b61
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_channels/1.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_channels/2.png b/data/interfaces/default/images/media_flags/audio_channels/2.png
new file mode 100644
index 00000000..85847256
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_channels/2.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_channels/5.png b/data/interfaces/default/images/media_flags/audio_channels/5.png
new file mode 100644
index 00000000..c5bcdf32
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_channels/5.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_channels/6.png b/data/interfaces/default/images/media_flags/audio_channels/6.png
new file mode 100644
index 00000000..c5bcdf32
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_channels/6.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_channels/7.png b/data/interfaces/default/images/media_flags/audio_channels/7.png
new file mode 100644
index 00000000..a4979ed1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_channels/7.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_channels/8.png b/data/interfaces/default/images/media_flags/audio_channels/8.png
new file mode 100644
index 00000000..3e197738
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_channels/8.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/aac.png b/data/interfaces/default/images/media_flags/audio_codec/aac.png
new file mode 100644
index 00000000..b89e8d51
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/aac.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/aif.png b/data/interfaces/default/images/media_flags/audio_codec/aif.png
new file mode 100644
index 00000000..c645e88a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/aif.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/aifc.png b/data/interfaces/default/images/media_flags/audio_codec/aifc.png
new file mode 100644
index 00000000..5bcf43f3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/aifc.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/aiff.png b/data/interfaces/default/images/media_flags/audio_codec/aiff.png
new file mode 100644
index 00000000..a22e5d03
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/aiff.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/alac.png b/data/interfaces/default/images/media_flags/audio_codec/alac.png
new file mode 100644
index 00000000..a3bffb3b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/alac.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/ape.png b/data/interfaces/default/images/media_flags/audio_codec/ape.png
new file mode 100644
index 00000000..ab71bae7
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/ape.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/cdda.png b/data/interfaces/default/images/media_flags/audio_codec/cdda.png
new file mode 100644
index 00000000..0cf9861b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/cdda.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/dca-ma.png b/data/interfaces/default/images/media_flags/audio_codec/dca-ma.png
new file mode 100644
index 00000000..7c12ccc7
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/dca-ma.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/dolby_digital.png b/data/interfaces/default/images/media_flags/audio_codec/dolby_digital.png
new file mode 100644
index 00000000..d487d320
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/dolby_digital.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/dolby_truehd.png b/data/interfaces/default/images/media_flags/audio_codec/dolby_truehd.png
new file mode 100644
index 00000000..0940c536
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/dolby_truehd.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/dts.png b/data/interfaces/default/images/media_flags/audio_codec/dts.png
new file mode 100644
index 00000000..7c12ccc7
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/dts.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/eac3.png b/data/interfaces/default/images/media_flags/audio_codec/eac3.png
new file mode 100644
index 00000000..bf8d76e2
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/eac3.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/flac.png b/data/interfaces/default/images/media_flags/audio_codec/flac.png
new file mode 100644
index 00000000..ade59622
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/flac.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/m4a.png b/data/interfaces/default/images/media_flags/audio_codec/m4a.png
new file mode 100644
index 00000000..dddb71d2
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/m4a.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/mlp.png b/data/interfaces/default/images/media_flags/audio_codec/mlp.png
new file mode 100644
index 00000000..bb2e3b0f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/mlp.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/mp2.png b/data/interfaces/default/images/media_flags/audio_codec/mp2.png
new file mode 100644
index 00000000..39e325f4
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/mp2.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/mp3.png b/data/interfaces/default/images/media_flags/audio_codec/mp3.png
new file mode 100644
index 00000000..46b6e46b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/mp3.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/mpc.png b/data/interfaces/default/images/media_flags/audio_codec/mpc.png
new file mode 100644
index 00000000..a4211fd6
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/mpc.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/ogg.png b/data/interfaces/default/images/media_flags/audio_codec/ogg.png
new file mode 100644
index 00000000..8475ccb6
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/ogg.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/pcm.png b/data/interfaces/default/images/media_flags/audio_codec/pcm.png
new file mode 100644
index 00000000..14585ae3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/pcm.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/ra.png b/data/interfaces/default/images/media_flags/audio_codec/ra.png
new file mode 100644
index 00000000..726f6671
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/ra.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/shn.png b/data/interfaces/default/images/media_flags/audio_codec/shn.png
new file mode 100644
index 00000000..18da111f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/shn.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/wav.png b/data/interfaces/default/images/media_flags/audio_codec/wav.png
new file mode 100644
index 00000000..c886078b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/wav.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/wave.png b/data/interfaces/default/images/media_flags/audio_codec/wave.png
new file mode 100644
index 00000000..c886078b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/wave.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/wma.png b/data/interfaces/default/images/media_flags/audio_codec/wma.png
new file mode 100644
index 00000000..c765c4e6
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/wma.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/wmahd.png b/data/interfaces/default/images/media_flags/audio_codec/wmahd.png
new file mode 100644
index 00000000..02202cec
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/wmahd.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/wmapro.png b/data/interfaces/default/images/media_flags/audio_codec/wmapro.png
new file mode 100644
index 00000000..bd388596
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/wmapro.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/wmav2.png b/data/interfaces/default/images/media_flags/audio_codec/wmav2.png
new file mode 100644
index 00000000..d2e58d04
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/wmav2.png differ
diff --git a/data/interfaces/default/images/media_flags/audio_codec/wv.png b/data/interfaces/default/images/media_flags/audio_codec/wv.png
new file mode 100644
index 00000000..5012b151
Binary files /dev/null and b/data/interfaces/default/images/media_flags/audio_codec/wv.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/G.png b/data/interfaces/default/images/media_flags/content_rating/G.png
new file mode 100644
index 00000000..c9c72fc1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/G.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/NC-17.png b/data/interfaces/default/images/media_flags/content_rating/NC-17.png
new file mode 100644
index 00000000..257f2cb0
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/NC-17.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/NR.png b/data/interfaces/default/images/media_flags/content_rating/NR.png
new file mode 100644
index 00000000..aca772c4
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/NR.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/Not Rated.png b/data/interfaces/default/images/media_flags/content_rating/Not Rated.png
new file mode 100644
index 00000000..7c30b17d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/Not Rated.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/PG-13.png b/data/interfaces/default/images/media_flags/content_rating/PG-13.png
new file mode 100644
index 00000000..68628b20
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/PG-13.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/PG.png b/data/interfaces/default/images/media_flags/content_rating/PG.png
new file mode 100644
index 00000000..4bff6fff
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/PG.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/R.png b/data/interfaces/default/images/media_flags/content_rating/R.png
new file mode 100644
index 00000000..34967386
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/R.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/TV-14.png b/data/interfaces/default/images/media_flags/content_rating/TV-14.png
new file mode 100644
index 00000000..88df274d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/TV-14.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/TV-G.png b/data/interfaces/default/images/media_flags/content_rating/TV-G.png
new file mode 100644
index 00000000..f2f60a13
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/TV-G.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/TV-MA.png b/data/interfaces/default/images/media_flags/content_rating/TV-MA.png
new file mode 100644
index 00000000..09ca4703
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/TV-MA.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/TV-PG.png b/data/interfaces/default/images/media_flags/content_rating/TV-PG.png
new file mode 100644
index 00000000..80526601
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/TV-PG.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/TV-Y.png b/data/interfaces/default/images/media_flags/content_rating/TV-Y.png
new file mode 100644
index 00000000..a7a30735
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/TV-Y.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/TV-Y7-FV.png b/data/interfaces/default/images/media_flags/content_rating/TV-Y7-FV.png
new file mode 100644
index 00000000..c0004926
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/TV-Y7-FV.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/TV-Y7.png b/data/interfaces/default/images/media_flags/content_rating/TV-Y7.png
new file mode 100644
index 00000000..ec938312
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/TV-Y7.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/Unrated.png b/data/interfaces/default/images/media_flags/content_rating/Unrated.png
new file mode 100644
index 00000000..cb955c8d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/Unrated.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/X.png b/data/interfaces/default/images/media_flags/content_rating/X.png
new file mode 100644
index 00000000..74498d53
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/X.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/au/E.png b/data/interfaces/default/images/media_flags/content_rating/au/E.png
new file mode 100644
index 00000000..b647585a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/au/E.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/au/G.png b/data/interfaces/default/images/media_flags/content_rating/au/G.png
new file mode 100644
index 00000000..a76762e4
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/au/G.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/au/M.png b/data/interfaces/default/images/media_flags/content_rating/au/M.png
new file mode 100644
index 00000000..8b57b970
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/au/M.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/au/MA15+.png b/data/interfaces/default/images/media_flags/content_rating/au/MA15+.png
new file mode 100644
index 00000000..1fa71d0a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/au/MA15+.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/au/MA15.png b/data/interfaces/default/images/media_flags/content_rating/au/MA15.png
new file mode 100644
index 00000000..1fa71d0a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/au/MA15.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/au/PG.png b/data/interfaces/default/images/media_flags/content_rating/au/PG.png
new file mode 100644
index 00000000..995575d1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/au/PG.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/au/R18+.png b/data/interfaces/default/images/media_flags/content_rating/au/R18+.png
new file mode 100644
index 00000000..377f96c0
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/au/R18+.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/au/R18.png b/data/interfaces/default/images/media_flags/content_rating/au/R18.png
new file mode 100644
index 00000000..377f96c0
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/au/R18.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/au/X18+.png b/data/interfaces/default/images/media_flags/content_rating/au/X18+.png
new file mode 100644
index 00000000..7129847d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/au/X18+.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/au/X18.png b/data/interfaces/default/images/media_flags/content_rating/au/X18.png
new file mode 100644
index 00000000..7129847d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/au/X18.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/ca/14A.png b/data/interfaces/default/images/media_flags/content_rating/ca/14A.png
new file mode 100644
index 00000000..443d9380
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/ca/14A.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/ca/18A.png b/data/interfaces/default/images/media_flags/content_rating/ca/18A.png
new file mode 100644
index 00000000..9cf9d7d1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/ca/18A.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/ca/E.png b/data/interfaces/default/images/media_flags/content_rating/ca/E.png
new file mode 100644
index 00000000..99bb8a64
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/ca/E.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/ca/G.png b/data/interfaces/default/images/media_flags/content_rating/ca/G.png
new file mode 100644
index 00000000..c399d267
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/ca/G.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/ca/PG.png b/data/interfaces/default/images/media_flags/content_rating/ca/PG.png
new file mode 100644
index 00000000..248e0fc6
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/ca/PG.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/ca/R.png b/data/interfaces/default/images/media_flags/content_rating/ca/R.png
new file mode 100644
index 00000000..e8aa9e72
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/ca/R.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/de/0.png b/data/interfaces/default/images/media_flags/content_rating/de/0.png
new file mode 100644
index 00000000..9021a82c
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/de/0.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/de/12.png b/data/interfaces/default/images/media_flags/content_rating/de/12.png
new file mode 100644
index 00000000..edfc6a06
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/de/12.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/de/16.png b/data/interfaces/default/images/media_flags/content_rating/de/16.png
new file mode 100644
index 00000000..f087a18b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/de/16.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/de/18.png b/data/interfaces/default/images/media_flags/content_rating/de/18.png
new file mode 100644
index 00000000..5f70d505
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/de/18.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/de/6.png b/data/interfaces/default/images/media_flags/content_rating/de/6.png
new file mode 100644
index 00000000..dc25d063
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/de/6.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/fr/-10.png b/data/interfaces/default/images/media_flags/content_rating/fr/-10.png
new file mode 100644
index 00000000..287dc0db
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/fr/-10.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/fr/-12.png b/data/interfaces/default/images/media_flags/content_rating/fr/-12.png
new file mode 100644
index 00000000..522a8e46
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/fr/-12.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/fr/-16.png b/data/interfaces/default/images/media_flags/content_rating/fr/-16.png
new file mode 100644
index 00000000..53a26ce9
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/fr/-16.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/fr/-18.png b/data/interfaces/default/images/media_flags/content_rating/fr/-18.png
new file mode 100644
index 00000000..45699b77
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/fr/-18.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/fr/Tout Public.png b/data/interfaces/default/images/media_flags/content_rating/fr/Tout Public.png
new file mode 100644
index 00000000..2ed85e78
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/fr/Tout Public.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/fr/U.png b/data/interfaces/default/images/media_flags/content_rating/fr/U.png
new file mode 100644
index 00000000..2ed85e78
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/fr/U.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/gb/12.png b/data/interfaces/default/images/media_flags/content_rating/gb/12.png
new file mode 100644
index 00000000..3d66906e
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/gb/12.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/gb/12A.png b/data/interfaces/default/images/media_flags/content_rating/gb/12A.png
new file mode 100644
index 00000000..1cad76f6
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/gb/12A.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/gb/15.png b/data/interfaces/default/images/media_flags/content_rating/gb/15.png
new file mode 100644
index 00000000..82d62416
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/gb/15.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/gb/18.png b/data/interfaces/default/images/media_flags/content_rating/gb/18.png
new file mode 100644
index 00000000..1e695f0f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/gb/18.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/gb/PG.png b/data/interfaces/default/images/media_flags/content_rating/gb/PG.png
new file mode 100644
index 00000000..d1ab5104
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/gb/PG.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/gb/R18.png b/data/interfaces/default/images/media_flags/content_rating/gb/R18.png
new file mode 100644
index 00000000..32104192
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/gb/R18.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/gb/U.png b/data/interfaces/default/images/media_flags/content_rating/gb/U.png
new file mode 100644
index 00000000..57304b2f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/gb/U.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/nl/12.png b/data/interfaces/default/images/media_flags/content_rating/nl/12.png
new file mode 100644
index 00000000..f2471569
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/nl/12.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/nl/16.png b/data/interfaces/default/images/media_flags/content_rating/nl/16.png
new file mode 100644
index 00000000..78d6e76c
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/nl/16.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/nl/6.png b/data/interfaces/default/images/media_flags/content_rating/nl/6.png
new file mode 100644
index 00000000..0ad9ff12
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/nl/6.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/nl/9.png b/data/interfaces/default/images/media_flags/content_rating/nl/9.png
new file mode 100644
index 00000000..9b2e0b56
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/nl/9.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/nl/AL.png b/data/interfaces/default/images/media_flags/content_rating/nl/AL.png
new file mode 100644
index 00000000..d6febf07
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/nl/AL.png differ
diff --git a/data/interfaces/default/images/media_flags/content_rating/nl/Alle Leeftijden.png b/data/interfaces/default/images/media_flags/content_rating/nl/Alle Leeftijden.png
new file mode 100644
index 00000000..d6febf07
Binary files /dev/null and b/data/interfaces/default/images/media_flags/content_rating/nl/Alle Leeftijden.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/1492_pictures.png b/data/interfaces/default/images/media_flags/studio/1492_pictures.png
new file mode 100644
index 00000000..258c7fdc
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/1492_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/20th_century_fox.png b/data/interfaces/default/images/media_flags/studio/20th_century_fox.png
new file mode 100644
index 00000000..78ca60c5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/20th_century_fox.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/20th_century_fox_animation.png b/data/interfaces/default/images/media_flags/studio/20th_century_fox_animation.png
new file mode 100644
index 00000000..28ee0aee
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/20th_century_fox_animation.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/2929.png b/data/interfaces/default/images/media_flags/studio/2929.png
new file mode 100644
index 00000000..9e360891
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/2929.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/360_pictures.png b/data/interfaces/default/images/media_flags/studio/360_pictures.png
new file mode 100644
index 00000000..7e8fb519
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/360_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/40_acres.png b/data/interfaces/default/images/media_flags/studio/40_acres.png
new file mode 100644
index 00000000..48f0a389
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/40_acres.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/57_irving.png b/data/interfaces/default/images/media_flags/studio/57_irving.png
new file mode 100644
index 00000000..5253520e
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/57_irving.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/777_film_corp.png b/data/interfaces/default/images/media_flags/studio/777_film_corp.png
new file mode 100644
index 00000000..986e93e2
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/777_film_corp.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/a24.png b/data/interfaces/default/images/media_flags/studio/a24.png
new file mode 100644
index 00000000..18fd529e
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/a24.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/a_1_pictures.png b/data/interfaces/default/images/media_flags/studio/a_1_pictures.png
new file mode 100644
index 00000000..0fe5ea76
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/a_1_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/a_and_e.png b/data/interfaces/default/images/media_flags/studio/a_and_e.png
new file mode 100644
index 00000000..9ee1038a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/a_and_e.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/aardman.png b/data/interfaces/default/images/media_flags/studio/aardman.png
new file mode 100644
index 00000000..7bbbb40b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/aardman.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/abandon.png b/data/interfaces/default/images/media_flags/studio/abandon.png
new file mode 100644
index 00000000..86f7f477
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/abandon.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/abc.png b/data/interfaces/default/images/media_flags/studio/abc.png
new file mode 100644
index 00000000..0b3f3539
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/abc.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/abc_australia.png b/data/interfaces/default/images/media_flags/studio/abc_australia.png
new file mode 100644
index 00000000..a546a4d5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/abc_australia.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/abc_family.png b/data/interfaces/default/images/media_flags/studio/abc_family.png
new file mode 100644
index 00000000..f81f52bf
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/abc_family.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/actf.png b/data/interfaces/default/images/media_flags/studio/actf.png
new file mode 100644
index 00000000..7b16fdae
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/actf.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/adult_swim.png b/data/interfaces/default/images/media_flags/studio/adult_swim.png
new file mode 100644
index 00000000..f743916a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/adult_swim.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/afi.png b/data/interfaces/default/images/media_flags/studio/afi.png
new file mode 100644
index 00000000..43f6eac3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/afi.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/after_dark.png b/data/interfaces/default/images/media_flags/studio/after_dark.png
new file mode 100644
index 00000000..e92ea940
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/after_dark.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/aic.png b/data/interfaces/default/images/media_flags/studio/aic.png
new file mode 100644
index 00000000..bef38d93
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/aic.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/alcon_entertainment.png b/data/interfaces/default/images/media_flags/studio/alcon_entertainment.png
new file mode 100644
index 00000000..30eda4c5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/alcon_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/alfred_hitchcock_productions.png b/data/interfaces/default/images/media_flags/studio/alfred_hitchcock_productions.png
new file mode 100644
index 00000000..f7da8d9d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/alfred_hitchcock_productions.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/alliance.png b/data/interfaces/default/images/media_flags/studio/alliance.png
new file mode 100644
index 00000000..553fdaa7
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/alliance.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/alloy.png b/data/interfaces/default/images/media_flags/studio/alloy.png
new file mode 100644
index 00000000..75f5c431
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/alloy.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/alphaville.png b/data/interfaces/default/images/media_flags/studio/alphaville.png
new file mode 100644
index 00000000..2dcaafa3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/alphaville.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/amazon_studios.png b/data/interfaces/default/images/media_flags/studio/amazon_studios.png
new file mode 100644
index 00000000..3ac9732c
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/amazon_studios.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/ambience.png b/data/interfaces/default/images/media_flags/studio/ambience.png
new file mode 100644
index 00000000..660081b5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/ambience.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/amblin_entertainment.png b/data/interfaces/default/images/media_flags/studio/amblin_entertainment.png
new file mode 100644
index 00000000..f402fa8b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/amblin_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/amc.png b/data/interfaces/default/images/media_flags/studio/amc.png
new file mode 100644
index 00000000..e72be7e3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/amc.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/american_masters.png b/data/interfaces/default/images/media_flags/studio/american_masters.png
new file mode 100644
index 00000000..41164567
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/american_masters.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/american_zoetrope.png b/data/interfaces/default/images/media_flags/studio/american_zoetrope.png
new file mode 100644
index 00000000..f35ea05b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/american_zoetrope.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/anchor_bay_entertainment.png b/data/interfaces/default/images/media_flags/studio/anchor_bay_entertainment.png
new file mode 100644
index 00000000..d8760a6e
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/anchor_bay_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/animal_planet.png b/data/interfaces/default/images/media_flags/studio/animal_planet.png
new file mode 100644
index 00000000..7fa36598
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/animal_planet.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/animax.png b/data/interfaces/default/images/media_flags/studio/animax.png
new file mode 100644
index 00000000..84d20cb0
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/animax.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/anonymous_content.png b/data/interfaces/default/images/media_flags/studio/anonymous_content.png
new file mode 100644
index 00000000..91df7339
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/anonymous_content.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/antena_3.png b/data/interfaces/default/images/media_flags/studio/antena_3.png
new file mode 100644
index 00000000..1bb711f3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/antena_3.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/apatow_productions.png b/data/interfaces/default/images/media_flags/studio/apatow_productions.png
new file mode 100644
index 00000000..477f9df3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/apatow_productions.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/apple.png b/data/interfaces/default/images/media_flags/studio/apple.png
new file mode 100644
index 00000000..b6d3615b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/apple.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/ard.png b/data/interfaces/default/images/media_flags/studio/ard.png
new file mode 100644
index 00000000..6ed48bf2
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/ard.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/ark.png b/data/interfaces/default/images/media_flags/studio/ark.png
new file mode 100644
index 00000000..e555f619
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/ark.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/arte.png b/data/interfaces/default/images/media_flags/studio/arte.png
new file mode 100644
index 00000000..6b231f43
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/arte.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/artisan_entertainment.png b/data/interfaces/default/images/media_flags/studio/artisan_entertainment.png
new file mode 100644
index 00000000..6a958d27
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/artisan_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/aspen_film_society.png b/data/interfaces/default/images/media_flags/studio/aspen_film_society.png
new file mode 100644
index 00000000..59fa60d2
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/aspen_film_society.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/atom_films.png b/data/interfaces/default/images/media_flags/studio/atom_films.png
new file mode 100644
index 00000000..51d066d3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/atom_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/audience_network.png b/data/interfaces/default/images/media_flags/studio/audience_network.png
new file mode 100644
index 00000000..e9e9358d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/audience_network.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/australian_film_commission.png b/data/interfaces/default/images/media_flags/studio/australian_film_commission.png
new file mode 100644
index 00000000..729e8739
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/australian_film_commission.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/avalanche_studios.png b/data/interfaces/default/images/media_flags/studio/avalanche_studios.png
new file mode 100644
index 00000000..9e821f14
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/avalanche_studios.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/avnet_kerner.png b/data/interfaces/default/images/media_flags/studio/avnet_kerner.png
new file mode 100644
index 00000000..e8a61b41
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/avnet_kerner.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/babylonian.png b/data/interfaces/default/images/media_flags/studio/babylonian.png
new file mode 100644
index 00000000..0e5239ee
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/babylonian.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/bad_boy_entertainment.png b/data/interfaces/default/images/media_flags/studio/bad_boy_entertainment.png
new file mode 100644
index 00000000..26943da4
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/bad_boy_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/bad_robot.png b/data/interfaces/default/images/media_flags/studio/bad_robot.png
new file mode 100644
index 00000000..9359b493
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/bad_robot.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/baltimore_pictures.png b/data/interfaces/default/images/media_flags/studio/baltimore_pictures.png
new file mode 100644
index 00000000..868de6f8
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/baltimore_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/bandai.png b/data/interfaces/default/images/media_flags/studio/bandai.png
new file mode 100644
index 00000000..32801a36
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/bandai.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/bandai_visual.png b/data/interfaces/default/images/media_flags/studio/bandai_visual.png
new file mode 100644
index 00000000..4b468901
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/bandai_visual.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/bandapart.png b/data/interfaces/default/images/media_flags/studio/bandapart.png
new file mode 100644
index 00000000..b43f806d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/bandapart.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/batjac.png b/data/interfaces/default/images/media_flags/studio/batjac.png
new file mode 100644
index 00000000..9a2dab41
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/batjac.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/bazmark.png b/data/interfaces/default/images/media_flags/studio/bazmark.png
new file mode 100644
index 00000000..630fd647
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/bazmark.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/bbc.png b/data/interfaces/default/images/media_flags/studio/bbc.png
new file mode 100644
index 00000000..bf5748fa
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/bbc.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/bbc_america.png b/data/interfaces/default/images/media_flags/studio/bbc_america.png
new file mode 100644
index 00000000..117dd04e
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/bbc_america.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/bbc_films.png b/data/interfaces/default/images/media_flags/studio/bbc_films.png
new file mode 100644
index 00000000..756ae822
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/bbc_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/bbc_four.png b/data/interfaces/default/images/media_flags/studio/bbc_four.png
new file mode 100644
index 00000000..ff7ef72c
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/bbc_four.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/bbc_one.png b/data/interfaces/default/images/media_flags/studio/bbc_one.png
new file mode 100644
index 00000000..7aaa597e
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/bbc_one.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/bbc_prime.png b/data/interfaces/default/images/media_flags/studio/bbc_prime.png
new file mode 100644
index 00000000..502ee002
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/bbc_prime.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/bbc_three.png b/data/interfaces/default/images/media_flags/studio/bbc_three.png
new file mode 100644
index 00000000..21b6d29e
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/bbc_three.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/bbc_two.png b/data/interfaces/default/images/media_flags/studio/bbc_two.png
new file mode 100644
index 00000000..ab80fa85
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/bbc_two.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/beacon.png b/data/interfaces/default/images/media_flags/studio/beacon.png
new file mode 100644
index 00000000..e72f48e7
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/beacon.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/becker_entertainment.png b/data/interfaces/default/images/media_flags/studio/becker_entertainment.png
new file mode 100644
index 00000000..e4b14bd2
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/becker_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/belair_entertainment.png b/data/interfaces/default/images/media_flags/studio/belair_entertainment.png
new file mode 100644
index 00000000..6ea18567
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/belair_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/bet.png b/data/interfaces/default/images/media_flags/studio/bet.png
new file mode 100644
index 00000000..ee67019c
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/bet.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/bigtalk.png b/data/interfaces/default/images/media_flags/studio/bigtalk.png
new file mode 100644
index 00000000..ee1d8040
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/bigtalk.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/biography_channel.png b/data/interfaces/default/images/media_flags/studio/biography_channel.png
new file mode 100644
index 00000000..fd6b21a4
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/biography_channel.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/black_bear_pictures.png b/data/interfaces/default/images/media_flags/studio/black_bear_pictures.png
new file mode 100644
index 00000000..f6fc7131
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/black_bear_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/blackdog.png b/data/interfaces/default/images/media_flags/studio/blackdog.png
new file mode 100644
index 00000000..02b7b06c
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/blackdog.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/bleecker_street.png b/data/interfaces/default/images/media_flags/studio/bleecker_street.png
new file mode 100644
index 00000000..29d1f6b1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/bleecker_street.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/blind_ambition_entertainment.png b/data/interfaces/default/images/media_flags/studio/blind_ambition_entertainment.png
new file mode 100644
index 00000000..1e3de5e9
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/blind_ambition_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/blizzard_entertainment.png b/data/interfaces/default/images/media_flags/studio/blizzard_entertainment.png
new file mode 100644
index 00000000..0fd98942
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/blizzard_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/blue_sky.png b/data/interfaces/default/images/media_flags/studio/blue_sky.png
new file mode 100644
index 00000000..c02489f6
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/blue_sky.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/blue_sky_studios.png b/data/interfaces/default/images/media_flags/studio/blue_sky_studios.png
new file mode 100644
index 00000000..abc0d85b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/blue_sky_studios.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/blue_underground.png b/data/interfaces/default/images/media_flags/studio/blue_underground.png
new file mode 100644
index 00000000..b0a7f17b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/blue_underground.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/blumhouse_productions.png b/data/interfaces/default/images/media_flags/studio/blumhouse_productions.png
new file mode 100644
index 00000000..b4409df3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/blumhouse_productions.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/bnn.png b/data/interfaces/default/images/media_flags/studio/bnn.png
new file mode 100644
index 00000000..5dad0a17
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/bnn.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/bold_films.png b/data/interfaces/default/images/media_flags/studio/bold_films.png
new file mode 100644
index 00000000..8c310530
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/bold_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/boomerang.png b/data/interfaces/default/images/media_flags/studio/boomerang.png
new file mode 100644
index 00000000..bfd7f438
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/boomerang.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/bravo.png b/data/interfaces/default/images/media_flags/studio/bravo.png
new file mode 100644
index 00000000..a4287fc4
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/bravo.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/brightlight.png b/data/interfaces/default/images/media_flags/studio/brightlight.png
new file mode 100644
index 00000000..58a29d9d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/brightlight.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/bristol_bay.png b/data/interfaces/default/images/media_flags/studio/bristol_bay.png
new file mode 100644
index 00000000..953760bd
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/bristol_bay.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/broken_lizard.png b/data/interfaces/default/images/media_flags/studio/broken_lizard.png
new file mode 100644
index 00000000..2600fb72
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/broken_lizard.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/brooklyn_films.png b/data/interfaces/default/images/media_flags/studio/brooklyn_films.png
new file mode 100644
index 00000000..24d17c9d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/brooklyn_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/buena_vista.png b/data/interfaces/default/images/media_flags/studio/buena_vista.png
new file mode 100644
index 00000000..3f9711e3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/buena_vista.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/bulletproof.png b/data/interfaces/default/images/media_flags/studio/bulletproof.png
new file mode 100644
index 00000000..e0ea5828
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/bulletproof.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/c2_pictures.png b/data/interfaces/default/images/media_flags/studio/c2_pictures.png
new file mode 100644
index 00000000..eab35918
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/c2_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/canalplus.png b/data/interfaces/default/images/media_flags/studio/canalplus.png
new file mode 100644
index 00000000..f6117178
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/canalplus.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/cannon_pictures.png b/data/interfaces/default/images/media_flags/studio/cannon_pictures.png
new file mode 100644
index 00000000..7a8309b5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/cannon_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/capcom.png b/data/interfaces/default/images/media_flags/studio/capcom.png
new file mode 100644
index 00000000..8bab3440
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/capcom.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/capitol_films.png b/data/interfaces/default/images/media_flags/studio/capitol_films.png
new file mode 100644
index 00000000..af4b2c64
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/capitol_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/caravan_pictures.png b/data/interfaces/default/images/media_flags/studio/caravan_pictures.png
new file mode 100644
index 00000000..47f9e350
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/caravan_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/carnaby.png b/data/interfaces/default/images/media_flags/studio/carnaby.png
new file mode 100644
index 00000000..35915915
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/carnaby.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/carolco.png b/data/interfaces/default/images/media_flags/studio/carolco.png
new file mode 100644
index 00000000..873ef2ac
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/carolco.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/cartoonnetwork.png b/data/interfaces/default/images/media_flags/studio/cartoonnetwork.png
new file mode 100644
index 00000000..badf075a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/cartoonnetwork.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/casablanca_filmes.png b/data/interfaces/default/images/media_flags/studio/casablanca_filmes.png
new file mode 100644
index 00000000..48671a7f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/casablanca_filmes.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/cascade_film.png b/data/interfaces/default/images/media_flags/studio/cascade_film.png
new file mode 100644
index 00000000..840ec07f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/cascade_film.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/casey_silver_productions.png b/data/interfaces/default/images/media_flags/studio/casey_silver_productions.png
new file mode 100644
index 00000000..44ce05f1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/casey_silver_productions.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/castle_rock_entertainment.png b/data/interfaces/default/images/media_flags/studio/castle_rock_entertainment.png
new file mode 100644
index 00000000..485d5964
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/castle_rock_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/cat_in_the_hat.png b/data/interfaces/default/images/media_flags/studio/cat_in_the_hat.png
new file mode 100644
index 00000000..560d2eda
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/cat_in_the_hat.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/cbbc.png b/data/interfaces/default/images/media_flags/studio/cbbc.png
new file mode 100644
index 00000000..7527bef7
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/cbbc.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/cbc.png b/data/interfaces/default/images/media_flags/studio/cbc.png
new file mode 100644
index 00000000..3f26e7f8
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/cbc.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/cbs.png b/data/interfaces/default/images/media_flags/studio/cbs.png
new file mode 100644
index 00000000..b75a7d41
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/cbs.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/celador.png b/data/interfaces/default/images/media_flags/studio/celador.png
new file mode 100644
index 00000000..f9b619ee
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/celador.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/centropolis_entertainment.png b/data/interfaces/default/images/media_flags/studio/centropolis_entertainment.png
new file mode 100644
index 00000000..c65c6289
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/centropolis_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/ceska_televize.png b/data/interfaces/default/images/media_flags/studio/ceska_televize.png
new file mode 100644
index 00000000..4d3c97a8
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/ceska_televize.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/channel4.png b/data/interfaces/default/images/media_flags/studio/channel4.png
new file mode 100644
index 00000000..fb5aa602
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/channel4.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/channel5.png b/data/interfaces/default/images/media_flags/studio/channel5.png
new file mode 100644
index 00000000..98118b9a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/channel5.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/channel_nine.png b/data/interfaces/default/images/media_flags/studio/channel_nine.png
new file mode 100644
index 00000000..4a581fd3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/channel_nine.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/channel_seven.png b/data/interfaces/default/images/media_flags/studio/channel_seven.png
new file mode 100644
index 00000000..c9c620d3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/channel_seven.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/channel_ten.png b/data/interfaces/default/images/media_flags/studio/channel_ten.png
new file mode 100644
index 00000000..f00cd1b7
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/channel_ten.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/cheyenne.png b/data/interfaces/default/images/media_flags/studio/cheyenne.png
new file mode 100644
index 00000000..94bf7a5b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/cheyenne.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/chiller.png b/data/interfaces/default/images/media_flags/studio/chiller.png
new file mode 100644
index 00000000..0cff8a88
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/chiller.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/cinemax.png b/data/interfaces/default/images/media_flags/studio/cinemax.png
new file mode 100644
index 00000000..80dccddc
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/cinemax.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/city.png b/data/interfaces/default/images/media_flags/studio/city.png
new file mode 100644
index 00000000..441dae9f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/city.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/cmt.png b/data/interfaces/default/images/media_flags/studio/cmt.png
new file mode 100644
index 00000000..e46507f1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/cmt.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/cnc.png b/data/interfaces/default/images/media_flags/studio/cnc.png
new file mode 100644
index 00000000..e337f56c
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/cnc.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/columbia_pictures.png b/data/interfaces/default/images/media_flags/studio/columbia_pictures.png
new file mode 100644
index 00000000..b957faeb
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/columbia_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/comedy_central.png b/data/interfaces/default/images/media_flags/studio/comedy_central.png
new file mode 100644
index 00000000..879d39a0
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/comedy_central.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/concorde.png b/data/interfaces/default/images/media_flags/studio/concorde.png
new file mode 100644
index 00000000..de8730cd
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/concorde.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/condemned.png b/data/interfaces/default/images/media_flags/studio/condemned.png
new file mode 100644
index 00000000..1abea67c
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/condemned.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/constantin_film.png b/data/interfaces/default/images/media_flags/studio/constantin_film.png
new file mode 100644
index 00000000..f31c87a5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/constantin_film.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/constellation.png b/data/interfaces/default/images/media_flags/studio/constellation.png
new file mode 100644
index 00000000..cd682d2f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/constellation.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/cookie_jar.png b/data/interfaces/default/images/media_flags/studio/cookie_jar.png
new file mode 100644
index 00000000..cee89714
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/cookie_jar.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/cpfilms.png b/data/interfaces/default/images/media_flags/studio/cpfilms.png
new file mode 100644
index 00000000..22b36342
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/cpfilms.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/crackle.png b/data/interfaces/default/images/media_flags/studio/crackle.png
new file mode 100644
index 00000000..5c9e8e3f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/crackle.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/criterion.png b/data/interfaces/default/images/media_flags/studio/criterion.png
new file mode 100644
index 00000000..de7ad4cd
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/criterion.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/ctv.png b/data/interfaces/default/images/media_flags/studio/ctv.png
new file mode 100644
index 00000000..671525c5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/ctv.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/cw.png b/data/interfaces/default/images/media_flags/studio/cw.png
new file mode 100644
index 00000000..ae5a8ed4
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/cw.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/cw_seed.png b/data/interfaces/default/images/media_flags/studio/cw_seed.png
new file mode 100644
index 00000000..8b8f6503
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/cw_seed.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/czolowka.png b/data/interfaces/default/images/media_flags/studio/czolowka.png
new file mode 100644
index 00000000..30a8e4c4
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/czolowka.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/damselfly.png b/data/interfaces/default/images/media_flags/studio/damselfly.png
new file mode 100644
index 00000000..0719d2cd
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/damselfly.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/danjaq.png b/data/interfaces/default/images/media_flags/studio/danjaq.png
new file mode 100644
index 00000000..702bd849
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/danjaq.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/dark_castle_entertainment.png b/data/interfaces/default/images/media_flags/studio/dark_castle_entertainment.png
new file mode 100644
index 00000000..b433fd4a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/dark_castle_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/dark_horse.png b/data/interfaces/default/images/media_flags/studio/dark_horse.png
new file mode 100644
index 00000000..69472a60
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/dark_horse.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/dave.png b/data/interfaces/default/images/media_flags/studio/dave.png
new file mode 100644
index 00000000..52c7775c
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/dave.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/davis_entertainment.png b/data/interfaces/default/images/media_flags/studio/davis_entertainment.png
new file mode 100644
index 00000000..2e3e81d5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/davis_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/dc.png b/data/interfaces/default/images/media_flags/studio/dc.png
new file mode 100644
index 00000000..5a5871a8
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/dc.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/de_laurentiis.png b/data/interfaces/default/images/media_flags/studio/de_laurentiis.png
new file mode 100644
index 00000000..ac45f1b0
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/de_laurentiis.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/defa.png b/data/interfaces/default/images/media_flags/studio/defa.png
new file mode 100644
index 00000000..9709cc1d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/defa.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/destination_films.png b/data/interfaces/default/images/media_flags/studio/destination_films.png
new file mode 100644
index 00000000..60be7cf7
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/destination_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/dfi.png b/data/interfaces/default/images/media_flags/studio/dfi.png
new file mode 100644
index 00000000..64180155
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/dfi.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/dickhouse_productions.png b/data/interfaces/default/images/media_flags/studio/dickhouse_productions.png
new file mode 100644
index 00000000..aab3b566
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/dickhouse_productions.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/digital_factory.png b/data/interfaces/default/images/media_flags/studio/digital_factory.png
new file mode 100644
index 00000000..b57fa3de
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/digital_factory.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/digital_playground.png b/data/interfaces/default/images/media_flags/studio/digital_playground.png
new file mode 100644
index 00000000..70ca7185
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/digital_playground.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/dimension_films.png b/data/interfaces/default/images/media_flags/studio/dimension_films.png
new file mode 100644
index 00000000..963a8319
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/dimension_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/discovery_channel.png b/data/interfaces/default/images/media_flags/studio/discovery_channel.png
new file mode 100644
index 00000000..d156aa33
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/discovery_channel.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/disney_channel.png b/data/interfaces/default/images/media_flags/studio/disney_channel.png
new file mode 100644
index 00000000..906200ab
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/disney_channel.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/disney_xd.png b/data/interfaces/default/images/media_flags/studio/disney_xd.png
new file mode 100644
index 00000000..aa118b6e
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/disney_xd.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/distant_horizon.png b/data/interfaces/default/images/media_flags/studio/distant_horizon.png
new file mode 100644
index 00000000..1ed0ed9f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/distant_horizon.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/dmax.png b/data/interfaces/default/images/media_flags/studio/dmax.png
new file mode 100644
index 00000000..9f1017e3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/dmax.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/dna.png b/data/interfaces/default/images/media_flags/studio/dna.png
new file mode 100644
index 00000000..807d6377
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/dna.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/dolores_pictures.png b/data/interfaces/default/images/media_flags/studio/dolores_pictures.png
new file mode 100644
index 00000000..6c0c84d3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/dolores_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/don_simpson_jerry_bruckheimer_films.png b/data/interfaces/default/images/media_flags/studio/don_simpson_jerry_bruckheimer_films.png
new file mode 100644
index 00000000..625975c3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/don_simpson_jerry_bruckheimer_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/donners.png b/data/interfaces/default/images/media_flags/studio/donners.png
new file mode 100644
index 00000000..9bafec9c
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/donners.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/dreamworks.png b/data/interfaces/default/images/media_flags/studio/dreamworks.png
new file mode 100644
index 00000000..808ffbd0
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/dreamworks.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/dreamworks_animation.png b/data/interfaces/default/images/media_flags/studio/dreamworks_animation.png
new file mode 100644
index 00000000..2f4c764d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/dreamworks_animation.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/e4.png b/data/interfaces/default/images/media_flags/studio/e4.png
new file mode 100644
index 00000000..e39ff30f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/e4.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/ealing.png b/data/interfaces/default/images/media_flags/studio/ealing.png
new file mode 100644
index 00000000..8b8544b0
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/ealing.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/eclectic.png b/data/interfaces/default/images/media_flags/studio/eclectic.png
new file mode 100644
index 00000000..a2ded0b8
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/eclectic.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/edmonds_entertainment.png b/data/interfaces/default/images/media_flags/studio/edmonds_entertainment.png
new file mode 100644
index 00000000..fe1dc89f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/edmonds_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/el_rey_network.png b/data/interfaces/default/images/media_flags/studio/el_rey_network.png
new file mode 100644
index 00000000..18fedcde
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/el_rey_network.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/electric_enterteinment.png b/data/interfaces/default/images/media_flags/studio/electric_enterteinment.png
new file mode 100644
index 00000000..957791a4
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/electric_enterteinment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/electric_pictures.png b/data/interfaces/default/images/media_flags/studio/electric_pictures.png
new file mode 100644
index 00000000..0c214351
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/electric_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/eleven_eleven.png b/data/interfaces/default/images/media_flags/studio/eleven_eleven.png
new file mode 100644
index 00000000..9580a0cc
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/eleven_eleven.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/emi.png b/data/interfaces/default/images/media_flags/studio/emi.png
new file mode 100644
index 00000000..339283ff
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/emi.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/emmedia.png b/data/interfaces/default/images/media_flags/studio/emmedia.png
new file mode 100644
index 00000000..e6c21588
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/emmedia.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/encore.png b/data/interfaces/default/images/media_flags/studio/encore.png
new file mode 100644
index 00000000..e1a96e3f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/encore.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/endgame_entertainment.png b/data/interfaces/default/images/media_flags/studio/endgame_entertainment.png
new file mode 100644
index 00000000..00dea657
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/endgame_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/entara.png b/data/interfaces/default/images/media_flags/studio/entara.png
new file mode 100644
index 00000000..5a3d8518
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/entara.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/entertainment_one.png b/data/interfaces/default/images/media_flags/studio/entertainment_one.png
new file mode 100644
index 00000000..f4361522
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/entertainment_one.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/entertainment_television.png b/data/interfaces/default/images/media_flags/studio/entertainment_television.png
new file mode 100644
index 00000000..916eaf37
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/entertainment_television.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/eon_productions.png b/data/interfaces/default/images/media_flags/studio/eon_productions.png
new file mode 100644
index 00000000..4615a583
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/eon_productions.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/epix.png b/data/interfaces/default/images/media_flags/studio/epix.png
new file mode 100644
index 00000000..b92eca69
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/epix.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/escape_artists.png b/data/interfaces/default/images/media_flags/studio/escape_artists.png
new file mode 100644
index 00000000..97d7177a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/escape_artists.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/espn.png b/data/interfaces/default/images/media_flags/studio/espn.png
new file mode 100644
index 00000000..59e9b333
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/espn.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/eurimages.png b/data/interfaces/default/images/media_flags/studio/eurimages.png
new file mode 100644
index 00000000..b0d73852
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/eurimages.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/europa_corp.png b/data/interfaces/default/images/media_flags/studio/europa_corp.png
new file mode 100644
index 00000000..8aa019e5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/europa_corp.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/eurosport.png b/data/interfaces/default/images/media_flags/studio/eurosport.png
new file mode 100644
index 00000000..a9f1679a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/eurosport.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/excel.png b/data/interfaces/default/images/media_flags/studio/excel.png
new file mode 100644
index 00000000..e7d6d9fd
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/excel.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/eyekiss_films.png b/data/interfaces/default/images/media_flags/studio/eyekiss_films.png
new file mode 100644
index 00000000..0e0a0626
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/eyekiss_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/fact.png b/data/interfaces/default/images/media_flags/studio/fact.png
new file mode 100644
index 00000000..03118350
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/fact.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/figaro.png b/data/interfaces/default/images/media_flags/studio/figaro.png
new file mode 100644
index 00000000..e936da40
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/figaro.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/film_colony.png b/data/interfaces/default/images/media_flags/studio/film_colony.png
new file mode 100644
index 00000000..14013554
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/film_colony.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/film_four.png b/data/interfaces/default/images/media_flags/studio/film_four.png
new file mode 100644
index 00000000..3763127d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/film_four.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/film_institut.png b/data/interfaces/default/images/media_flags/studio/film_institut.png
new file mode 100644
index 00000000..8db5c27b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/film_institut.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/film_media.png b/data/interfaces/default/images/media_flags/studio/film_media.png
new file mode 100644
index 00000000..9e6cf8f1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/film_media.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/film_polski.png b/data/interfaces/default/images/media_flags/studio/film_polski.png
new file mode 100644
index 00000000..7f66e7eb
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/film_polski.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/film_tv.png b/data/interfaces/default/images/media_flags/studio/film_tv.png
new file mode 100644
index 00000000..e0384217
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/film_tv.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/filmauro.png b/data/interfaces/default/images/media_flags/studio/filmauro.png
new file mode 100644
index 00000000..1eb239b6
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/filmauro.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/filmax_animation.png b/data/interfaces/default/images/media_flags/studio/filmax_animation.png
new file mode 100644
index 00000000..9c86e21c
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/filmax_animation.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/filmforderung_hamburg.png b/data/interfaces/default/images/media_flags/studio/filmforderung_hamburg.png
new file mode 100644
index 00000000..d94e5a35
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/filmforderung_hamburg.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/filmoteka narodowa.png b/data/interfaces/default/images/media_flags/studio/filmoteka narodowa.png
new file mode 100644
index 00000000..c6eb5cb5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/filmoteka narodowa.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/filmstiftung_nordrhein-westfalen.png b/data/interfaces/default/images/media_flags/studio/filmstiftung_nordrhein-westfalen.png
new file mode 100644
index 00000000..69e7d7ce
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/filmstiftung_nordrhein-westfalen.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/finos_film.png b/data/interfaces/default/images/media_flags/studio/finos_film.png
new file mode 100644
index 00000000..cef2c605
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/finos_film.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/fireworks_entertainment.png b/data/interfaces/default/images/media_flags/studio/fireworks_entertainment.png
new file mode 100644
index 00000000..84c608f8
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/fireworks_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/first_look_pictures.png b/data/interfaces/default/images/media_flags/studio/first_look_pictures.png
new file mode 100644
index 00000000..afc54858
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/first_look_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/five.png b/data/interfaces/default/images/media_flags/studio/five.png
new file mode 100644
index 00000000..e8f342f7
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/five.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/flower_films.png b/data/interfaces/default/images/media_flags/studio/flower_films.png
new file mode 100644
index 00000000..7af4a257
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/flower_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/focus_features.png b/data/interfaces/default/images/media_flags/studio/focus_features.png
new file mode 100644
index 00000000..207f0e56
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/focus_features.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/food_network.png b/data/interfaces/default/images/media_flags/studio/food_network.png
new file mode 100644
index 00000000..a8bcb1e1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/food_network.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/forte_cinema.png b/data/interfaces/default/images/media_flags/studio/forte_cinema.png
new file mode 100644
index 00000000..c5fecec0
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/forte_cinema.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/fourhands_film.png b/data/interfaces/default/images/media_flags/studio/fourhands_film.png
new file mode 100644
index 00000000..74ddad62
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/fourhands_film.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/fox.png b/data/interfaces/default/images/media_flags/studio/fox.png
new file mode 100644
index 00000000..2d2b09d3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/fox.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/fox_atomic.png b/data/interfaces/default/images/media_flags/studio/fox_atomic.png
new file mode 100644
index 00000000..dd8baa2a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/fox_atomic.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/fox_kids.png b/data/interfaces/default/images/media_flags/studio/fox_kids.png
new file mode 100644
index 00000000..96100a45
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/fox_kids.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/fox_searchlight_pictures.png b/data/interfaces/default/images/media_flags/studio/fox_searchlight_pictures.png
new file mode 100644
index 00000000..ca67770c
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/fox_searchlight_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/france_2.png b/data/interfaces/default/images/media_flags/studio/france_2.png
new file mode 100644
index 00000000..ca357753
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/france_2.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/france_3.png b/data/interfaces/default/images/media_flags/studio/france_3.png
new file mode 100644
index 00000000..41358df0
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/france_3.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/france_4.png b/data/interfaces/default/images/media_flags/studio/france_4.png
new file mode 100644
index 00000000..bd058950
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/france_4.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/franchise_pictures.png b/data/interfaces/default/images/media_flags/studio/franchise_pictures.png
new file mode 100644
index 00000000..30a92437
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/franchise_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/freeform.png b/data/interfaces/default/images/media_flags/studio/freeform.png
new file mode 100644
index 00000000..1fbd6f91
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/freeform.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/fuji_tv.png b/data/interfaces/default/images/media_flags/studio/fuji_tv.png
new file mode 100644
index 00000000..10d72a65
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/fuji_tv.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/future_flix.png b/data/interfaces/default/images/media_flags/studio/future_flix.png
new file mode 100644
index 00000000..d7e0f5d4
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/future_flix.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/fx.png b/data/interfaces/default/images/media_flags/studio/fx.png
new file mode 100644
index 00000000..e94598dc
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/fx.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/fxx.png b/data/interfaces/default/images/media_flags/studio/fxx.png
new file mode 100644
index 00000000..18acf89a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/fxx.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/g4.png b/data/interfaces/default/images/media_flags/studio/g4.png
new file mode 100644
index 00000000..27adf098
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/g4.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/gaumont.png b/data/interfaces/default/images/media_flags/studio/gaumont.png
new file mode 100644
index 00000000..9ea43461
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/gaumont.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/geffen.png b/data/interfaces/default/images/media_flags/studio/geffen.png
new file mode 100644
index 00000000..a8e2f75b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/geffen.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/ghost_house.png b/data/interfaces/default/images/media_flags/studio/ghost_house.png
new file mode 100644
index 00000000..840e86e7
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/ghost_house.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/gk_films.png b/data/interfaces/default/images/media_flags/studio/gk_films.png
new file mode 100644
index 00000000..45c2343b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/gk_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/glass_eye_pix.png b/data/interfaces/default/images/media_flags/studio/glass_eye_pix.png
new file mode 100644
index 00000000..7bf1f8b1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/glass_eye_pix.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/global_tv.png b/data/interfaces/default/images/media_flags/studio/global_tv.png
new file mode 100644
index 00000000..dda68913
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/global_tv.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/glue_works_entertainment.png b/data/interfaces/default/images/media_flags/studio/glue_works_entertainment.png
new file mode 100644
index 00000000..d9441eba
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/glue_works_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/gofilms.png b/data/interfaces/default/images/media_flags/studio/gofilms.png
new file mode 100644
index 00000000..ab3bca07
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/gofilms.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/gold_circle_films.png b/data/interfaces/default/images/media_flags/studio/gold_circle_films.png
new file mode 100644
index 00000000..ecd1ea03
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/gold_circle_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/goldwyn.png b/data/interfaces/default/images/media_flags/studio/goldwyn.png
new file mode 100644
index 00000000..fc5d8f80
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/goldwyn.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/gracie_films.png b/data/interfaces/default/images/media_flags/studio/gracie_films.png
new file mode 100644
index 00000000..73394e70
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/gracie_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/gramercy_pictures.png b/data/interfaces/default/images/media_flags/studio/gramercy_pictures.png
new file mode 100644
index 00000000..613116b9
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/gramercy_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/grandhustle.png b/data/interfaces/default/images/media_flags/studio/grandhustle.png
new file mode 100644
index 00000000..28111775
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/grandhustle.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/green_street.png b/data/interfaces/default/images/media_flags/studio/green_street.png
new file mode 100644
index 00000000..3771e347
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/green_street.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/greentree_pictures.png b/data/interfaces/default/images/media_flags/studio/greentree_pictures.png
new file mode 100644
index 00000000..03855147
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/greentree_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/grub_street_productions.png b/data/interfaces/default/images/media_flags/studio/grub_street_productions.png
new file mode 100644
index 00000000..a5a464f7
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/grub_street_productions.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/guinea_pig_films.png b/data/interfaces/default/images/media_flags/studio/guinea_pig_films.png
new file mode 100644
index 00000000..932fb8c7
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/guinea_pig_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/gutek.png b/data/interfaces/default/images/media_flags/studio/gutek.png
new file mode 100644
index 00000000..6b258ff9
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/gutek.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/halestorm.png b/data/interfaces/default/images/media_flags/studio/halestorm.png
new file mode 100644
index 00000000..fb751935
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/halestorm.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/hallmark_channel.png b/data/interfaces/default/images/media_flags/studio/hallmark_channel.png
new file mode 100644
index 00000000..b197b2d9
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/hallmark_channel.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/hallucination_on_film.png b/data/interfaces/default/images/media_flags/studio/hallucination_on_film.png
new file mode 100644
index 00000000..6e360efa
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/hallucination_on_film.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/hand_made_films.png b/data/interfaces/default/images/media_flags/studio/hand_made_films.png
new file mode 100644
index 00000000..c896682b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/hand_made_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/happy_madison.png b/data/interfaces/default/images/media_flags/studio/happy_madison.png
new file mode 100644
index 00000000..3ee4f0e1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/happy_madison.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/hasbro.png b/data/interfaces/default/images/media_flags/studio/hasbro.png
new file mode 100644
index 00000000..29fab8f2
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/hasbro.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/hbo.png b/data/interfaces/default/images/media_flags/studio/hbo.png
new file mode 100644
index 00000000..cfa5d9ad
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/hbo.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/hbo_films.png b/data/interfaces/default/images/media_flags/studio/hbo_films.png
new file mode 100644
index 00000000..2999fcdb
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/hbo_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/head_gear_films.png b/data/interfaces/default/images/media_flags/studio/head_gear_films.png
new file mode 100644
index 00000000..67fde5fb
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/head_gear_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/hemus_film.png b/data/interfaces/default/images/media_flags/studio/hemus_film.png
new file mode 100644
index 00000000..f9d1700e
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/hemus_film.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/heyday_films.png b/data/interfaces/default/images/media_flags/studio/heyday_films.png
new file mode 100644
index 00000000..2dbff495
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/heyday_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/hgtv.png b/data/interfaces/default/images/media_flags/studio/hgtv.png
new file mode 100644
index 00000000..c3efbb86
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/hgtv.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/history_channel.png b/data/interfaces/default/images/media_flags/studio/history_channel.png
new file mode 100644
index 00000000..55dda333
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/history_channel.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/hollywood_pictures.png b/data/interfaces/default/images/media_flags/studio/hollywood_pictures.png
new file mode 100644
index 00000000..3db665e0
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/hollywood_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/hopscotch_films.png b/data/interfaces/default/images/media_flags/studio/hopscotch_films.png
new file mode 100644
index 00000000..aa4ea64e
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/hopscotch_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/hulu.png b/data/interfaces/default/images/media_flags/studio/hulu.png
new file mode 100644
index 00000000..ca9c5ecc
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/hulu.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/hustler_video.png b/data/interfaces/default/images/media_flags/studio/hustler_video.png
new file mode 100644
index 00000000..d6babc0f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/hustler_video.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/hyde_park_entertainment.png b/data/interfaces/default/images/media_flags/studio/hyde_park_entertainment.png
new file mode 100644
index 00000000..f6b0d188
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/hyde_park_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/icon_entertainment.png b/data/interfaces/default/images/media_flags/studio/icon_entertainment.png
new file mode 100644
index 00000000..db4a9ed0
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/icon_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/ifc.png b/data/interfaces/default/images/media_flags/studio/ifc.png
new file mode 100644
index 00000000..9d02da39
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/ifc.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/illumination_entertainment.png b/data/interfaces/default/images/media_flags/studio/illumination_entertainment.png
new file mode 100644
index 00000000..b217aa58
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/illumination_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/image.png b/data/interfaces/default/images/media_flags/studio/image.png
new file mode 100644
index 00000000..9106d0f9
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/image.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/image_movers.png b/data/interfaces/default/images/media_flags/studio/image_movers.png
new file mode 100644
index 00000000..4a3d39d6
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/image_movers.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/imagi_studios.png b/data/interfaces/default/images/media_flags/studio/imagi_studios.png
new file mode 100644
index 00000000..2445ccb0
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/imagi_studios.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/imaginary_forces.png b/data/interfaces/default/images/media_flags/studio/imaginary_forces.png
new file mode 100644
index 00000000..aade8008
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/imaginary_forces.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/imagine.png b/data/interfaces/default/images/media_flags/studio/imagine.png
new file mode 100644
index 00000000..51b0d4de
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/imagine.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/imax.png b/data/interfaces/default/images/media_flags/studio/imax.png
new file mode 100644
index 00000000..820e80df
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/imax.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/imperial_entertainment.png b/data/interfaces/default/images/media_flags/studio/imperial_entertainment.png
new file mode 100644
index 00000000..4e645b84
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/imperial_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/independent_pictures.png b/data/interfaces/default/images/media_flags/studio/independent_pictures.png
new file mode 100644
index 00000000..91dc1f1b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/independent_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/industrial_light_and_magic.png b/data/interfaces/default/images/media_flags/studio/industrial_light_and_magic.png
new file mode 100644
index 00000000..928dfa9f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/industrial_light_and_magic.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/infilm.png b/data/interfaces/default/images/media_flags/studio/infilm.png
new file mode 100644
index 00000000..b7e1baf1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/infilm.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/ingenious_film_partners.png b/data/interfaces/default/images/media_flags/studio/ingenious_film_partners.png
new file mode 100644
index 00000000..60327393
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/ingenious_film_partners.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/ingenius_entertainment.png b/data/interfaces/default/images/media_flags/studio/ingenius_entertainment.png
new file mode 100644
index 00000000..8dd64180
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/ingenius_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/inside_track.png b/data/interfaces/default/images/media_flags/studio/inside_track.png
new file mode 100644
index 00000000..60f10532
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/inside_track.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/insurge_pictures.png b/data/interfaces/default/images/media_flags/studio/insurge_pictures.png
new file mode 100644
index 00000000..1ad2c598
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/insurge_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/interactual.png b/data/interfaces/default/images/media_flags/studio/interactual.png
new file mode 100644
index 00000000..dda62e66
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/interactual.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/intermedia.png b/data/interfaces/default/images/media_flags/studio/intermedia.png
new file mode 100644
index 00000000..40778fc7
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/intermedia.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/interscope_shady_aftermath.png b/data/interfaces/default/images/media_flags/studio/interscope_shady_aftermath.png
new file mode 100644
index 00000000..1dbb2b12
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/interscope_shady_aftermath.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/intrepid_pictures.png b/data/interfaces/default/images/media_flags/studio/intrepid_pictures.png
new file mode 100644
index 00000000..d6ab9154
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/intrepid_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/island_world.png b/data/interfaces/default/images/media_flags/studio/island_world.png
new file mode 100644
index 00000000..69730e9c
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/island_world.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/itv.png b/data/interfaces/default/images/media_flags/studio/itv.png
new file mode 100644
index 00000000..e00948f5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/itv.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/janus.png b/data/interfaces/default/images/media_flags/studio/janus.png
new file mode 100644
index 00000000..a4a96fc4
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/janus.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/jarowskij.png b/data/interfaces/default/images/media_flags/studio/jarowskij.png
new file mode 100644
index 00000000..d487ed78
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/jarowskij.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/jawa.png b/data/interfaces/default/images/media_flags/studio/jawa.png
new file mode 100644
index 00000000..2267f4b8
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/jawa.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/jerry_bruckheimer_films.png b/data/interfaces/default/images/media_flags/studio/jerry_bruckheimer_films.png
new file mode 100644
index 00000000..d1387877
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/jerry_bruckheimer_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/jersey_films.png b/data/interfaces/default/images/media_flags/studio/jersey_films.png
new file mode 100644
index 00000000..91766b48
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/jersey_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/jim_henson.png b/data/interfaces/default/images/media_flags/studio/jim_henson.png
new file mode 100644
index 00000000..ca940fc5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/jim_henson.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/jj_splice.png b/data/interfaces/default/images/media_flags/studio/jj_splice.png
new file mode 100644
index 00000000..09bc120a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/jj_splice.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/kaboom_entertainment.png b/data/interfaces/default/images/media_flags/studio/kaboom_entertainment.png
new file mode 100644
index 00000000..c2bc81ba
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/kaboom_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/kadokawa_pictures.png b/data/interfaces/default/images/media_flags/studio/kadokawa_pictures.png
new file mode 100644
index 00000000..a239905b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/kadokawa_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/kadr.png b/data/interfaces/default/images/media_flags/studio/kadr.png
new file mode 100644
index 00000000..16d76be4
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/kadr.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/kamera.png b/data/interfaces/default/images/media_flags/studio/kamera.png
new file mode 100644
index 00000000..52bb0a32
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/kamera.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/kanal_5.png b/data/interfaces/default/images/media_flags/studio/kanal_5.png
new file mode 100644
index 00000000..b9bba37e
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/kanal_5.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/kennedymarshall.png b/data/interfaces/default/images/media_flags/studio/kennedymarshall.png
new file mode 100644
index 00000000..6195caff
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/kennedymarshall.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/kid_rhino.png b/data/interfaces/default/images/media_flags/studio/kid_rhino.png
new file mode 100644
index 00000000..69914dca
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/kid_rhino.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/killer_films.png b/data/interfaces/default/images/media_flags/studio/killer_films.png
new file mode 100644
index 00000000..921dd182
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/killer_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/kinepolis.png b/data/interfaces/default/images/media_flags/studio/kinepolis.png
new file mode 100644
index 00000000..062274e6
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/kinepolis.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/king_world.png b/data/interfaces/default/images/media_flags/studio/king_world.png
new file mode 100644
index 00000000..cbad9498
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/king_world.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/kinowelt.png b/data/interfaces/default/images/media_flags/studio/kinowelt.png
new file mode 100644
index 00000000..e25f2c83
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/kinowelt.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/konami.png b/data/interfaces/default/images/media_flags/studio/konami.png
new file mode 100644
index 00000000..054d320e
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/konami.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/kopelson.png b/data/interfaces/default/images/media_flags/studio/kopelson.png
new file mode 100644
index 00000000..0cebf892
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/kopelson.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/kyoto_animation.png b/data/interfaces/default/images/media_flags/studio/kyoto_animation.png
new file mode 100644
index 00000000..637621b4
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/kyoto_animation.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/ladd.png b/data/interfaces/default/images/media_flags/studio/ladd.png
new file mode 100644
index 00000000..9e1ed603
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/ladd.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/lakeshore_entertainment.png b/data/interfaces/default/images/media_flags/studio/lakeshore_entertainment.png
new file mode 100644
index 00000000..166b0bfc
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/lakeshore_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/latham.png b/data/interfaces/default/images/media_flags/studio/latham.png
new file mode 100644
index 00000000..87792ced
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/latham.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/lawrence_bender_productions.png b/data/interfaces/default/images/media_flags/studio/lawrence_bender_productions.png
new file mode 100644
index 00000000..0588aab0
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/lawrence_bender_productions.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/league of noble peers.png b/data/interfaces/default/images/media_flags/studio/league of noble peers.png
new file mode 100644
index 00000000..f7f99cd4
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/league of noble peers.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/legendary_pictures.png b/data/interfaces/default/images/media_flags/studio/legendary_pictures.png
new file mode 100644
index 00000000..14d906cf
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/legendary_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/lego.png b/data/interfaces/default/images/media_flags/studio/lego.png
new file mode 100644
index 00000000..0f695471
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/lego.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/liberty_films.png b/data/interfaces/default/images/media_flags/studio/liberty_films.png
new file mode 100644
index 00000000..a23d0d76
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/liberty_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/lifetime.png b/data/interfaces/default/images/media_flags/studio/lifetime.png
new file mode 100644
index 00000000..f6abd7bb
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/lifetime.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/lift.png b/data/interfaces/default/images/media_flags/studio/lift.png
new file mode 100644
index 00000000..7fe0318a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/lift.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/lightstorm_entertainment.png b/data/interfaces/default/images/media_flags/studio/lightstorm_entertainment.png
new file mode 100644
index 00000000..4a7ade60
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/lightstorm_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/lionsgate.png b/data/interfaces/default/images/media_flags/studio/lionsgate.png
new file mode 100644
index 00000000..91e7c806
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/lionsgate.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/little_chicken.png b/data/interfaces/default/images/media_flags/studio/little_chicken.png
new file mode 100644
index 00000000..8a3c7cac
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/little_chicken.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/london_films.png b/data/interfaces/default/images/media_flags/studio/london_films.png
new file mode 100644
index 00000000..6d3f1af3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/london_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/lookout.png b/data/interfaces/default/images/media_flags/studio/lookout.png
new file mode 100644
index 00000000..68dc9b66
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/lookout.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/lucasfilm.png b/data/interfaces/default/images/media_flags/studio/lucasfilm.png
new file mode 100644
index 00000000..5e1c677d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/lucasfilm.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/lucky_7.png b/data/interfaces/default/images/media_flags/studio/lucky_7.png
new file mode 100644
index 00000000..4eae3157
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/lucky_7.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/m6.png b/data/interfaces/default/images/media_flags/studio/m6.png
new file mode 100644
index 00000000..dc125bcf
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/m6.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/madhouse.png b/data/interfaces/default/images/media_flags/studio/madhouse.png
new file mode 100644
index 00000000..262032e4
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/madhouse.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/madman.png b/data/interfaces/default/images/media_flags/studio/madman.png
new file mode 100644
index 00000000..0d0259c0
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/madman.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/magnolia_pictures.png b/data/interfaces/default/images/media_flags/studio/magnolia_pictures.png
new file mode 100644
index 00000000..f9ed0deb
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/magnolia_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/mandalay_pictures.png b/data/interfaces/default/images/media_flags/studio/mandalay_pictures.png
new file mode 100644
index 00000000..e0f8ca33
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/mandalay_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/mandate_pictures.png b/data/interfaces/default/images/media_flags/studio/mandate_pictures.png
new file mode 100644
index 00000000..18e8b7c7
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/mandate_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/manga.png b/data/interfaces/default/images/media_flags/studio/manga.png
new file mode 100644
index 00000000..7111dfe1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/manga.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/marc_dorcel.png b/data/interfaces/default/images/media_flags/studio/marc_dorcel.png
new file mode 100644
index 00000000..a87cc990
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/marc_dorcel.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/marvel.png b/data/interfaces/default/images/media_flags/studio/marvel.png
new file mode 100644
index 00000000..50aaf30a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/marvel.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/maverick.png b/data/interfaces/default/images/media_flags/studio/maverick.png
new file mode 100644
index 00000000..9b5eb9db
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/maverick.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/maya_entertainment.png b/data/interfaces/default/images/media_flags/studio/maya_entertainment.png
new file mode 100644
index 00000000..0d2abcb6
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/maya_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/mbs.png b/data/interfaces/default/images/media_flags/studio/mbs.png
new file mode 100644
index 00000000..14253292
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/mbs.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/media8.png b/data/interfaces/default/images/media_flags/studio/media8.png
new file mode 100644
index 00000000..bcf90b0e
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/media8.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/mediapro.png b/data/interfaces/default/images/media_flags/studio/mediapro.png
new file mode 100644
index 00000000..6731475b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/mediapro.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/meridian_films.png b/data/interfaces/default/images/media_flags/studio/meridian_films.png
new file mode 100644
index 00000000..f8b5e18a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/meridian_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/mgm.png b/data/interfaces/default/images/media_flags/studio/mgm.png
new file mode 100644
index 00000000..017c1a02
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/mgm.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/mibac.png b/data/interfaces/default/images/media_flags/studio/mibac.png
new file mode 100644
index 00000000..568eab4d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/mibac.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/midway_pictures.png b/data/interfaces/default/images/media_flags/studio/midway_pictures.png
new file mode 100644
index 00000000..fee131e1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/midway_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/mike_zoss_productions.png b/data/interfaces/default/images/media_flags/studio/mike_zoss_productions.png
new file mode 100644
index 00000000..7c25922f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/mike_zoss_productions.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/milkshake.png b/data/interfaces/default/images/media_flags/studio/milkshake.png
new file mode 100644
index 00000000..c35b9747
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/milkshake.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/millennium_films.png b/data/interfaces/default/images/media_flags/studio/millennium_films.png
new file mode 100644
index 00000000..2bbac300
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/millennium_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/minds_eye_entertainment.png b/data/interfaces/default/images/media_flags/studio/minds_eye_entertainment.png
new file mode 100644
index 00000000..2ab1832a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/minds_eye_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/mirage.png b/data/interfaces/default/images/media_flags/studio/mirage.png
new file mode 100644
index 00000000..804a2194
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/mirage.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/miramax.png b/data/interfaces/default/images/media_flags/studio/miramax.png
new file mode 100644
index 00000000..6f24ac8f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/miramax.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/momentum_pictures.png b/data/interfaces/default/images/media_flags/studio/momentum_pictures.png
new file mode 100644
index 00000000..f14d1230
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/momentum_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/monarch_pictures.png b/data/interfaces/default/images/media_flags/studio/monarch_pictures.png
new file mode 100644
index 00000000..e3ec96aa
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/monarch_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/monolith.png b/data/interfaces/default/images/media_flags/studio/monolith.png
new file mode 100644
index 00000000..fb2b673d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/monolith.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/montecito_picture_company.png b/data/interfaces/default/images/media_flags/studio/montecito_picture_company.png
new file mode 100644
index 00000000..34c8893b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/montecito_picture_company.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/morgan_creek.png b/data/interfaces/default/images/media_flags/studio/morgan_creek.png
new file mode 100644
index 00000000..7acc99f1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/morgan_creek.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/mosaic_media.png b/data/interfaces/default/images/media_flags/studio/mosaic_media.png
new file mode 100644
index 00000000..c86719be
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/mosaic_media.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/mosfilm.png b/data/interfaces/default/images/media_flags/studio/mosfilm.png
new file mode 100644
index 00000000..5b903269
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/mosfilm.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/mpca.png b/data/interfaces/default/images/media_flags/studio/mpca.png
new file mode 100644
index 00000000..625b02c1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/mpca.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/msnbc.png b/data/interfaces/default/images/media_flags/studio/msnbc.png
new file mode 100644
index 00000000..6ab945f3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/msnbc.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/mtv.png b/data/interfaces/default/images/media_flags/studio/mtv.png
new file mode 100644
index 00000000..c3e284a2
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/mtv.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/mtv3.png b/data/interfaces/default/images/media_flags/studio/mtv3.png
new file mode 100644
index 00000000..3932c9c5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/mtv3.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/musashi_films.png b/data/interfaces/default/images/media_flags/studio/musashi_films.png
new file mode 100644
index 00000000..62ae33bf
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/musashi_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/mutual_film_company.png b/data/interfaces/default/images/media_flags/studio/mutual_film_company.png
new file mode 100644
index 00000000..92a2dcd3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/mutual_film_company.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/myriad.png b/data/interfaces/default/images/media_flags/studio/myriad.png
new file mode 100644
index 00000000..1377f441
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/myriad.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/mytv.png b/data/interfaces/default/images/media_flags/studio/mytv.png
new file mode 100644
index 00000000..d06cbeef
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/mytv.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/nala.png b/data/interfaces/default/images/media_flags/studio/nala.png
new file mode 100644
index 00000000..d5fd973d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/nala.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/nat_geo_wild.png b/data/interfaces/default/images/media_flags/studio/nat_geo_wild.png
new file mode 100644
index 00000000..15ecfa80
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/nat_geo_wild.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/national_general_pictures.png b/data/interfaces/default/images/media_flags/studio/national_general_pictures.png
new file mode 100644
index 00000000..4285a2f8
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/national_general_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/nbc.png b/data/interfaces/default/images/media_flags/studio/nbc.png
new file mode 100644
index 00000000..b4653dea
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/nbc.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/nbc_universal.png b/data/interfaces/default/images/media_flags/studio/nbc_universal.png
new file mode 100644
index 00000000..55e0fd68
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/nbc_universal.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/nelvana.png b/data/interfaces/default/images/media_flags/studio/nelvana.png
new file mode 100644
index 00000000..8a945529
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/nelvana.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/netflix.png b/data/interfaces/default/images/media_flags/studio/netflix.png
new file mode 100644
index 00000000..869b833a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/netflix.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/new_deal_entertainment.png b/data/interfaces/default/images/media_flags/studio/new_deal_entertainment.png
new file mode 100644
index 00000000..c19d584f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/new_deal_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/new_line_cinema.png b/data/interfaces/default/images/media_flags/studio/new_line_cinema.png
new file mode 100644
index 00000000..ddf7a9c2
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/new_line_cinema.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/new_zealand_film_commission.png b/data/interfaces/default/images/media_flags/studio/new_zealand_film_commission.png
new file mode 100644
index 00000000..9cfac285
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/new_zealand_film_commission.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/newmarket.png b/data/interfaces/default/images/media_flags/studio/newmarket.png
new file mode 100644
index 00000000..f76ade93
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/newmarket.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/ngc.png b/data/interfaces/default/images/media_flags/studio/ngc.png
new file mode 100644
index 00000000..833e2877
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/ngc.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/nick_at_nite.png b/data/interfaces/default/images/media_flags/studio/nick_at_nite.png
new file mode 100644
index 00000000..8878ac0b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/nick_at_nite.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/nick_jr.png b/data/interfaces/default/images/media_flags/studio/nick_jr.png
new file mode 100644
index 00000000..451ef185
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/nick_jr.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/nickelodeon.png b/data/interfaces/default/images/media_flags/studio/nickelodeon.png
new file mode 100644
index 00000000..02b94739
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/nickelodeon.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/nicktoons.png b/data/interfaces/default/images/media_flags/studio/nicktoons.png
new file mode 100644
index 00000000..1153e7d0
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/nicktoons.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/nine network.png b/data/interfaces/default/images/media_flags/studio/nine network.png
new file mode 100644
index 00000000..4a581fd3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/nine network.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/nord_ouest.png b/data/interfaces/default/images/media_flags/studio/nord_ouest.png
new file mode 100644
index 00000000..cd7e45c4
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/nord_ouest.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/nordisk film.png b/data/interfaces/default/images/media_flags/studio/nordisk film.png
new file mode 100644
index 00000000..3b3dd6ea
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/nordisk film.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/northern_lights_entertainment.png b/data/interfaces/default/images/media_flags/studio/northern_lights_entertainment.png
new file mode 100644
index 00000000..7309fa53
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/northern_lights_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/nothing.png b/data/interfaces/default/images/media_flags/studio/nothing.png
new file mode 100644
index 00000000..d1bb705f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/nothing.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/nrk1.png b/data/interfaces/default/images/media_flags/studio/nrk1.png
new file mode 100644
index 00000000..d34d1d0c
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/nrk1.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/nuimage.png b/data/interfaces/default/images/media_flags/studio/nuimage.png
new file mode 100644
index 00000000..43a2596b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/nuimage.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/o2_filmes.png b/data/interfaces/default/images/media_flags/studio/o2_filmes.png
new file mode 100644
index 00000000..5c49f3be
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/o2_filmes.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/oddlot.png b/data/interfaces/default/images/media_flags/studio/oddlot.png
new file mode 100644
index 00000000..b06be305
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/oddlot.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/oko.png b/data/interfaces/default/images/media_flags/studio/oko.png
new file mode 100644
index 00000000..1be7e351
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/oko.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/only_vegas.png b/data/interfaces/default/images/media_flags/studio/only_vegas.png
new file mode 100644
index 00000000..0a50dd44
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/only_vegas.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/oprah_winfrey_network.png b/data/interfaces/default/images/media_flags/studio/oprah_winfrey_network.png
new file mode 100644
index 00000000..fdac122d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/oprah_winfrey_network.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/orf.png b/data/interfaces/default/images/media_flags/studio/orf.png
new file mode 100644
index 00000000..d10c4c9a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/orf.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/orion.png b/data/interfaces/default/images/media_flags/studio/orion.png
new file mode 100644
index 00000000..53bb6842
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/orion.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/overturefilms.png b/data/interfaces/default/images/media_flags/studio/overturefilms.png
new file mode 100644
index 00000000..699accc0
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/overturefilms.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/pa_works.png b/data/interfaces/default/images/media_flags/studio/pa_works.png
new file mode 100644
index 00000000..866e807d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/pa_works.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/pan_vision.png b/data/interfaces/default/images/media_flags/studio/pan_vision.png
new file mode 100644
index 00000000..af729ee8
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/pan_vision.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/pandora_film.png b/data/interfaces/default/images/media_flags/studio/pandora_film.png
new file mode 100644
index 00000000..5f1a6664
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/pandora_film.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/paramount_classics.png b/data/interfaces/default/images/media_flags/studio/paramount_classics.png
new file mode 100644
index 00000000..5934be36
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/paramount_classics.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/paramount_pictures.png b/data/interfaces/default/images/media_flags/studio/paramount_pictures.png
new file mode 100644
index 00000000..e40f5dda
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/paramount_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/paramount_vantage.png b/data/interfaces/default/images/media_flags/studio/paramount_vantage.png
new file mode 100644
index 00000000..f4ab942f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/paramount_vantage.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/participant.png b/data/interfaces/default/images/media_flags/studio/participant.png
new file mode 100644
index 00000000..280b3cde
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/participant.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/pathe.png b/data/interfaces/default/images/media_flags/studio/pathe.png
new file mode 100644
index 00000000..6cb91a08
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/pathe.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/pbs.png b/data/interfaces/default/images/media_flags/studio/pbs.png
new file mode 100644
index 00000000..d9e4abd3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/pbs.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/peacearch.png b/data/interfaces/default/images/media_flags/studio/peacearch.png
new file mode 100644
index 00000000..23b29f3d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/peacearch.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/pecf.png b/data/interfaces/default/images/media_flags/studio/pecf.png
new file mode 100644
index 00000000..309c3d02
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/pecf.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/peters_entertainment2.png b/data/interfaces/default/images/media_flags/studio/peters_entertainment2.png
new file mode 100644
index 00000000..989347b5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/peters_entertainment2.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/phase_4_films.png b/data/interfaces/default/images/media_flags/studio/phase_4_films.png
new file mode 100644
index 00000000..d9a75137
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/phase_4_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/pheonix.png b/data/interfaces/default/images/media_flags/studio/pheonix.png
new file mode 100644
index 00000000..cbf0c03b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/pheonix.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/picturehouse.png b/data/interfaces/default/images/media_flags/studio/picturehouse.png
new file mode 100644
index 00000000..7e007eb5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/picturehouse.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/pisf.png b/data/interfaces/default/images/media_flags/studio/pisf.png
new file mode 100644
index 00000000..1e40b8fd
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/pisf.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/pixar.png b/data/interfaces/default/images/media_flags/studio/pixar.png
new file mode 100644
index 00000000..f7c1e7fc
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/pixar.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/plan_b.png b/data/interfaces/default/images/media_flags/studio/plan_b.png
new file mode 100644
index 00000000..3726cc5b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/plan_b.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/platige.png b/data/interfaces/default/images/media_flags/studio/platige.png
new file mode 100644
index 00000000..9f612e7a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/platige.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/platinum_dunes.png b/data/interfaces/default/images/media_flags/studio/platinum_dunes.png
new file mode 100644
index 00000000..c15ef757
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/platinum_dunes.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/play_uk.png b/data/interfaces/default/images/media_flags/studio/play_uk.png
new file mode 100644
index 00000000..ecdc6040
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/play_uk.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/playstation_network.png b/data/interfaces/default/images/media_flags/studio/playstation_network.png
new file mode 100644
index 00000000..72c05764
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/playstation_network.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/playtone.png b/data/interfaces/default/images/media_flags/studio/playtone.png
new file mode 100644
index 00000000..b3b2e57c
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/playtone.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/polsat.png b/data/interfaces/default/images/media_flags/studio/polsat.png
new file mode 100644
index 00000000..9e6fad94
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/polsat.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/polygram.png b/data/interfaces/default/images/media_flags/studio/polygram.png
new file mode 100644
index 00000000..d8cc9764
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/polygram.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/pop.png b/data/interfaces/default/images/media_flags/studio/pop.png
new file mode 100644
index 00000000..24b4802a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/pop.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/porchlight.png b/data/interfaces/default/images/media_flags/studio/porchlight.png
new file mode 100644
index 00000000..30340134
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/porchlight.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/portman_film.png b/data/interfaces/default/images/media_flags/studio/portman_film.png
new file mode 100644
index 00000000..e9006673
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/portman_film.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/premiere direkt.png b/data/interfaces/default/images/media_flags/studio/premiere direkt.png
new file mode 100644
index 00000000..70e1c874
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/premiere direkt.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/premiere.png b/data/interfaces/default/images/media_flags/studio/premiere.png
new file mode 100644
index 00000000..1b12d671
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/premiere.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/private_pictures.png b/data/interfaces/default/images/media_flags/studio/private_pictures.png
new file mode 100644
index 00000000..5b15f7cc
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/private_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/pro7.png b/data/interfaces/default/images/media_flags/studio/pro7.png
new file mode 100644
index 00000000..5904c4f9
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/pro7.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/production_i_g.png b/data/interfaces/default/images/media_flags/studio/production_i_g.png
new file mode 100644
index 00000000..e3622cb1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/production_i_g.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/profilm_productions.png b/data/interfaces/default/images/media_flags/studio/profilm_productions.png
new file mode 100644
index 00000000..c817e7f1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/profilm_productions.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/promotion_pictures.png b/data/interfaces/default/images/media_flags/studio/promotion_pictures.png
new file mode 100644
index 00000000..e82ad26a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/promotion_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/prosieben.png b/data/interfaces/default/images/media_flags/studio/prosieben.png
new file mode 100644
index 00000000..5904c4f9
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/prosieben.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/radical_media.png b/data/interfaces/default/images/media_flags/studio/radical_media.png
new file mode 100644
index 00000000..860f9945
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/radical_media.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/rai_cinema.png b/data/interfaces/default/images/media_flags/studio/rai_cinema.png
new file mode 100644
index 00000000..0b7c07f4
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/rai_cinema.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/rankin.png b/data/interfaces/default/images/media_flags/studio/rankin.png
new file mode 100644
index 00000000..5d4ea3db
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/rankin.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/ratpac_dune_entertainment.png b/data/interfaces/default/images/media_flags/studio/ratpac_dune_entertainment.png
new file mode 100644
index 00000000..41dcb7b5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/ratpac_dune_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/ratpac_entertainment.png b/data/interfaces/default/images/media_flags/studio/ratpac_entertainment.png
new file mode 100644
index 00000000..a3728248
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/ratpac_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/red_hour.png b/data/interfaces/default/images/media_flags/studio/red_hour.png
new file mode 100644
index 00000000..10795b35
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/red_hour.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/red_wagon_entertainment.png b/data/interfaces/default/images/media_flags/studio/red_wagon_entertainment.png
new file mode 100644
index 00000000..ea1f0626
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/red_wagon_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/redrum.png b/data/interfaces/default/images/media_flags/studio/redrum.png
new file mode 100644
index 00000000..6ec2b1fb
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/redrum.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/reel_dog_productions.png b/data/interfaces/default/images/media_flags/studio/reel_dog_productions.png
new file mode 100644
index 00000000..fde7afcc
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/reel_dog_productions.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/regency.png b/data/interfaces/default/images/media_flags/studio/regency.png
new file mode 100644
index 00000000..436273f2
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/regency.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/relativity_media.png b/data/interfaces/default/images/media_flags/studio/relativity_media.png
new file mode 100644
index 00000000..ddf671e5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/relativity_media.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/renaissance_films.png b/data/interfaces/default/images/media_flags/studio/renaissance_films.png
new file mode 100644
index 00000000..16ee415a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/renaissance_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/republic_pictures.png b/data/interfaces/default/images/media_flags/studio/republic_pictures.png
new file mode 100644
index 00000000..f48a57fa
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/republic_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/resident_evil.png b/data/interfaces/default/images/media_flags/studio/resident_evil.png
new file mode 100644
index 00000000..5124a8f1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/resident_evil.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/revere_pictures.png b/data/interfaces/default/images/media_flags/studio/revere_pictures.png
new file mode 100644
index 00000000..bf2620da
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/revere_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/revision3.png b/data/interfaces/default/images/media_flags/studio/revision3.png
new file mode 100644
index 00000000..54e1fc38
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/revision3.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/revolution_studios.png b/data/interfaces/default/images/media_flags/studio/revolution_studios.png
new file mode 100644
index 00000000..f0511a11
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/revolution_studios.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/rhombus.png b/data/interfaces/default/images/media_flags/studio/rhombus.png
new file mode 100644
index 00000000..51d60d4a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/rhombus.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/rick_mill.png b/data/interfaces/default/images/media_flags/studio/rick_mill.png
new file mode 100644
index 00000000..900b85cd
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/rick_mill.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/rickety_shack_films.png b/data/interfaces/default/images/media_flags/studio/rickety_shack_films.png
new file mode 100644
index 00000000..3bebcbd1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/rickety_shack_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/river_road_entertainment.png b/data/interfaces/default/images/media_flags/studio/river_road_entertainment.png
new file mode 100644
index 00000000..b6b5d854
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/river_road_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/rko_radio_pictures.png b/data/interfaces/default/images/media_flags/studio/rko_radio_pictures.png
new file mode 100644
index 00000000..bf1382e7
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/rko_radio_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/roadside_attractions.png b/data/interfaces/default/images/media_flags/studio/roadside_attractions.png
new file mode 100644
index 00000000..758cc039
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/roadside_attractions.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/rogue_pictures.png b/data/interfaces/default/images/media_flags/studio/rogue_pictures.png
new file mode 100644
index 00000000..4c7e536f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/rogue_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/romar.png b/data/interfaces/default/images/media_flags/studio/romar.png
new file mode 100644
index 00000000..7281db42
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/romar.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/rte_one.png b/data/interfaces/default/images/media_flags/studio/rte_one.png
new file mode 100644
index 00000000..d1e6403f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/rte_one.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/rtl.png b/data/interfaces/default/images/media_flags/studio/rtl.png
new file mode 100644
index 00000000..eaa07c48
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/rtl.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/rtl4.png b/data/interfaces/default/images/media_flags/studio/rtl4.png
new file mode 100644
index 00000000..b861a93c
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/rtl4.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/rtl5.png b/data/interfaces/default/images/media_flags/studio/rtl5.png
new file mode 100644
index 00000000..f9b208be
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/rtl5.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/rtl7.png b/data/interfaces/default/images/media_flags/studio/rtl7.png
new file mode 100644
index 00000000..2f622b02
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/rtl7.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/rtl8.png b/data/interfaces/default/images/media_flags/studio/rtl8.png
new file mode 100644
index 00000000..99bf9b29
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/rtl8.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/rtl_ii.png b/data/interfaces/default/images/media_flags/studio/rtl_ii.png
new file mode 100644
index 00000000..9d0d7e29
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/rtl_ii.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/rysher_entertainment.png b/data/interfaces/default/images/media_flags/studio/rysher_entertainment.png
new file mode 100644
index 00000000..f9c07b82
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/rysher_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/saban.png b/data/interfaces/default/images/media_flags/studio/saban.png
new file mode 100644
index 00000000..aae809c5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/saban.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/salter_street_films.png b/data/interfaces/default/images/media_flags/studio/salter_street_films.png
new file mode 100644
index 00000000..e2d766e5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/salter_street_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/sandrew.png b/data/interfaces/default/images/media_flags/studio/sandrew.png
new file mode 100644
index 00000000..b35017d5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/sandrew.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/sat1.png b/data/interfaces/default/images/media_flags/studio/sat1.png
new file mode 100644
index 00000000..c4a21a56
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/sat1.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/saturn_films.png b/data/interfaces/default/images/media_flags/studio/saturn_films.png
new file mode 100644
index 00000000..18c28e51
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/saturn_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/saul_zaentz.png b/data/interfaces/default/images/media_flags/studio/saul_zaentz.png
new file mode 100644
index 00000000..3a6b4090
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/saul_zaentz.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/sbs.png b/data/interfaces/default/images/media_flags/studio/sbs.png
new file mode 100644
index 00000000..ea63f1c2
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/sbs.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/scholastic.png b/data/interfaces/default/images/media_flags/studio/scholastic.png
new file mode 100644
index 00000000..a4b050ef
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/scholastic.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/scifi.png b/data/interfaces/default/images/media_flags/studio/scifi.png
new file mode 100644
index 00000000..ef5d9a1d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/scifi.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/scott_free.png b/data/interfaces/default/images/media_flags/studio/scott_free.png
new file mode 100644
index 00000000..736e0615
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/scott_free.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/screen_australia.png b/data/interfaces/default/images/media_flags/studio/screen_australia.png
new file mode 100644
index 00000000..a170c6f4
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/screen_australia.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/screen_gems.png b/data/interfaces/default/images/media_flags/studio/screen_gems.png
new file mode 100644
index 00000000..a4f3bbe6
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/screen_gems.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/seeso.png b/data/interfaces/default/images/media_flags/studio/seeso.png
new file mode 100644
index 00000000..e4ca56d5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/seeso.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/selznick_pictures.png b/data/interfaces/default/images/media_flags/studio/selznick_pictures.png
new file mode 100644
index 00000000..dda675e4
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/selznick_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/semafor.png b/data/interfaces/default/images/media_flags/studio/semafor.png
new file mode 100644
index 00000000..692355dc
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/semafor.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/seven network.png b/data/interfaces/default/images/media_flags/studio/seven network.png
new file mode 100644
index 00000000..c9c620d3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/seven network.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/sfi.png b/data/interfaces/default/images/media_flags/studio/sfi.png
new file mode 100644
index 00000000..32f7042c
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/sfi.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/shady_acres_entertainment.png b/data/interfaces/default/images/media_flags/studio/shady_acres_entertainment.png
new file mode 100644
index 00000000..d30752be
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/shady_acres_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/shaft.png b/data/interfaces/default/images/media_flags/studio/shaft.png
new file mode 100644
index 00000000..fa782c62
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/shaft.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/shangri-la_entertainment.png b/data/interfaces/default/images/media_flags/studio/shangri-la_entertainment.png
new file mode 100644
index 00000000..45e224ae
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/shangri-la_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/shout_factory.png b/data/interfaces/default/images/media_flags/studio/shout_factory.png
new file mode 100644
index 00000000..5ded67bb
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/shout_factory.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/showcase.png b/data/interfaces/default/images/media_flags/studio/showcase.png
new file mode 100644
index 00000000..e4546100
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/showcase.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/showcase_au.png b/data/interfaces/default/images/media_flags/studio/showcase_au.png
new file mode 100644
index 00000000..8ada90e8
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/showcase_au.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/showtime.png b/data/interfaces/default/images/media_flags/studio/showtime.png
new file mode 100644
index 00000000..c92b0a4e
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/showtime.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/sidney_kimmel.png b/data/interfaces/default/images/media_flags/studio/sidney_kimmel.png
new file mode 100644
index 00000000..835e3626
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/sidney_kimmel.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/silver_pictures.png b/data/interfaces/default/images/media_flags/studio/silver_pictures.png
new file mode 100644
index 00000000..e35e5d57
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/silver_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/sky.png b/data/interfaces/default/images/media_flags/studio/sky.png
new file mode 100644
index 00000000..3f582621
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/sky.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/sky_1.png b/data/interfaces/default/images/media_flags/studio/sky_1.png
new file mode 100644
index 00000000..0aedb3e8
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/sky_1.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/skydance_productions.png b/data/interfaces/default/images/media_flags/studio/skydance_productions.png
new file mode 100644
index 00000000..31ac3f18
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/skydance_productions.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/slim_films.png b/data/interfaces/default/images/media_flags/studio/slim_films.png
new file mode 100644
index 00000000..1a146a02
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/slim_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/smc.png b/data/interfaces/default/images/media_flags/studio/smc.png
new file mode 100644
index 00000000..94600e72
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/smc.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/snl_studios.png b/data/interfaces/default/images/media_flags/studio/snl_studios.png
new file mode 100644
index 00000000..00bb39f8
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/snl_studios.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/sobini_films.png b/data/interfaces/default/images/media_flags/studio/sobini_films.png
new file mode 100644
index 00000000..b6d3436a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/sobini_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/sony.png b/data/interfaces/default/images/media_flags/studio/sony.png
new file mode 100644
index 00000000..b58aabae
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/sony.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/sony_pictures.png b/data/interfaces/default/images/media_flags/studio/sony_pictures.png
new file mode 100644
index 00000000..b58aabae
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/sony_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/sony_pictures_animation.png b/data/interfaces/default/images/media_flags/studio/sony_pictures_animation.png
new file mode 100644
index 00000000..a8c732cc
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/sony_pictures_animation.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/space.png b/data/interfaces/default/images/media_flags/studio/space.png
new file mode 100644
index 00000000..4a0e24ab
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/space.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/spelling_films.png b/data/interfaces/default/images/media_flags/studio/spelling_films.png
new file mode 100644
index 00000000..0560ed85
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/spelling_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/spike.png b/data/interfaces/default/images/media_flags/studio/spike.png
new file mode 100644
index 00000000..3fb70868
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/spike.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/spitfire_pictures.png b/data/interfaces/default/images/media_flags/studio/spitfire_pictures.png
new file mode 100644
index 00000000..086a7f4b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/spitfire_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/splendid.png b/data/interfaces/default/images/media_flags/studio/splendid.png
new file mode 100644
index 00000000..9c449a3e
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/splendid.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/spyglass_entertainment.png b/data/interfaces/default/images/media_flags/studio/spyglass_entertainment.png
new file mode 100644
index 00000000..a7d7026d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/spyglass_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/squareenix.png b/data/interfaces/default/images/media_flags/studio/squareenix.png
new file mode 100644
index 00000000..60fee92d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/squareenix.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/stage6.png b/data/interfaces/default/images/media_flags/studio/stage6.png
new file mode 100644
index 00000000..c5fa11b2
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/stage6.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/stan.png b/data/interfaces/default/images/media_flags/studio/stan.png
new file mode 100644
index 00000000..6e229e52
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/stan.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/starbucks_entertainment.png b/data/interfaces/default/images/media_flags/studio/starbucks_entertainment.png
new file mode 100644
index 00000000..aaf3c8e0
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/starbucks_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/starz.png b/data/interfaces/default/images/media_flags/studio/starz.png
new file mode 100644
index 00000000..1737ceac
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/starz.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/steele.png b/data/interfaces/default/images/media_flags/studio/steele.png
new file mode 100644
index 00000000..d2aadcbf
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/steele.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/storyline.png b/data/interfaces/default/images/media_flags/studio/storyline.png
new file mode 100644
index 00000000..0ee21d89
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/storyline.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/studio_canal.png b/data/interfaces/default/images/media_flags/studio/studio_canal.png
new file mode 100644
index 00000000..b0533443
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/studio_canal.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/studio_ghibli.png b/data/interfaces/default/images/media_flags/studio/studio_ghibli.png
new file mode 100644
index 00000000..ab13b5a5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/studio_ghibli.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/summit.png b/data/interfaces/default/images/media_flags/studio/summit.png
new file mode 100644
index 00000000..d4099701
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/summit.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/sundancetv.png b/data/interfaces/default/images/media_flags/studio/sundancetv.png
new file mode 100644
index 00000000..3b4a6fb9
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/sundancetv.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/sunrise.png b/data/interfaces/default/images/media_flags/studio/sunrise.png
new file mode 100644
index 00000000..ebbd9cc7
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/sunrise.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/super_channel.png b/data/interfaces/default/images/media_flags/studio/super_channel.png
new file mode 100644
index 00000000..1c840cbf
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/super_channel.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/svensk_filmindustri.png b/data/interfaces/default/images/media_flags/studio/svensk_filmindustri.png
new file mode 100644
index 00000000..3f1bebc0
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/svensk_filmindustri.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/svt.png b/data/interfaces/default/images/media_flags/studio/svt.png
new file mode 100644
index 00000000..fa10d579
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/svt.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/svt1.png b/data/interfaces/default/images/media_flags/studio/svt1.png
new file mode 100644
index 00000000..f536aa45
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/svt1.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/svt2.png b/data/interfaces/default/images/media_flags/studio/svt2.png
new file mode 100644
index 00000000..1e2901af
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/svt2.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/syfy.png b/data/interfaces/default/images/media_flags/studio/syfy.png
new file mode 100644
index 00000000..bb8da0d9
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/syfy.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/syncopy.png b/data/interfaces/default/images/media_flags/studio/syncopy.png
new file mode 100644
index 00000000..a26b8944
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/syncopy.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/syrena.png b/data/interfaces/default/images/media_flags/studio/syrena.png
new file mode 100644
index 00000000..09272817
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/syrena.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/tandem.png b/data/interfaces/default/images/media_flags/studio/tandem.png
new file mode 100644
index 00000000..fb498793
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/tandem.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/taurus_film.png b/data/interfaces/default/images/media_flags/studio/taurus_film.png
new file mode 100644
index 00000000..c6546a84
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/taurus_film.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/tbs.png b/data/interfaces/default/images/media_flags/studio/tbs.png
new file mode 100644
index 00000000..74209c52
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/tbs.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/telecinco.png b/data/interfaces/default/images/media_flags/studio/telecinco.png
new file mode 100644
index 00000000..217d5d18
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/telecinco.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/telemundo.png b/data/interfaces/default/images/media_flags/studio/telemundo.png
new file mode 100644
index 00000000..05e58ab1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/telemundo.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/teletoon.png b/data/interfaces/default/images/media_flags/studio/teletoon.png
new file mode 100644
index 00000000..c137e63e
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/teletoon.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/telos.png b/data/interfaces/default/images/media_flags/studio/telos.png
new file mode 100644
index 00000000..2e8f432f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/telos.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/tf1.png b/data/interfaces/default/images/media_flags/studio/tf1.png
new file mode 100644
index 00000000..897411c9
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/tf1.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/the_cw.png b/data/interfaces/default/images/media_flags/studio/the_cw.png
new file mode 100644
index 00000000..ae5a8ed4
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/the_cw.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/the_entertainment_group.png b/data/interfaces/default/images/media_flags/studio/the_entertainment_group.png
new file mode 100644
index 00000000..9f7647ca
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/the_entertainment_group.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/the_film_foundry.png b/data/interfaces/default/images/media_flags/studio/the_film_foundry.png
new file mode 100644
index 00000000..90133d89
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/the_film_foundry.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/the_hub.png b/data/interfaces/default/images/media_flags/studio/the_hub.png
new file mode 100644
index 00000000..8b10991f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/the_hub.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/the_independent_film_channel.png b/data/interfaces/default/images/media_flags/studio/the_independent_film_channel.png
new file mode 100644
index 00000000..b55bf7dd
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/the_independent_film_channel.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/the_wb.png b/data/interfaces/default/images/media_flags/studio/the_wb.png
new file mode 100644
index 00000000..d2ae817b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/the_wb.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/the_wb_television_network.png b/data/interfaces/default/images/media_flags/studio/the_wb_television_network.png
new file mode 100644
index 00000000..9ec513c3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/the_wb_television_network.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/thierry_mugler.png b/data/interfaces/default/images/media_flags/studio/thierry_mugler.png
new file mode 100644
index 00000000..bd07db8c
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/thierry_mugler.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/think_film.png b/data/interfaces/default/images/media_flags/studio/think_film.png
new file mode 100644
index 00000000..c8f00035
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/think_film.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/this_is_that.png b/data/interfaces/default/images/media_flags/studio/this_is_that.png
new file mode 100644
index 00000000..c46c5763
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/this_is_that.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/tlc.png b/data/interfaces/default/images/media_flags/studio/tlc.png
new file mode 100644
index 00000000..5686d640
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/tlc.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/tnt.png b/data/interfaces/default/images/media_flags/studio/tnt.png
new file mode 100644
index 00000000..26292675
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/tnt.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/toho.png b/data/interfaces/default/images/media_flags/studio/toho.png
new file mode 100644
index 00000000..f1cf458f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/toho.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/tor.png b/data/interfaces/default/images/media_flags/studio/tor.png
new file mode 100644
index 00000000..3cdc1135
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/tor.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/touchstone.png b/data/interfaces/default/images/media_flags/studio/touchstone.png
new file mode 100644
index 00000000..3791d5f0
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/touchstone.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/tristar_pictures.png b/data/interfaces/default/images/media_flags/studio/tristar_pictures.png
new file mode 100644
index 00000000..98a7861c
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/tristar_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/trutv.png b/data/interfaces/default/images/media_flags/studio/trutv.png
new file mode 100644
index 00000000..73a393b2
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/trutv.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/turner.png b/data/interfaces/default/images/media_flags/studio/turner.png
new file mode 100644
index 00000000..e050b6d1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/turner.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/tv2.png b/data/interfaces/default/images/media_flags/studio/tv2.png
new file mode 100644
index 00000000..909debdf
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/tv2.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/tv3.png b/data/interfaces/default/images/media_flags/studio/tv3.png
new file mode 100644
index 00000000..bf8721d2
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/tv3.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/tv4.png b/data/interfaces/default/images/media_flags/studio/tv4.png
new file mode 100644
index 00000000..8106d805
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/tv4.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/tv_2.png b/data/interfaces/default/images/media_flags/studio/tv_2.png
new file mode 100644
index 00000000..af04d285
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/tv_2.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/tv_land.png b/data/interfaces/default/images/media_flags/studio/tv_land.png
new file mode 100644
index 00000000..7be8fe84
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/tv_land.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/tv_tokyo.png b/data/interfaces/default/images/media_flags/studio/tv_tokyo.png
new file mode 100644
index 00000000..415b1e08
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/tv_tokyo.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/tvn.png b/data/interfaces/default/images/media_flags/studio/tvn.png
new file mode 100644
index 00000000..4ed8fbb1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/tvn.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/tvnz.png b/data/interfaces/default/images/media_flags/studio/tvnz.png
new file mode 100644
index 00000000..e6aacd4a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/tvnz.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/tvp.png b/data/interfaces/default/images/media_flags/studio/tvp.png
new file mode 100644
index 00000000..60e1378b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/tvp.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/twisted_pictures.png b/data/interfaces/default/images/media_flags/studio/twisted_pictures.png
new file mode 100644
index 00000000..867964b5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/twisted_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/twit.png b/data/interfaces/default/images/media_flags/studio/twit.png
new file mode 100644
index 00000000..41297a91
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/twit.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/ugc.png b/data/interfaces/default/images/media_flags/studio/ugc.png
new file mode 100644
index 00000000..33016e14
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/ugc.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/uk_film_council.png b/data/interfaces/default/images/media_flags/studio/uk_film_council.png
new file mode 100644
index 00000000..882f8ede
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/uk_film_council.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/united_artists.png b/data/interfaces/default/images/media_flags/studio/united_artists.png
new file mode 100644
index 00000000..3751f0c4
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/united_artists.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/universal.png b/data/interfaces/default/images/media_flags/studio/universal.png
new file mode 100644
index 00000000..f2b8b2a3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/universal.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/univision.png b/data/interfaces/default/images/media_flags/studio/univision.png
new file mode 100644
index 00000000..8d89c452
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/univision.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/up_tv.png b/data/interfaces/default/images/media_flags/studio/up_tv.png
new file mode 100644
index 00000000..9ad6c0b1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/up_tv.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/upn.png b/data/interfaces/default/images/media_flags/studio/upn.png
new file mode 100644
index 00000000..0ae86fa8
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/upn.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/usa_network.png b/data/interfaces/default/images/media_flags/studio/usa_network.png
new file mode 100644
index 00000000..3e5de545
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/usa_network.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/vara.png b/data/interfaces/default/images/media_flags/studio/vara.png
new file mode 100644
index 00000000..12d0487e
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/vara.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/versus.png b/data/interfaces/default/images/media_flags/studio/versus.png
new file mode 100644
index 00000000..ab09d74e
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/versus.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/vertigo.png b/data/interfaces/default/images/media_flags/studio/vertigo.png
new file mode 100644
index 00000000..bd266466
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/vertigo.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/vh1.png b/data/interfaces/default/images/media_flags/studio/vh1.png
new file mode 100644
index 00000000..1865f8b7
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/vh1.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/viacom.png b/data/interfaces/default/images/media_flags/studio/viacom.png
new file mode 100644
index 00000000..bfb21006
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/viacom.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/view_askew.png b/data/interfaces/default/images/media_flags/studio/view_askew.png
new file mode 100644
index 00000000..e0e88fb9
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/view_askew.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/village_roadshow_pictures.png b/data/interfaces/default/images/media_flags/studio/village_roadshow_pictures.png
new file mode 100644
index 00000000..3aa42087
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/village_roadshow_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/vimeo.png b/data/interfaces/default/images/media_flags/studio/vimeo.png
new file mode 100644
index 00000000..77a586f9
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/vimeo.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/virtual_studios.png b/data/interfaces/default/images/media_flags/studio/virtual_studios.png
new file mode 100644
index 00000000..02c80063
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/virtual_studios.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/vital_film_works.png b/data/interfaces/default/images/media_flags/studio/vital_film_works.png
new file mode 100644
index 00000000..d89d8348
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/vital_film_works.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/viz.png b/data/interfaces/default/images/media_flags/studio/viz.png
new file mode 100644
index 00000000..8a6c3f7c
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/viz.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/vortex_entertainment.png b/data/interfaces/default/images/media_flags/studio/vortex_entertainment.png
new file mode 100644
index 00000000..ddb0301a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/vortex_entertainment.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/vox.png b/data/interfaces/default/images/media_flags/studio/vox.png
new file mode 100644
index 00000000..646b3ace
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/vox.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/vpro.png b/data/interfaces/default/images/media_flags/studio/vpro.png
new file mode 100644
index 00000000..990c9590
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/vpro.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/vtm.png b/data/interfaces/default/images/media_flags/studio/vtm.png
new file mode 100644
index 00000000..1e5a7cdc
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/vtm.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/walden_media.png b/data/interfaces/default/images/media_flags/studio/walden_media.png
new file mode 100644
index 00000000..2abe70ba
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/walden_media.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/walt_disney_pictures.png b/data/interfaces/default/images/media_flags/studio/walt_disney_pictures.png
new file mode 100644
index 00000000..e3dcefcc
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/walt_disney_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/warner_bros.png b/data/interfaces/default/images/media_flags/studio/warner_bros.png
new file mode 100644
index 00000000..abf82869
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/warner_bros.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/warner_bros_animation.png b/data/interfaces/default/images/media_flags/studio/warner_bros_animation.png
new file mode 100644
index 00000000..70d8574e
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/warner_bros_animation.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/warner_independent_pictures.png b/data/interfaces/default/images/media_flags/studio/warner_independent_pictures.png
new file mode 100644
index 00000000..5850e069
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/warner_independent_pictures.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/water_walk_productions.png b/data/interfaces/default/images/media_flags/studio/water_walk_productions.png
new file mode 100644
index 00000000..4f00f68b
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/water_walk_productions.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/wdr.png b/data/interfaces/default/images/media_flags/studio/wdr.png
new file mode 100644
index 00000000..062ed3e8
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/wdr.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/we_tv.png b/data/interfaces/default/images/media_flags/studio/we_tv.png
new file mode 100644
index 00000000..45b7c646
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/we_tv.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/weinstein_company.png b/data/interfaces/default/images/media_flags/studio/weinstein_company.png
new file mode 100644
index 00000000..351d252e
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/weinstein_company.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/wfdif.png b/data/interfaces/default/images/media_flags/studio/wfdif.png
new file mode 100644
index 00000000..57038113
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/wfdif.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/wgn.png b/data/interfaces/default/images/media_flags/studio/wgn.png
new file mode 100644
index 00000000..25495e14
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/wgn.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/wild_bunch.png b/data/interfaces/default/images/media_flags/studio/wild_bunch.png
new file mode 100644
index 00000000..d2eed5e1
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/wild_bunch.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/wild_side.png b/data/interfaces/default/images/media_flags/studio/wild_side.png
new file mode 100644
index 00000000..3ea5b075
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/wild_side.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/working_title_films.png b/data/interfaces/default/images/media_flags/studio/working_title_films.png
new file mode 100644
index 00000000..f5bd31e4
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/working_title_films.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/xfilme.png b/data/interfaces/default/images/media_flags/studio/xfilme.png
new file mode 100644
index 00000000..9461452d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/xfilme.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/xxx_productions.png b/data/interfaces/default/images/media_flags/studio/xxx_productions.png
new file mode 100644
index 00000000..7e99ff0a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/xxx_productions.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/yahoo_screen.png b/data/interfaces/default/images/media_flags/studio/yahoo_screen.png
new file mode 100644
index 00000000..2b2a65c6
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/yahoo_screen.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/yari_film_group.png b/data/interfaces/default/images/media_flags/studio/yari_film_group.png
new file mode 100644
index 00000000..f9ab4f87
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/yari_film_group.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/youtube.png b/data/interfaces/default/images/media_flags/studio/youtube.png
new file mode 100644
index 00000000..cb424f28
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/youtube.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/ytv.png b/data/interfaces/default/images/media_flags/studio/ytv.png
new file mode 100644
index 00000000..42720790
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/ytv.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/zaloom_mayfield.png b/data/interfaces/default/images/media_flags/studio/zaloom_mayfield.png
new file mode 100644
index 00000000..b51b0251
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/zaloom_mayfield.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/zdf.png b/data/interfaces/default/images/media_flags/studio/zdf.png
new file mode 100644
index 00000000..76b2ecd5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/zdf.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/zebra.png b/data/interfaces/default/images/media_flags/studio/zebra.png
new file mode 100644
index 00000000..faa68153
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/zebra.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/zentropa.png b/data/interfaces/default/images/media_flags/studio/zentropa.png
new file mode 100644
index 00000000..09d88e96
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/zentropa.png differ
diff --git a/data/interfaces/default/images/media_flags/studio/zomba.png b/data/interfaces/default/images/media_flags/studio/zomba.png
new file mode 100644
index 00000000..6948ed09
Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/zomba.png differ
diff --git a/data/interfaces/default/images/media_flags/video_codec/h264.png b/data/interfaces/default/images/media_flags/video_codec/h264.png
new file mode 100644
index 00000000..a08acf71
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_codec/h264.png differ
diff --git a/data/interfaces/default/images/media_flags/video_codec/hevc.png b/data/interfaces/default/images/media_flags/video_codec/hevc.png
new file mode 100644
index 00000000..50b904c3
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_codec/hevc.png differ
diff --git a/data/interfaces/default/images/media_flags/video_codec/mpeg1video.png b/data/interfaces/default/images/media_flags/video_codec/mpeg1video.png
new file mode 100644
index 00000000..14b212a2
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_codec/mpeg1video.png differ
diff --git a/data/interfaces/default/images/media_flags/video_codec/mpeg2video.png b/data/interfaces/default/images/media_flags/video_codec/mpeg2video.png
new file mode 100644
index 00000000..500da2bc
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_codec/mpeg2video.png differ
diff --git a/data/interfaces/default/images/media_flags/video_codec/mpeg4.png b/data/interfaces/default/images/media_flags/video_codec/mpeg4.png
new file mode 100644
index 00000000..25a47100
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_codec/mpeg4.png differ
diff --git a/data/interfaces/default/images/media_flags/video_codec/vc1.png b/data/interfaces/default/images/media_flags/video_codec/vc1.png
new file mode 100644
index 00000000..090bd055
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_codec/vc1.png differ
diff --git a/data/interfaces/default/images/media_flags/video_codec/wmv.png b/data/interfaces/default/images/media_flags/video_codec/wmv.png
new file mode 100644
index 00000000..a35d358d
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_codec/wmv.png differ
diff --git a/data/interfaces/default/images/media_flags/video_codec/wmvhd.png b/data/interfaces/default/images/media_flags/video_codec/wmvhd.png
new file mode 100644
index 00000000..3b55c2f7
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_codec/wmvhd.png differ
diff --git a/data/interfaces/default/images/media_flags/video_framerate/24p.png b/data/interfaces/default/images/media_flags/video_framerate/24p.png
new file mode 100644
index 00000000..ceadf12f
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_framerate/24p.png differ
diff --git a/data/interfaces/default/images/media_flags/video_framerate/25p.png b/data/interfaces/default/images/media_flags/video_framerate/25p.png
new file mode 100644
index 00000000..abbdfd99
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_framerate/25p.png differ
diff --git a/data/interfaces/default/images/media_flags/video_framerate/50p.png b/data/interfaces/default/images/media_flags/video_framerate/50p.png
new file mode 100644
index 00000000..d448cde7
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_framerate/50p.png differ
diff --git a/data/interfaces/default/images/media_flags/video_framerate/60p.png b/data/interfaces/default/images/media_flags/video_framerate/60p.png
new file mode 100644
index 00000000..b47edc0a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_framerate/60p.png differ
diff --git a/data/interfaces/default/images/media_flags/video_framerate/NTSC.png b/data/interfaces/default/images/media_flags/video_framerate/NTSC.png
new file mode 100644
index 00000000..831538cc
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_framerate/NTSC.png differ
diff --git a/data/interfaces/default/images/media_flags/video_framerate/PAL.png b/data/interfaces/default/images/media_flags/video_framerate/PAL.png
new file mode 100644
index 00000000..a9231045
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_framerate/PAL.png differ
diff --git a/data/interfaces/default/images/media_flags/video_resolution/1080.png b/data/interfaces/default/images/media_flags/video_resolution/1080.png
new file mode 100644
index 00000000..bf2fce9a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_resolution/1080.png differ
diff --git a/data/interfaces/default/images/media_flags/video_resolution/1080i.png b/data/interfaces/default/images/media_flags/video_resolution/1080i.png
new file mode 100644
index 00000000..0ab2e040
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_resolution/1080i.png differ
diff --git a/data/interfaces/default/images/media_flags/video_resolution/270.png b/data/interfaces/default/images/media_flags/video_resolution/270.png
new file mode 100644
index 00000000..929e1c3a
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_resolution/270.png differ
diff --git a/data/interfaces/default/images/media_flags/video_resolution/360.png b/data/interfaces/default/images/media_flags/video_resolution/360.png
new file mode 100644
index 00000000..4bb768ad
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_resolution/360.png differ
diff --git a/data/interfaces/default/images/media_flags/video_resolution/432.png b/data/interfaces/default/images/media_flags/video_resolution/432.png
new file mode 100644
index 00000000..4b42cbc9
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_resolution/432.png differ
diff --git a/data/interfaces/default/images/media_flags/video_resolution/468.png b/data/interfaces/default/images/media_flags/video_resolution/468.png
new file mode 100644
index 00000000..c388e214
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_resolution/468.png differ
diff --git a/data/interfaces/default/images/media_flags/video_resolution/480.png b/data/interfaces/default/images/media_flags/video_resolution/480.png
new file mode 100644
index 00000000..bf289855
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_resolution/480.png differ
diff --git a/data/interfaces/default/images/media_flags/video_resolution/480i.png b/data/interfaces/default/images/media_flags/video_resolution/480i.png
new file mode 100644
index 00000000..0dcf20ab
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_resolution/480i.png differ
diff --git a/data/interfaces/default/images/media_flags/video_resolution/4k.png b/data/interfaces/default/images/media_flags/video_resolution/4k.png
new file mode 100644
index 00000000..dc1630c0
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_resolution/4k.png differ
diff --git a/data/interfaces/default/images/media_flags/video_resolution/540.png b/data/interfaces/default/images/media_flags/video_resolution/540.png
new file mode 100644
index 00000000..4ff646c5
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_resolution/540.png differ
diff --git a/data/interfaces/default/images/media_flags/video_resolution/544.png b/data/interfaces/default/images/media_flags/video_resolution/544.png
new file mode 100644
index 00000000..1de821c0
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_resolution/544.png differ
diff --git a/data/interfaces/default/images/media_flags/video_resolution/576.png b/data/interfaces/default/images/media_flags/video_resolution/576.png
new file mode 100644
index 00000000..503620f8
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_resolution/576.png differ
diff --git a/data/interfaces/default/images/media_flags/video_resolution/576i.png b/data/interfaces/default/images/media_flags/video_resolution/576i.png
new file mode 100644
index 00000000..36941520
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_resolution/576i.png differ
diff --git a/data/interfaces/default/images/media_flags/video_resolution/720.png b/data/interfaces/default/images/media_flags/video_resolution/720.png
new file mode 100644
index 00000000..8a472271
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_resolution/720.png differ
diff --git a/data/interfaces/default/images/media_flags/video_resolution/8k.png b/data/interfaces/default/images/media_flags/video_resolution/8k.png
new file mode 100644
index 00000000..7fdd10ea
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_resolution/8k.png differ
diff --git a/data/interfaces/default/images/media_flags/video_resolution/hdtv.png b/data/interfaces/default/images/media_flags/video_resolution/hdtv.png
new file mode 100644
index 00000000..d4569c21
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_resolution/hdtv.png differ
diff --git a/data/interfaces/default/images/media_flags/video_resolution/sd.png b/data/interfaces/default/images/media_flags/video_resolution/sd.png
new file mode 100644
index 00000000..b68702f4
Binary files /dev/null and b/data/interfaces/default/images/media_flags/video_resolution/sd.png differ
diff --git a/data/interfaces/default/images/newsletter/newsletter-header.png b/data/interfaces/default/images/newsletter/newsletter-header.png
new file mode 100644
index 00000000..0b97a437
Binary files /dev/null and b/data/interfaces/default/images/newsletter/newsletter-header.png differ
diff --git a/data/interfaces/default/images/newsletter/view-on-plex-cover.png b/data/interfaces/default/images/newsletter/view-on-plex-cover.png
new file mode 100644
index 00000000..506848b7
Binary files /dev/null and b/data/interfaces/default/images/newsletter/view-on-plex-cover.png differ
diff --git a/data/interfaces/default/images/newsletter/view-on-plex-flat.png b/data/interfaces/default/images/newsletter/view-on-plex-flat.png
new file mode 100644
index 00000000..6875a4e8
Binary files /dev/null and b/data/interfaces/default/images/newsletter/view-on-plex-flat.png differ
diff --git a/data/interfaces/default/images/newsletter/view-on-plex-poster.png b/data/interfaces/default/images/newsletter/view-on-plex-poster.png
new file mode 100644
index 00000000..40a3e2d1
Binary files /dev/null and b/data/interfaces/default/images/newsletter/view-on-plex-poster.png differ
diff --git a/data/interfaces/default/images/platforms/android.svg b/data/interfaces/default/images/platforms/android.svg
new file mode 100644
index 00000000..d1e248d6
--- /dev/null
+++ b/data/interfaces/default/images/platforms/android.svg
@@ -0,0 +1,8 @@
+
+
+android
+
+
+
+
+
diff --git a/data/interfaces/default/images/platforms/atv.svg b/data/interfaces/default/images/platforms/atv.svg
new file mode 100644
index 00000000..72b334df
--- /dev/null
+++ b/data/interfaces/default/images/platforms/atv.svg
@@ -0,0 +1,8 @@
+
+
+atv
+
+
+
+
+
diff --git a/data/interfaces/default/images/platforms/chrome.svg b/data/interfaces/default/images/platforms/chrome.svg
new file mode 100644
index 00000000..75178524
--- /dev/null
+++ b/data/interfaces/default/images/platforms/chrome.svg
@@ -0,0 +1,8 @@
+
+
+chrome
+
+
+
+
+
diff --git a/data/interfaces/default/images/platforms/chromecast.svg b/data/interfaces/default/images/platforms/chromecast.svg
new file mode 100644
index 00000000..384d14d3
--- /dev/null
+++ b/data/interfaces/default/images/platforms/chromecast.svg
@@ -0,0 +1,8 @@
+
+
+chromecast
+
+
+
+
+
diff --git a/data/interfaces/default/images/platforms/cloudsync.svg b/data/interfaces/default/images/platforms/cloudsync.svg
new file mode 100644
index 00000000..77e3f796
--- /dev/null
+++ b/data/interfaces/default/images/platforms/cloudsync.svg
@@ -0,0 +1,6 @@
+
+
+cloudsync
+
+
+
diff --git a/data/interfaces/default/images/platforms/default.svg b/data/interfaces/default/images/platforms/default.svg
new file mode 100644
index 00000000..16ab26ac
--- /dev/null
+++ b/data/interfaces/default/images/platforms/default.svg
@@ -0,0 +1,5 @@
+
+
+plex
+
+
diff --git a/data/interfaces/default/images/platforms/dlna.svg b/data/interfaces/default/images/platforms/dlna.svg
new file mode 100644
index 00000000..04cc4707
--- /dev/null
+++ b/data/interfaces/default/images/platforms/dlna.svg
@@ -0,0 +1,5 @@
+
+
+dlna
+
+
diff --git a/data/interfaces/default/images/platforms/firefox.svg b/data/interfaces/default/images/platforms/firefox.svg
new file mode 100644
index 00000000..45e8f7cf
--- /dev/null
+++ b/data/interfaces/default/images/platforms/firefox.svg
@@ -0,0 +1,5 @@
+
+
+firefox
+
+
diff --git a/data/interfaces/default/images/platforms/gtv.svg b/data/interfaces/default/images/platforms/gtv.svg
new file mode 100644
index 00000000..83675a13
--- /dev/null
+++ b/data/interfaces/default/images/platforms/gtv.svg
@@ -0,0 +1,14 @@
+
+
+gtv
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/interfaces/default/images/platforms/ie.svg b/data/interfaces/default/images/platforms/ie.svg
new file mode 100644
index 00000000..0423a884
--- /dev/null
+++ b/data/interfaces/default/images/platforms/ie.svg
@@ -0,0 +1,5 @@
+
+
+ie
+
+
diff --git a/data/interfaces/default/images/platforms/ios.svg b/data/interfaces/default/images/platforms/ios.svg
new file mode 100644
index 00000000..6892d3db
--- /dev/null
+++ b/data/interfaces/default/images/platforms/ios.svg
@@ -0,0 +1,10 @@
+
+
+ios
+
+
+
+
+
+
+
diff --git a/data/interfaces/default/images/platforms/kodi.svg b/data/interfaces/default/images/platforms/kodi.svg
new file mode 100644
index 00000000..ba3e180c
--- /dev/null
+++ b/data/interfaces/default/images/platforms/kodi.svg
@@ -0,0 +1,8 @@
+
+
+kodi
+
+
+
+
+
diff --git a/data/interfaces/default/images/platforms/linux.svg b/data/interfaces/default/images/platforms/linux.svg
new file mode 100644
index 00000000..d084d9fd
--- /dev/null
+++ b/data/interfaces/default/images/platforms/linux.svg
@@ -0,0 +1,8 @@
+
+
+linux
+
+
+
+
+
diff --git a/data/interfaces/default/images/platforms/macos.svg b/data/interfaces/default/images/platforms/macos.svg
new file mode 100644
index 00000000..5579fcb5
--- /dev/null
+++ b/data/interfaces/default/images/platforms/macos.svg
@@ -0,0 +1,6 @@
+
+
+macOS
+
+
+
diff --git a/data/interfaces/default/images/platforms/msedge.svg b/data/interfaces/default/images/platforms/msedge.svg
new file mode 100644
index 00000000..6d835163
--- /dev/null
+++ b/data/interfaces/default/images/platforms/msedge.svg
@@ -0,0 +1,5 @@
+
+
+msedge
+
+
diff --git a/data/interfaces/default/images/platforms/opera.svg b/data/interfaces/default/images/platforms/opera.svg
new file mode 100644
index 00000000..8cb68341
--- /dev/null
+++ b/data/interfaces/default/images/platforms/opera.svg
@@ -0,0 +1,6 @@
+
+
+opera
+
+
+
diff --git a/data/interfaces/default/images/platforms/playstation.svg b/data/interfaces/default/images/platforms/playstation.svg
new file mode 100644
index 00000000..0a948c1b
--- /dev/null
+++ b/data/interfaces/default/images/platforms/playstation.svg
@@ -0,0 +1,7 @@
+
+
+playstation
+
+
+
+
diff --git a/data/interfaces/default/images/platforms/plex.svg b/data/interfaces/default/images/platforms/plex.svg
new file mode 100644
index 00000000..16ab26ac
--- /dev/null
+++ b/data/interfaces/default/images/platforms/plex.svg
@@ -0,0 +1,5 @@
+
+
+plex
+
+
diff --git a/data/interfaces/default/images/platforms/plexamp.svg b/data/interfaces/default/images/platforms/plexamp.svg
new file mode 100644
index 00000000..2ff2ee5e
--- /dev/null
+++ b/data/interfaces/default/images/platforms/plexamp.svg
@@ -0,0 +1,5 @@
+
+
+plexamp
+
+
diff --git a/data/interfaces/default/images/platforms/roku.svg b/data/interfaces/default/images/platforms/roku.svg
new file mode 100644
index 00000000..1bbe8c17
--- /dev/null
+++ b/data/interfaces/default/images/platforms/roku.svg
@@ -0,0 +1,7 @@
+
+
+roku
+
+
+
+
diff --git a/data/interfaces/default/images/platforms/safari.svg b/data/interfaces/default/images/platforms/safari.svg
new file mode 100644
index 00000000..93722050
--- /dev/null
+++ b/data/interfaces/default/images/platforms/safari.svg
@@ -0,0 +1,66 @@
+
+
+safari
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/interfaces/default/images/platforms/samsung.svg b/data/interfaces/default/images/platforms/samsung.svg
new file mode 100644
index 00000000..bbd4d25e
--- /dev/null
+++ b/data/interfaces/default/images/platforms/samsung.svg
@@ -0,0 +1,5 @@
+
+
+samsung
+
+
diff --git a/data/interfaces/default/images/platforms/synclounge.svg b/data/interfaces/default/images/platforms/synclounge.svg
new file mode 100644
index 00000000..8c45d8a2
--- /dev/null
+++ b/data/interfaces/default/images/platforms/synclounge.svg
@@ -0,0 +1,9 @@
+
+
+synclounge
+
+
+
+
+
+
diff --git a/data/interfaces/default/images/platforms/tivo.svg b/data/interfaces/default/images/platforms/tivo.svg
new file mode 100644
index 00000000..841d50d3
--- /dev/null
+++ b/data/interfaces/default/images/platforms/tivo.svg
@@ -0,0 +1,5 @@
+
+
+tivo
+
+
diff --git a/data/interfaces/default/images/platforms/wiiu.svg b/data/interfaces/default/images/platforms/wiiu.svg
new file mode 100644
index 00000000..20dafbca
--- /dev/null
+++ b/data/interfaces/default/images/platforms/wiiu.svg
@@ -0,0 +1,6 @@
+
+
+wiiu
+
+
+
diff --git a/data/interfaces/default/images/platforms/windows.svg b/data/interfaces/default/images/platforms/windows.svg
new file mode 100644
index 00000000..333f2557
--- /dev/null
+++ b/data/interfaces/default/images/platforms/windows.svg
@@ -0,0 +1,8 @@
+
+
+windows
+
+
+
+
+
diff --git a/data/interfaces/default/images/platforms/xbox.svg b/data/interfaces/default/images/platforms/xbox.svg
new file mode 100644
index 00000000..86179a61
--- /dev/null
+++ b/data/interfaces/default/images/platforms/xbox.svg
@@ -0,0 +1,8 @@
+
+
+xbox
+
+
+
+
+
diff --git a/data/interfaces/default/images/plex-logo-light-small.png b/data/interfaces/default/images/plex-logo-light-small.png
new file mode 100644
index 00000000..d2c711cd
Binary files /dev/null and b/data/interfaces/default/images/plex-logo-light-small.png differ
diff --git a/data/interfaces/default/images/plex-logo-light.svg b/data/interfaces/default/images/plex-logo-light.svg
new file mode 100644
index 00000000..46d1973f
--- /dev/null
+++ b/data/interfaces/default/images/plex-logo-light.svg
@@ -0,0 +1,26 @@
+
+
+
+ plex-logo-light
+ Created with Sketch.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data/interfaces/default/images/poster-live.png b/data/interfaces/default/images/poster-live.png
new file mode 100644
index 00000000..c27cda2c
Binary files /dev/null and b/data/interfaces/default/images/poster-live.png differ
diff --git a/data/interfaces/default/images/poster.png b/data/interfaces/default/images/poster.png
new file mode 100644
index 00000000..7eb1df47
Binary files /dev/null and b/data/interfaces/default/images/poster.png differ
diff --git a/data/interfaces/default/images/tautulli.png b/data/interfaces/default/images/tautulli.png
new file mode 100644
index 00000000..7d653d5b
Binary files /dev/null and b/data/interfaces/default/images/tautulli.png differ
diff --git a/data/interfaces/default/images/tautulli.svg b/data/interfaces/default/images/tautulli.svg
new file mode 100644
index 00000000..7e70db00
--- /dev/null
+++ b/data/interfaces/default/images/tautulli.svg
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/interfaces/default/index.html b/data/interfaces/default/index.html
new file mode 100644
index 00000000..da07eb80
--- /dev/null
+++ b/data/interfaces/default/index.html
@@ -0,0 +1,935 @@
+<%inherit file="base.html"/>
+
+<%def name="headIncludes()">
+
+%def>
+
+<%def name="body()">
+<% from plexpy import PLEX_SERVER_UP %>
+
+ % for section in config['home_sections']:
+ % if section == 'server_status':
+ % if _session['access_level'] >= 3:
+
+
+
+
Loading server status...
+
+
+
+
+ % endif
+ % elif section == 'current_activity':
+
+
+
+
+ % if PLEX_SERVER_UP:
+
Checking for activity...
+ % elif config['pms_is_cloud']:
+
Plex Cloud server is sleeping.
+ % else:
+
There was an error communicating with your Plex Server.
+ % if _session['user_group'] == 'admin':
+ Check the
logs and verify your server connection in the
settings .
+ % endif
+
+ % endif
+
+
+
+ % elif section == 'watch_stats':
+
+
+ % elif section == 'library_stats':
+
+ % elif section == 'recently_added':
+
+
+
+
+
No plex servers are enabled or online.
+
+
+
+
+ % endif
+ % endfor
+
+%def>
+
+<%def name="modalIncludes()">
+
+% if _session['user_group'] == 'admin' and config['update_show_changelog']:
+<% from plexpy.common import RELEASE %>
+
+% endif
+
+% if _session['user_group'] == 'admin':
+
+
+
+
+
+
Are you sure you want to terminate this session?
+
+
+
+
+
+
+
+
+
Terminate Message
+
+
+
+
+
+
+
+% endif
+
+
+
+
+%def>
+
+<%def name="javascriptIncludes()">
+<% from plexpy import PLEX_SERVER_UP %>
+
+
+
+
+
+
+
+
+
+% if 'server_status' in config['home_sections'] and _session['access_level'] >= 3:
+
+% endif
+% if 'current_activity' in config['home_sections'] and PLEX_SERVER_UP:
+
+% endif
+% if 'watch_stats' in config['home_sections']:
+
+% endif
+% if 'library_stats' in config['home_sections']:
+
+% endif
+% if 'recently_added' in config['home_sections'] and PLEX_SERVER_UP:
+
+% endif
+% if _session['user_group'] == 'admin' and config['update_show_changelog']:
+
+% endif
+%def>
\ No newline at end of file
diff --git a/data/interfaces/default/info.html b/data/interfaces/default/info.html
new file mode 100644
index 00000000..ec45539a
--- /dev/null
+++ b/data/interfaces/default/info.html
@@ -0,0 +1,789 @@
+<%doc>
+USAGE DOCUMENTATION :: PLEASE LEAVE THIS AT THE TOP OF THIS FILE
+
+For Mako templating syntax documentation please visit: http://docs.makotemplates.org/en/latest/
+
+Filename: info.html
+Version: 0.1
+Variable names: data [list]
+
+data :: Usable parameters (if not applicable for media type, blank value will be returned)
+
+== Global keys ==
+rating_key Returns the unique identifier for the media item.
+media_type Returns the type of media. Either 'movie', 'show', 'season', 'episode', 'artist', 'album', or 'track'.
+art Returns the location of the item's artwork
+title Returns the name of the movie, show, episode, artist, album, or track.
+duration Returns the standard runtime of the media.
+content_rating Returns the age rating for the media.
+summary Returns a brief description of the media plot.
+grandparent_title Returns the name of the show, or artist.
+parent_media_index Returns the index number of the season.
+media_index Returns the index number of the episode, or track.
+parent_thumb Returns the location of the item's thumbnail. Use with pms_image_proxy.
+writers Returns an array of writers.
+thumb Returns the location of the item's thumbnail. Use with pms_image_proxy.
+parent_title Returns the name of the show, or artist.
+rating Returns the 5 star rating value for the movie. Between 1 and 5.
+year Returns the release year of the movie, or show.
+genres Returns an array of genres.
+actors Returns an array of actors.
+directors Returns an array of directors.
+studio Returns the name of the studio.
+originally_available_at Returns the air date of the item.
+
+DOCUMENTATION :: END
+%doc>
+
+<%!
+ import re
+
+ from plexpy import notifiers
+ from plexpy.common import MEDIA_TYPE_HEADERS, MEDIA_FLAGS_AUDIO, MEDIA_FLAGS_VIDEO
+
+ # Get audio codec file
+ def af(codec):
+ for pattern, file_type in MEDIA_FLAGS_AUDIO.items():
+ if re.match(pattern, codec):
+ return file_type
+ return codec
+
+ # Get audio codec file
+ def vf(codec):
+ for pattern, file_type in MEDIA_FLAGS_VIDEO.items():
+ if re.match(pattern, codec):
+ return file_type
+ return codec
+
+ def br(text):
+ return text.replace('\n', '
')
+%>
+
+<%inherit file="base.html"/>
+
+<%def name="headIncludes()">
+
+
+
+%def>
+
+<%def name="body()">
+% if data:
+<% media_info = data['media_info'][0] if data['media_info'] else {} %>
+
+
+
+ % if _session['user_group'] == 'admin':
+
+ % endif
+
+
+
+
+
+
+ % if data['media_type'] in ('movie', 'show', 'artist', 'collection'):
+
${data['title']}
+ % elif data['media_type'] == 'season':
+
+
S${data['media_index']}
+ % elif data['media_type'] == 'episode':
+
+
${data['title']}
+
S${data['parent_media_index']} · E${data['media_index']}
+ % elif data['media_type'] == 'album':
+
+
${data['title']}
+ % elif data['media_type'] == 'track':
+
+
+
T${data['media_index']}
+ % endif
+
+
+
+
+
+ % if data['media_type'] == 'movie':
+
+ % elif data['media_type'] in ('show', 'season', 'collection'):
+
+ % elif data['media_type'] == 'episode':
+
+ % elif data['media_type'] == 'artist' or data['media_type'] == 'album':
+
+ % elif data['media_type'] == 'track':
+
+ % else:
+
+ % endif
+ % if data['media_type'] in ('movie', 'episode', 'track'):
+
+ % if data['media_type'] != 'track' and media_info['video_codec']:
+
+ % endif
+ % if data['media_type'] != 'track' and media_info['video_resolution']:
+
+ % endif
+ % if media_info['audio_codec']:
+
+ % endif
+ % if media_info['audio_channels']:
+
+ % endif
+
+ % endif
+
+
+
+ % if data['rating']:
+
+ % for i in range(0,5):
+ % if round(float(data['rating']) / 2) > i:
+
+ % else:
+
+ % endif
+ % endfor
+
+ % endif
+
+ % if data['directors']:
+ Directed by ${data['directors'][0]}
+ % endif
+
+
+ % if data['studio']:
+ Studio ${data['studio']}
+ % endif
+
+
+ % if data['media_type'] == 'movie':
+ Year ${data['year']}
+ % elif data['media_type'] == 'show':
+ Aired ${data['year']}
+ % elif data['media_type'] == 'episode':
+ Aired ${data['originally_available_at']}
+ % elif data['media_type'] == 'album' or data['media_type'] == 'track':
+ Released ${data['year']}
+ % elif data['media_type'] == 'collection':
+ Year ${data['min_year']} - ${data['max_year']}
+ % endif
+
+
+ % if data['duration']:
+ Runtime ${data['duration']} mins
+ % endif
+
+
+ % if data['content_rating']:
+ Rated ${data['content_rating']}
+ % endif
+
+
+ % if data['tagline']:
+
+ % endif
+
+
${data['summary'] | br, n}
+
+
+
+
+
+ % if data['writers']:
+
+
Written by
+
+ % for writer in data['writers']:
+ % if loop.index < 5:
+
+ ${writer}
+
+ % endif
+ % endfor
+
+
+ % endif
+ % if data['actors']:
+
+
Starring
+
+ % for actor in data['actors']:
+ % if loop.index < 5:
+
+ ${actor}
+
+ % endif
+ % endfor
+
+
+ % endif
+
+
+ % if data['genres']:
+
+
Genres
+
+ % for genre in data['genres']:
+ % if loop.index < 5:
+
+ ${genre}
+
+ % endif
+ % endfor
+
+
+ % endif
+
+
+ % if data['media_type'] == 'show':
+
+
+
+
Loading season list...
+
+
+ % elif data['media_type'] == 'season':
+
+
+
+
Loading episode list...
+
+
+ % elif data['media_type'] == 'artist':
+
+
+
+
Loading album list...
+
+
+ % elif data['media_type'] == 'album':
+
+
+
+
Loading track list...
+
+
+ % elif data['media_type'] == 'collection':
+
+
+
+
Loading movies list...
+
+
+
+
+ % endif
+ % if data['media_type'] != 'collection':
+
+
+
+
+
+
+ Delete
+ Date
+ User
+ IP Address
+ Platform
+ Player
+ Title
+ Started
+ Paused
+ Stopped
+ Duration
+
+
+
+
+
+
+
+ % endif
+
+
+
+
+% endif
+%def>
+
+<%def name="modalIncludes()">
+
+
+
+
+
+
+
+
+
+
Are you REALLY sure you want to delete history item(s)?
+
This is permanent and cannot be undone!
+
+
+
+
+
+
+
+
+
+
+
Send a recently added notification for the following:
+
+
+ % if data['media_type'] == 'movie':
+ ${data['title']} ${data['year']}
+ % elif data['media_type'] == 'show':
+ ${data['title']}
+ % elif data['media_type'] == 'season':
+ ${data['parent_title']} S${data['media_index']}
+ % elif data['media_type'] == 'episode':
+ ${data['grandparent_title']} ${data['title']} S${data['parent_media_index']} · E${data['media_index']}
+ % elif data['media_type'] == 'artist':
+ ${data['title']}
+ % elif data['media_type'] == 'album':
+ ${data['parent_title']} ${data['title']}
+ % elif data['media_type'] == 'track':
+ ${data['original_title'] or data['grandparent_title']} ${data['title']} ${data['parent_title']}
+ % endif
+
+
+
+
Select the Notification Agent
+
+
+
+ All Enabled Recently Added Notification Agents
+ % for notifier in sorted(notifiers.get_notifiers(), key=lambda k: (k['agent_label'], k['friendly_name'], k['id'])):
+ % if notifier['friendly_name']:
+ ${notifier['agent_label']} (${notifier['id']} - ${notifier['friendly_name']})
+ % else:
+ ${notifier['agent_label']} (${notifier['id']})
+ % endif
+ % endfor
+
+
+
Note: All custom notification conditions will be bypassed.
+
+
+
+
+
+
+%def>
+
+<%def name="javascriptIncludes()">
+
+
+
+
+
+
+% if data:
+
+% if data['media_type'] in ('show', 'artist'):
+
+% elif data['media_type'] in ('season', 'album'):
+
+% elif data['media_type'] in ('movie', 'episode', 'track'):
+
+% endif
+% if data['media_type'] != 'collection':
+
+% endif
+% if data['media_type'] in ('show', 'season', 'artist', 'album', 'collection'):
+
+% endif
+% if data['media_type'] == 'collection':
+
+% endif
+
+% if data.get('poster_url'):
+
+% endif
+% if data.get('tvmaze_id') or data.get('themoviedb_id'):
+
+% endif
+% endif
+%def>
diff --git a/data/interfaces/default/info_children_list.html b/data/interfaces/default/info_children_list.html
new file mode 100644
index 00000000..bb613036
--- /dev/null
+++ b/data/interfaces/default/info_children_list.html
@@ -0,0 +1,156 @@
+<%doc>
+USAGE DOCUMENTATION :: PLEASE LEAVE THIS AT THE TOP OF THIS FILE
+
+For Mako templating syntax documentation please visit: http://docs.makotemplates.org/en/latest/
+
+Filename: info_children_list.html
+Version: 0.1
+Variable names: data [list]
+
+data :: Usable parameters
+
+== Global keys ==
+children_type Returns the type of children in the array.
+children_count Returns the number of episodes in the array.
+children_list Returns an array of episodes.
+
+data['children_list'] :: Usable paramaters
+
+== Global keys ==
+rating_key Returns the unique identifier for the media item.
+media_index Returns the episode number.
+title Returns the name of the episode.
+thumb Returns the location of the item's thumbnail. Use with pms_image_proxy.
+parent_thumb Returns the location of the item's parent thumbnail. Use with pms_image_proxy.
+
+DOCUMENTATION :: END
+%doc>
+
+% if data != None:
+% if int(data['children_count']) > 0:
+
+
+ % for child in data['children_list']:
+ % if child['rating_key']:
+ % if data['children_type'] == 'track':
+
+ % else:
+
+ % endif
+ % if data['children_type'] == 'movie':
+
+
+
+ % if _session['user_group'] == 'admin':
+
+ % endif
+
+
+
+ % elif data['children_type'] == 'show':
+
+
+
+ % if _session['user_group'] == 'admin':
+
+ % endif
+
+
+
+ % elif data['children_type'] == 'season':
+
+
+ % if child['thumb']:
+
+ % else:
+
+ % endif
+
+
+ Season ${child['media_index']}
+
+
+
+ % if _session['user_group'] == 'admin':
+
+ % endif
+
+
+ % elif data['children_type'] == 'episode':
+
+
+
+
+
+ Episode ${child['media_index'] or child['originally_available_at']}
+
+
+
+ % if _session['user_group'] == 'admin':
+
+ % endif
+
+
+
+ % elif data['children_type'] == 'album':
+
+
+
+ % if _session['user_group'] == 'admin':
+
+ % endif
+
+
+
+ % elif data['children_type'] == 'track':
+ % if loop.index % 2 == 0:
+
+
${child['media_index']}
+
${child['title']}
+ % if child['original_title']:
+ - ${child['original_title']}
+ % endif
+
+
+
+
+
+ % else:
+
+
${child['media_index']}
+
${child['title']}
+ % if child['original_title']:
+ - ${child['original_title']}
+ % endif
+
+
+
+
+
+ % endif
+ % endif
+
+ % endif
+ % endfor
+
+
+% endif
+% endif
+
diff --git a/data/interfaces/default/info_collection_list.html b/data/interfaces/default/info_collection_list.html
new file mode 100644
index 00000000..8d934ba3
--- /dev/null
+++ b/data/interfaces/default/info_collection_list.html
@@ -0,0 +1,92 @@
+<%doc>
+USAGE DOCUMENTATION :: PLEASE LEAVE THIS AT THE TOP OF THIS FILE
+
+For Mako templating syntax documentation please visit: http://docs.makotemplates.org/en/latest/
+
+Filename: info_collection_list.html
+Version: 0.1
+Variable names: data [list]
+
+data :: Usable parameters
+
+== Global keys ==
+children_type Returns the type of children in the array.
+children_count Returns the number of episodes in the array.
+children_list Returns an array of episodes.
+
+data['children_list'] :: Usable paramaters
+
+== Global keys ==
+rating_key Returns the unique identifier for the media item.
+media_index Returns the episode number.
+title Returns the name of the episode.
+thumb Returns the location of the item's thumbnail. Use with pms_image_proxy.
+parent_thumb Returns the location of the item's parent thumbnail. Use with pms_image_proxy.
+
+DOCUMENTATION :: END
+%doc>
+
+% if data != None:
+<%
+ from plexpy.common import MEDIA_TYPE_HEADERS
+ types = ('movie', 'show', 'artist', 'album')
+%>
+% for media_type in types:
+% if data['results_list'][media_type]:
+
+% endif
+% endfor
+% endif
diff --git a/data/interfaces/default/info_search_results_list.html b/data/interfaces/default/info_search_results_list.html
new file mode 100644
index 00000000..87613685
--- /dev/null
+++ b/data/interfaces/default/info_search_results_list.html
@@ -0,0 +1,280 @@
+<%doc>
+USAGE DOCUMENTATION :: PLEASE LEAVE THIS AT THE TOP OF THIS FILE
+
+For Mako templating syntax documentation please visit: http://docs.makotemplates.org/en/latest/
+
+Filename: info_children_list.html
+Version: 0.1
+Variable names: data [list]
+
+data :: Usable parameters
+
+== Global keys ==
+results_count Returns the number of search results.
+results_list Returns a dictionary of search result types.
+
+data['results_list'] :: Usable paramaters
+
+== media_type keys ==
+movie Returns an array of movie results
+show Returns an array of show results
+season Returns an array of season results
+episode Returns an array of episode results
+artist Returns an array of artist results
+album Returns an array of album results
+track Returns an array of track results
+
+data['results_list'][media_type] :: Usable paramaters
+
+== Global keys ==
+server_id Returns the server ID.
+server_name Returns the server name.
+rating_key Returns the unique identifier for the media item.
+type Returns the type of media. Either 'movie', 'show', 'season', 'episode', 'artist', 'album', or 'track'.
+art Returns the location of the item's artwork
+title Returns the name of the movie, show, episode, artist, album, or track.
+duration Returns the standard runtime of the media.
+content_rating Returns the age rating for the media.
+summary Returns a brief description of the media plot.
+grandparent_title Returns the name of the show, or artist.
+parent_media_index Returns the index number of the season.
+media_index Returns the index number of the episode, or track.
+parent_thumb Returns the location of the item's thumbnail. Use with pms_image_proxy.
+writers Returns an array of writers.
+thumb Returns the location of the item's thumbnail. Use with pms_image_proxy.
+parent_title Returns the name of the show, or artist.
+rating Returns the 5 star rating value for the movie. Between 1 and 5.
+year Returns the release year of the movie, or show.
+genres Returns an array of genres.
+actors Returns an array of actors.
+directors Returns an array of directors.
+studio Returns the name of the studio.
+originally_available_at Returns the air date of the item.
+
+DOCUMENTATION :: END
+%doc>
+
+% if data != None:
+% if data['results_count'] > 0:
+% if 'collection' in data['results_list'] and data['results_list']['collection']:
+
+% endif
+% if 'movie' in data['results_list'] and data['results_list']['movie']:
+
+% endif
+% if 'show' in data['results_list'] and data['results_list']['show']:
+
+% endif
+% if 'season' in data['results_list'] and data['results_list']['season']:
+
+% endif
+% if 'episode' in data['results_list'] and data['results_list']['episode']:
+
+% endif
+% if 'artist' in data['results_list'] and data['results_list']['artist']:
+
+% endif
+% if 'album' in data['results_list'] and data['results_list']['album']:
+
+% endif
+% if 'track' in data['results_list'] and data['results_list']['track']:
+
+% endif
+% else:
+
+ No search results found.
+
+% endif
+% endif
+
diff --git a/data/interfaces/default/ip_address_modal.html b/data/interfaces/default/ip_address_modal.html
new file mode 100644
index 00000000..928d4cad
--- /dev/null
+++ b/data/interfaces/default/ip_address_modal.html
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+ Location Details
+ % if data:
+
+ % endif
+
+
+
+
+
+ Continent:
+ Country:
+ Region:
+ City:
+ Postal Code:
+
+
+
+
+ Timezone:
+ Latitude:
+ Longitude:
+ Accuracy Radius:
+
+
+
+
+ Connection Details
+ % if data:
+
+ % endif
+
+
+
+
+
+
+
+
+
+
+% if data:
+
+% endif
\ No newline at end of file
diff --git a/data/interfaces/default/js/Sortable.min.js b/data/interfaces/default/js/Sortable.min.js
new file mode 100644
index 00000000..e95d2a30
--- /dev/null
+++ b/data/interfaces/default/js/Sortable.min.js
@@ -0,0 +1,2 @@
+/*! Sortable 1.4.2 - MIT | git://github.com/rubaxa/Sortable.git */
+!function(a){"use strict";"function"==typeof define&&define.amd?define(a):"undefined"!=typeof module&&"undefined"!=typeof module.exports?module.exports=a():"undefined"!=typeof Package?Sortable=a():window.Sortable=a()}(function(){"use strict";function a(a,b){if(!a||!a.nodeType||1!==a.nodeType)throw"Sortable: `el` must be HTMLElement, and not "+{}.toString.call(a);this.el=a,this.options=b=r({},b),a[L]=this;var c={group:Math.random(),sort:!0,disabled:!1,store:null,handle:null,scroll:!0,scrollSensitivity:30,scrollSpeed:10,draggable:/[uo]l/i.test(a.nodeName)?"li":">*",ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",ignore:"a, img",filter:null,animation:0,setData:function(a,b){a.setData("Text",b.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1};for(var d in c)!(d in b)&&(b[d]=c[d]);V(b);for(var f in this)"_"===f.charAt(0)&&(this[f]=this[f].bind(this));this.nativeDraggable=b.forceFallback?!1:P,e(a,"mousedown",this._onTapStart),e(a,"touchstart",this._onTapStart),this.nativeDraggable&&(e(a,"dragover",this),e(a,"dragenter",this)),T.push(this._onDragOver),b.store&&this.sort(b.store.get(this))}function b(a){v&&v.state!==a&&(h(v,"display",a?"none":""),!a&&v.state&&w.insertBefore(v,s),v.state=a)}function c(a,b,c){if(a){c=c||N,b=b.split(".");var d=b.shift().toUpperCase(),e=new RegExp("\\s("+b.join("|")+")(?=\\s)","g");do if(">*"===d&&a.parentNode===c||(""===d||a.nodeName.toUpperCase()==d)&&(!b.length||((" "+a.className+" ").match(e)||[]).length==b.length))return a;while(a!==c&&(a=a.parentNode))}return null}function d(a){a.dataTransfer&&(a.dataTransfer.dropEffect="move"),a.preventDefault()}function e(a,b,c){a.addEventListener(b,c,!1)}function f(a,b,c){a.removeEventListener(b,c,!1)}function g(a,b,c){if(a)if(a.classList)a.classList[c?"add":"remove"](b);else{var d=(" "+a.className+" ").replace(K," ").replace(" "+b+" "," ");a.className=(d+(c?" "+b:"")).replace(K," ")}}function h(a,b,c){var d=a&&a.style;if(d){if(void 0===c)return N.defaultView&&N.defaultView.getComputedStyle?c=N.defaultView.getComputedStyle(a,""):a.currentStyle&&(c=a.currentStyle),void 0===b?c:c[b];b in d||(b="-webkit-"+b),d[b]=c+("string"==typeof c?"":"px")}}function i(a,b,c){if(a){var d=a.getElementsByTagName(b),e=0,f=d.length;if(c)for(;f>e;e++)c(d[e],e);return d}return[]}function j(a,b,c,d,e,f,g){var h=N.createEvent("Event"),i=(a||b[L]).options,j="on"+c.charAt(0).toUpperCase()+c.substr(1);h.initEvent(c,!0,!0),h.to=b,h.from=e||b,h.item=d||b,h.clone=v,h.oldIndex=f,h.newIndex=g,b.dispatchEvent(h),i[j]&&i[j].call(a,h)}function k(a,b,c,d,e,f){var g,h,i=a[L],j=i.options.onMove;return g=N.createEvent("Event"),g.initEvent("move",!0,!0),g.to=b,g.from=a,g.dragged=c,g.draggedRect=d,g.related=e||b,g.relatedRect=f||b.getBoundingClientRect(),a.dispatchEvent(g),j&&(h=j.call(i,g)),h}function l(a){a.draggable=!1}function m(){R=!1}function n(a,b){var c=a.lastElementChild,d=c.getBoundingClientRect();return(b.clientY-(d.top+d.height)>5||b.clientX-(d.right+d.width)>5)&&c}function o(a){for(var b=a.tagName+a.className+a.src+a.href+a.textContent,c=b.length,d=0;c--;)d+=b.charCodeAt(c);return d.toString(36)}function p(a){var b=0;if(!a||!a.parentNode)return-1;for(;a&&(a=a.previousElementSibling);)"TEMPLATE"!==a.nodeName.toUpperCase()&&b++;return b}function q(a,b){var c,d;return function(){void 0===c&&(c=arguments,d=this,setTimeout(function(){1===c.length?a.call(d,c[0]):a.apply(d,c),c=void 0},b))}}function r(a,b){if(a&&b)for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}var s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J={},K=/\s+/g,L="Sortable"+(new Date).getTime(),M=window,N=M.document,O=M.parseInt,P=!!("draggable"in N.createElement("div")),Q=function(a){return a=N.createElement("x"),a.style.cssText="pointer-events:auto","auto"===a.style.pointerEvents}(),R=!1,S=Math.abs,T=([].slice,[]),U=q(function(a,b,c){if(c&&b.scroll){var d,e,f,g,h=b.scrollSensitivity,i=b.scrollSpeed,j=a.clientX,k=a.clientY,l=window.innerWidth,m=window.innerHeight;if(z!==c&&(y=b.scroll,z=c,y===!0)){y=c;do if(y.offsetWidth=l-j)-(h>=j),g=(h>=m-k)-(h>=k),(f||g)&&(d=M)),(J.vx!==f||J.vy!==g||J.el!==d)&&(J.el=d,J.vx=f,J.vy=g,clearInterval(J.pid),d&&(J.pid=setInterval(function(){d===M?M.scrollTo(M.pageXOffset+f*i,M.pageYOffset+g*i):(g&&(d.scrollTop+=g*i),f&&(d.scrollLeft+=f*i))},24)))}},30),V=function(a){var b=a.group;b&&"object"==typeof b||(b=a.group={name:b}),["pull","put"].forEach(function(a){a in b||(b[a]=!0)}),a.groups=" "+b.name+(b.put.join?" "+b.put.join(" "):"")+" "};return a.prototype={constructor:a,_onTapStart:function(a){var b=this,d=this.el,e=this.options,f=a.type,g=a.touches&&a.touches[0],h=(g||a).target,i=h,k=e.filter;if(!("mousedown"===f&&0!==a.button||e.disabled)&&(h=c(h,e.draggable,d))){if(D=p(h),"function"==typeof k){if(k.call(this,a,h,this))return j(b,i,"filter",h,d,D),void a.preventDefault()}else if(k&&(k=k.split(",").some(function(a){return a=c(i,a.trim(),d),a?(j(b,a,"filter",h,d,D),!0):void 0})))return void a.preventDefault();(!e.handle||c(i,e.handle,d))&&this._prepareDragStart(a,g,h)}},_prepareDragStart:function(a,b,c){var d,f=this,h=f.el,j=f.options,k=h.ownerDocument;c&&!s&&c.parentNode===h&&(G=a,w=h,s=c,t=s.parentNode,x=s.nextSibling,F=j.group,d=function(){f._disableDelayedDrag(),s.draggable=!0,g(s,f.options.chosenClass,!0),f._triggerDragStart(b)},j.ignore.split(",").forEach(function(a){i(s,a.trim(),l)}),e(k,"mouseup",f._onDrop),e(k,"touchend",f._onDrop),e(k,"touchcancel",f._onDrop),j.delay?(e(k,"mouseup",f._disableDelayedDrag),e(k,"touchend",f._disableDelayedDrag),e(k,"touchcancel",f._disableDelayedDrag),e(k,"mousemove",f._disableDelayedDrag),e(k,"touchmove",f._disableDelayedDrag),f._dragStartTimer=setTimeout(d,j.delay)):d())},_disableDelayedDrag:function(){var a=this.el.ownerDocument;clearTimeout(this._dragStartTimer),f(a,"mouseup",this._disableDelayedDrag),f(a,"touchend",this._disableDelayedDrag),f(a,"touchcancel",this._disableDelayedDrag),f(a,"mousemove",this._disableDelayedDrag),f(a,"touchmove",this._disableDelayedDrag)},_triggerDragStart:function(a){a?(G={target:s,clientX:a.clientX,clientY:a.clientY},this._onDragStart(G,"touch")):this.nativeDraggable?(e(s,"dragend",this),e(w,"dragstart",this._onDragStart)):this._onDragStart(G,!0);try{N.selection?N.selection.empty():window.getSelection().removeAllRanges()}catch(b){}},_dragStarted:function(){w&&s&&(g(s,this.options.ghostClass,!0),a.active=this,j(this,w,"start",s,w,D))},_emulateDragOver:function(){if(H){if(this._lastX===H.clientX&&this._lastY===H.clientY)return;this._lastX=H.clientX,this._lastY=H.clientY,Q||h(u,"display","none");var a=N.elementFromPoint(H.clientX,H.clientY),b=a,c=" "+this.options.group.name,d=T.length;if(b)do{if(b[L]&&b[L].options.groups.indexOf(c)>-1){for(;d--;)T[d]({clientX:H.clientX,clientY:H.clientY,target:a,rootEl:b});break}a=b}while(b=b.parentNode);Q||h(u,"display","")}},_onTouchMove:function(b){if(G){a.active||this._dragStarted(),this._appendGhost();var c=b.touches?b.touches[0]:b,d=c.clientX-G.clientX,e=c.clientY-G.clientY,f=b.touches?"translate3d("+d+"px,"+e+"px,0)":"translate("+d+"px,"+e+"px)";I=!0,H=c,h(u,"webkitTransform",f),h(u,"mozTransform",f),h(u,"msTransform",f),h(u,"transform",f),b.preventDefault()}},_appendGhost:function(){if(!u){var a,b=s.getBoundingClientRect(),c=h(s),d=this.options;u=s.cloneNode(!0),g(u,d.ghostClass,!1),g(u,d.fallbackClass,!0),h(u,"top",b.top-O(c.marginTop,10)),h(u,"left",b.left-O(c.marginLeft,10)),h(u,"width",b.width),h(u,"height",b.height),h(u,"opacity","0.8"),h(u,"position","fixed"),h(u,"zIndex","100000"),h(u,"pointerEvents","none"),d.fallbackOnBody&&N.body.appendChild(u)||w.appendChild(u),a=u.getBoundingClientRect(),h(u,"width",2*b.width-a.width),h(u,"height",2*b.height-a.height)}},_onDragStart:function(a,b){var c=a.dataTransfer,d=this.options;this._offUpEvents(),"clone"==F.pull&&(v=s.cloneNode(!0),h(v,"display","none"),w.insertBefore(v,s)),b?("touch"===b?(e(N,"touchmove",this._onTouchMove),e(N,"touchend",this._onDrop),e(N,"touchcancel",this._onDrop)):(e(N,"mousemove",this._onTouchMove),e(N,"mouseup",this._onDrop)),this._loopId=setInterval(this._emulateDragOver,50)):(c&&(c.effectAllowed="move",d.setData&&d.setData.call(this,c,s)),e(N,"drop",this),setTimeout(this._dragStarted,0))},_onDragOver:function(a){var d,e,f,g=this.el,i=this.options,j=i.group,l=j.put,o=F===j,p=i.sort;if(void 0!==a.preventDefault&&(a.preventDefault(),!i.dragoverBubble&&a.stopPropagation()),I=!0,F&&!i.disabled&&(o?p||(f=!w.contains(s)):F.pull&&l&&(F.name===j.name||l.indexOf&&~l.indexOf(F.name)))&&(void 0===a.rootEl||a.rootEl===this.el)){if(U(a,i,this.el),R)return;if(d=c(a.target,i.draggable,g),e=s.getBoundingClientRect(),f)return b(!0),void(v||x?w.insertBefore(s,v||x):p||w.appendChild(s));if(0===g.children.length||g.children[0]===u||g===a.target&&(d=n(g,a))){if(d){if(d.animated)return;r=d.getBoundingClientRect()}b(o),k(w,g,s,e,d,r)!==!1&&(s.contains(g)||(g.appendChild(s),t=g),this._animate(e,s),d&&this._animate(r,d))}else if(d&&!d.animated&&d!==s&&void 0!==d.parentNode[L]){A!==d&&(A=d,B=h(d),C=h(d.parentNode));var q,r=d.getBoundingClientRect(),y=r.right-r.left,z=r.bottom-r.top,D=/left|right|inline/.test(B.cssFloat+B.display)||"flex"==C.display&&0===C["flex-direction"].indexOf("row"),E=d.offsetWidth>s.offsetWidth,G=d.offsetHeight>s.offsetHeight,H=(D?(a.clientX-r.left)/y:(a.clientY-r.top)/z)>.5,J=d.nextElementSibling,K=k(w,g,s,e,d,r);if(K!==!1){if(R=!0,setTimeout(m,30),b(o),1===K||-1===K)q=1===K;else if(D){var M=s.offsetTop,N=d.offsetTop;q=M===N?d.previousElementSibling===s&&!E||H&&E:N>M}else q=J!==s&&!G||H&&G;s.contains(g)||(q&&!J?g.appendChild(s):d.parentNode.insertBefore(s,q?J:d)),t=s.parentNode,this._animate(e,s),this._animate(r,d)}}}},_animate:function(a,b){var c=this.options.animation;if(c){var d=b.getBoundingClientRect();h(b,"transition","none"),h(b,"transform","translate3d("+(a.left-d.left)+"px,"+(a.top-d.top)+"px,0)"),b.offsetWidth,h(b,"transition","all "+c+"ms"),h(b,"transform","translate3d(0,0,0)"),clearTimeout(b.animated),b.animated=setTimeout(function(){h(b,"transition",""),h(b,"transform",""),b.animated=!1},c)}},_offUpEvents:function(){var a=this.el.ownerDocument;f(N,"touchmove",this._onTouchMove),f(a,"mouseup",this._onDrop),f(a,"touchend",this._onDrop),f(a,"touchcancel",this._onDrop)},_onDrop:function(b){var c=this.el,d=this.options;clearInterval(this._loopId),clearInterval(J.pid),clearTimeout(this._dragStartTimer),f(N,"mousemove",this._onTouchMove),this.nativeDraggable&&(f(N,"drop",this),f(c,"dragstart",this._onDragStart)),this._offUpEvents(),b&&(I&&(b.preventDefault(),!d.dropBubble&&b.stopPropagation()),u&&u.parentNode.removeChild(u),s&&(this.nativeDraggable&&f(s,"dragend",this),l(s),g(s,this.options.ghostClass,!1),g(s,this.options.chosenClass,!1),w!==t?(E=p(s),E>=0&&(j(null,t,"sort",s,w,D,E),j(this,w,"sort",s,w,D,E),j(null,t,"add",s,w,D,E),j(this,w,"remove",s,w,D,E))):(v&&v.parentNode.removeChild(v),s.nextSibling!==x&&(E=p(s),E>=0&&(j(this,w,"update",s,w,D,E),j(this,w,"sort",s,w,D,E)))),a.active&&((null===E||-1===E)&&(E=D),j(this,w,"end",s,w,D,E),this.save())),w=s=t=u=x=v=y=z=G=H=I=E=A=B=F=a.active=null)},handleEvent:function(a){var b=a.type;"dragover"===b||"dragenter"===b?s&&(this._onDragOver(a),d(a)):("drop"===b||"dragend"===b)&&this._onDrop(a)},toArray:function(){for(var a,b=[],d=this.el.children,e=0,f=d.length,g=this.options;f>e;e++)a=d[e],c(a,g.draggable,this.el)&&b.push(a.getAttribute(g.dataIdAttr)||o(a));return b},sort:function(a){var b={},d=this.el;this.toArray().forEach(function(a,e){var f=d.children[e];c(f,this.options.draggable,d)&&(b[a]=f)},this),a.forEach(function(a){b[a]&&(d.removeChild(b[a]),d.appendChild(b[a]))})},save:function(){var a=this.options.store;a&&a.set(this)},closest:function(a,b){return c(a,b||this.options.draggable,this.el)},option:function(a,b){var c=this.options;return void 0===b?c[a]:(c[a]=b,void("group"===a&&V(c)))},destroy:function(){var a=this.el;a[L]=null,f(a,"mousedown",this._onTapStart),f(a,"touchstart",this._onTapStart),this.nativeDraggable&&(f(a,"dragover",this),f(a,"dragenter",this)),Array.prototype.forEach.call(a.querySelectorAll("[draggable]"),function(a){a.removeAttribute("draggable")}),T.splice(T.indexOf(this._onDragOver),1),this._onDrop(),this.el=a=null}},a.utils={on:e,off:f,css:h,find:i,is:function(a,b){return!!c(a,b,a)},extend:r,throttle:q,closest:c,toggleClass:g,index:p},a.create=function(b,c){return new a(b,c)},a.version="1.4.2",a});
\ No newline at end of file
diff --git a/data/interfaces/default/js/ajaxNotifications.js b/data/interfaces/default/js/ajaxNotifications.js
new file mode 100644
index 00000000..e73b84d0
--- /dev/null
+++ b/data/interfaces/default/js/ajaxNotifications.js
@@ -0,0 +1,42 @@
+// Taken from https://github.com/SickRage/SickRage
+
+PNotify.prototype.options.addclass = "stack-bottomright";
+PNotify.prototype.options.buttons.closer_hover = false;
+PNotify.prototype.options.desktop = { desktop: true, icon: 'images/logo-circle.png' };
+PNotify.prototype.options.history = false;
+PNotify.prototype.options.shadow = false;
+PNotify.prototype.options.stack = { dir1: 'up', dir2: 'left', firstpos1: 25, firstpos2: 25 };
+PNotify.prototype.options.styling = 'fontawesome';
+PNotify.prototype.options.type = 'notice';
+PNotify.prototype.options.width = '340px';
+
+function displayPNotify(title, message) {
+ var notification = new PNotify({
+ title: title,
+ text: message
+ });
+}
+
+function check_notifications() {
+ $.getJSON('get_browser_notifications', function (data) {
+ if (data) {
+ $.each(data, function (i, notification) {
+ if (notification.delay === 0) {
+ PNotify.prototype.options.hide = false;
+ } else {
+ PNotify.prototype.options.hide = true;
+ PNotify.prototype.options.delay = notification.delay * 1000;
+ }
+ displayPNotify(notification.subject_text, notification.body_text);
+ });
+ }
+ });
+ setTimeout(function () {
+ "use strict";
+ check_notifications();
+ }, 5000);
+}
+
+$(document).ready(function () {
+ check_notifications();
+});
\ No newline at end of file
diff --git a/data/interfaces/default/js/bootstrap-hover-dropdown.min.js b/data/interfaces/default/js/bootstrap-hover-dropdown.min.js
new file mode 100644
index 00000000..89d5c6d5
--- /dev/null
+++ b/data/interfaces/default/js/bootstrap-hover-dropdown.min.js
@@ -0,0 +1,12 @@
+/**
+ * @preserve
+ * Project: Bootstrap Hover Dropdown
+ * Author: Cameron Spear
+ * Version: v2.2.1
+ * Contributors: Mattia Larentis
+ * Dependencies: Bootstrap's Dropdown plugin, jQuery
+ * Description: A simple plugin to enable Bootstrap dropdowns to active on hover and provide a nice user experience.
+ * License: MIT
+ * Homepage: http://cameronspear.com/blog/bootstrap-dropdown-on-hover-plugin/
+ */
+!function(e,n,o){var t=e();e.fn.dropdownHover=function(o){return"ontouchstart"in document?this:(t=t.add(this.parent()),this.each(function(){function r(e){d.parents(".navbar").find(".navbar-toggle").is(":visible")||(n.clearTimeout(a),n.clearTimeout(i),i=n.setTimeout(function(){t.find(":focus").blur(),f.instantlyCloseOthers===!0&&t.removeClass("open"),n.clearTimeout(i),d.attr("aria-expanded","true"),s.addClass("open"),d.trigger(l)},f.hoverDelay))}var a,i,d=e(this),s=d.parent(),u={delay:500,hoverDelay:0,instantlyCloseOthers:!0},h={delay:e(this).data("delay"),hoverDelay:e(this).data("hover-delay"),instantlyCloseOthers:e(this).data("close-others")},l="show.bs.dropdown",c="hide.bs.dropdown",f=e.extend(!0,{},u,o,h);s.hover(function(e){return s.hasClass("open")||d.is(e.target)?void r(e):!0},function(){n.clearTimeout(i),a=n.setTimeout(function(){d.attr("aria-expanded","false"),s.removeClass("open"),d.trigger(c)},f.delay)}),d.hover(function(e){return s.hasClass("open")||s.is(e.target)?void r(e):!0}),s.find(".dropdown-submenu").each(function(){var o,t=e(this);t.hover(function(){n.clearTimeout(o),t.children(".dropdown-menu").show(),t.siblings().children(".dropdown-menu").hide()},function(){var e=t.children(".dropdown-menu");o=n.setTimeout(function(){e.hide()},f.delay)})})}))},e(document).ready(function(){e(n).width()>769&&e(".navbar .dropdown > a").click(function(){location.href=this.href})}),e(document).ready(function(){e('[data-hover="dropdown"]').dropdownHover()})}(jQuery,window);
\ No newline at end of file
diff --git a/data/interfaces/default/js/bootstrap-wizard.min.js b/data/interfaces/default/js/bootstrap-wizard.min.js
new file mode 100644
index 00000000..c29cd51a
--- /dev/null
+++ b/data/interfaces/default/js/bootstrap-wizard.min.js
@@ -0,0 +1 @@
+(function(e){e.fn.wizard=function(e){return new Wizard(this,e)};e.fn.wizard.logging=false;var t=function(e,t,n,r,i){this.wizard=e;this.index=n;this.prev=r;this.next=i;this.el=t;this.title=t.find("h3").first().text();this.name=t.data("cardname")||this.title;this.nav=this._createNavElement(this.title,n);this._disabled=false;this._loaded=false;this._events={}};t.prototype={select:function(){this.log("selecting");if(!this.isSelected()){this.nav.addClass("active");this.el.show();if(!this._loaded){this.trigger("loaded");this.reload()}this.trigger("selected")}var e=this.wizard;e.backButton.toggleClass("disabled",this.index==0);if(this.index>=e._cards.length-1){this.log("on last card, changing next button to submit");e.changeNextButton(e.args.buttons.submitText,"btn-success");e._readyToSubmit=true;e.trigger("readySubmit")}else{e._readyToSubmit=false;e.changeNextButton(e.args.buttons.nextText,"btn-primary")}return this},_createNavElement:function(t,n){var r=e(' ');var i=e(' ');i.data("navindex",n);r.append(i);i.append(' ');i.append(t);return r},markVisited:function(){this.log("marking as visited");this.nav.addClass("already-visited");this.trigger("markVisited");return this},unmarkVisited:function(){this.log("unmarking as visited");this.nav.removeClass("already-visited");this.trigger("unmarkVisited");return this},deselect:function(){this.nav.removeClass("active");this.el.hide();this.trigger("deselect");return this},enable:function(){this.log("enabling");this.nav.addClass("active");this._disabled=false;this.trigger("enabled");return this},disable:function(e){this.log("disabling");this._disabled=true;this.nav.removeClass("active already-visited");if(e){this.el.hide()}this.trigger("disabled");return this},isDisabled:function(){return this._disabled},alreadyVisited:function(){return this.nav.hasClass("already-visited")},isSelected:function(){return this.nav.hasClass("active")},reload:function(){this._loaded=true;this.trigger("reload");return this},on:function(){return this.wizard.on.apply(this,arguments)},trigger:function(){this.callListener("on"+arguments[0]);return this.wizard.trigger.apply(this,arguments)},toggleAlert:function(t,n){this.log("toggling alert to: "+n);n=typeof n=="undefined"?true:n;if(n){this.trigger("showAlert")}else{this.trigger("hideAlert")}var r;var i=this.el.children("h3").first().next("div.alert");if(i.length==0){if(!n){return this}this.log("couldn't find existing alert div, creating one");r=e("
");r.addClass("alert");r.addClass("hide");r.insertAfter(this.el.find("h3").first())}else{this.log("found existing alert div");r=i.first()}if(n){if(t!=null){this.log("setting alert msg to",t);r.html(t)}r.show()}else{r.hide()}return this},callListener:function(e){e=e.toLowerCase();this.log("looking for listener "+e);var t=window[this.el.data(e)];if(t){this.log("calling listener "+e);var n=this.wizard;try{var r=t(this)}catch(i){this.log("exception calling listener "+e+": ",i)}}else{this.log("didn't find listener "+e)}},problem:function(e){this.nav.find("a").toggleClass("wizard-step-error",e)},validate:function(){var t=false;var n=this;this.el.find("[data-validate]").each(function(r,i){n.log("validating individiual inputs");i=e(i);var s=i.data("validate");if(!s){return}var o={status:true,title:"Error",msg:""};var u=window[s](i);e.extend(o,u);if(e("#btn-"+i.attr("id")).length===1){i=e("#btn-"+i.attr("id"))}if(!o.status){t=true;i.parents("div.form-group").toggleClass("has-error",true);if(e("#btn-"+i.attr("id")).length===1){i=e("#btn-"+i.attr("id"))}n.wizard.errorPopover(i,o.msg)}else{i.parents("div.form-group").toggleClass("has-error",false);if(e("#btn-"+i.attr("id")).length===1){i=e("#btn-"+i.attr("id"))}try{i.popover("destroy")}catch(a){i.popover("hide")}}});this.log("after validating inputs, failures is",t);var r=window[this.el.data("validate")];if(r){this.log("running html-embedded card validator");var i=r(this);if(typeof i=="undefined"||i==null){i=true}if(!i)t=true;this.log("after running html-embedded card validator, failures is",t)}this.log("running listener validator");var s=this.trigger("validate");if(typeof s=="undefined"||s==null){s=true}if(!s)t=true;this.log("after running listener validator, failures is",t);var o=!t;if(o){this.log("validated, calling listeners");this.trigger("validated")}else{this.log("invalid");this.trigger("invalid")}return o},log:function(){if(!window.console||!e.fn.wizard.logging){return}var t="card '"+this.name+"': ";var n=[t];n.push.apply(n,arguments);console.log.apply(console,n)},isActive:function(){return this.nav.hasClass("active")}};Wizard=function(t,n){this.wizard_template=['"];this.args={keyboard:true,backdrop:true,show:false,submitUrl:"",showCancel:false,showClose:true,progressBarCurrent:false,increaseHeight:0,contentHeight:300,contentWidth:580,buttons:{cancelText:"Cancel",nextText:"Next",backText:"Back",submitText:"Submit",submittingText:"Submitting..."},formClass:"form-horizontal"};e.extend(this.args,n||{});this._create(t)};Wizard.prototype={log:function(){if(!window.console||!e.fn.wizard.logging){return}var t="wizard "+this.el.id+": ";var n=[t];n.push.apply(n,arguments);console.log.apply(console,n)},_create:function(t){this.markup=e(t);this.title=this.markup.data("title");this.submitCards=this.markup.find(".wizard-error,.wizard-failure,.wizard-success,.wizard-loading");this.el=e(this.wizard_template.join("\n"));e("body").append(this.el);this.modal=this.el.modal({keyboard:this.args.keyboard,show:this.args.show,backdrop:this.args.backdrop});this.dimensions={contentHeight:this.args.contentHeight,contentWidth:this.args.contentWidth};this.dialog=this.modal.find(".wizard-dialog");this.content=this.modal.find(".wizard-content");this.header=this.modal.find(".wizard-header");this.body=this.modal.find(".wizard-body");this.wizardSteps=this.modal.find(".wizard-steps");this.wizardCards=this.modal.find(".wizard-cards");this.wizardCardContainer=this.modal.find(".wizard-card-container");this.wizardCardContainer.append(this.markup.find(".wizard-card")).append(this.submitCards);this.navContainer=this.modal.find(".wizard-nav-container");this.navList=this.modal.find(".wizard-nav-list");this.progressContainer=this.modal.find(".wizard-progress-container");this.progress=this.progressContainer.find(".progress-bar");this.closeButton=this.modal.find("button.wizard-close.close");this.cardsContainer=this.modal.find("wizard-cards-container");this.form=this.modal.find("form");this.footer=this.modal.find(".wizard-footer");this.cancelButton=this.footer.find(".wizard-cancel");this.backButton=this.footer.find(".wizard-back");this.nextButton=this.footer.find(".wizard-next");this._cards=[];this.cards={};this._readyToSubmit=false;this.percentComplete=0;this._submitting=false;this._events={};this._firstShow=true;this._createCards();this.nextButton.click(this,this._handleNextClick);this.backButton.click(this,this._handleBackClick);this.cancelButton.text(this.args.buttons.cancelText);this.backButton.text(this.args.buttons.backText);this.nextButton.text(this.args.buttons.nextText);this.form.addClass(this.args.formClass);this.popovers=[];var n=this;var r=function(){n.reset();n.close();n.trigger("closed")};this.closeButton.click(r);this.cancelButton.click(r);this.wizardSteps.on("click","li.already-visited a.wizard-nav-link",this,function(t){var n=parseInt(e(t.target).data("navindex"));t.data.setCard(n)});if(this.title.length!=0){this.setTitle(this.title)}this.on("submit",this._defaultSubmit);this.autoDimensions()},autoDimensions:function(){this.modal.css("display","block");this.dimensions.header=this.header.outerHeight(true);this.dimensions.navigation=this.wizardSteps.outerHeight(true);if(this.dimensions.navigationt.index){var r=t;var i=false;while(r.index!=n.index){if(r.index!=t.index){r.prev.deselect();r.prev.markVisited();r.select()}i=r.validate();if(!i){return r}r=r.next}r.prev.deselect();r.prev.markVisited()}t.deselect();t.markVisited()}n.select();if(this.args.progressBarCurrent){this.percentComplete=e*100/this._cards.length;this.updateProgressBar(this.percentComplete)}else{var s=this.percentComplete;this.percentComplete=e*100/this._cards.length;this.percentComplete=Math.max(s,this.percentComplete);this.updateProgressBar(this.percentComplete)}return n}else{this.log("couldn't find card "+e)}},updateProgressBar:function(e){this.log("updating progress to "+e+"%");this.progress.css({width:e+"%"});this.percentComplete=e;this.trigger("progressBar",e);if(e==100){this.log("progress is 100, animating progress bar");this.progressContainer.find(".progress").addClass("active")}else if(e==0){this.log("progress is 0, disabling animation");this.progressContainer.find(".progress").removeClass("active")}},getNextCard:function(){var e=this.getActiveCard();if(e)return e.next},lockCards:function(){this.log("locking nav cards");this.eachCard(function(e,t){t.unmarkVisited()});return this},disableCards:function(){this.log("disabling all nav cards");this.eachCard(function(e,t){t.disable()});return this},enableCards:function(){this.log("enabling all nav cards");this.eachCard(function(e,t){t.enable()});return this},hideCards:function(){this.log("hiding cards");this.eachCard(function(e,t){t.deselect()});this.hideSubmitCards();return this},hideButtons:function(){this.log("hiding buttons");this.cancelButton.hide();this.closeButton.hide();this.nextButton.hide();this.backButton.hide();return this},showButtons:function(){this.log("showing buttons");if(this.args.showCancel){this.cancelButton.show()}else{this.cancelButton.hide()}if(this.args.showClose){this.closeButton.show()}this.nextButton.show();this.backButton.show();return this},getCard:function(t){var n=e(t).parents(".wizard-card").first()[0];if(n){var r=null;this.eachCard(function(e,t){if(n==t.el[0]){r=t;return false}return true});return r}else{return null}},_createCards:function(){var n=null;var r=null;var i=null;var s=this;var o=this;o.log("Creating Cards");var u=this.modal.find(".wizard-cards .wizard-card");e.each(u,function(u,a){a=e(a);n=i;i=new t(s,a,u,n,r);o._cards.push(i);if(i.name){o.cards[i.name]=i}if(n){n.next=i}o.modal.find(".wizard-steps .wizard-nav-list").append(i.nav)})},showSubmitCard:function(e){this.log("showing "+e+" submit card");var t=this.el.find(".wizard-"+e);if(t.length){this.hideCards();this.el.find(".wizard-"+e).show()}else{this.log("couldn't find submit card "+e)}},hideSubmitCard:function(e){this.log("hiding "+e+" submit card");this.el.find(".wizard-"+e).hide()},hideSubmitCards:function(){var t=this;e.each(["success","error","failure","loading"],function(e,n){t.hideSubmitCard(n)})},enableNextButton:function(){this.log("enabling next button");this.nextButton.removeAttr("disabled");return this},disableNextButton:function(){this.log("disabling next button");this.nextButton.attr("disabled","disabled");return this},serializeArray:function(){var t=this.form.serializeArray();this.form.find('input[disabled][data-serialize="1"]').each(function(){formObj={name:e(this).attr("name"),value:e(this).val()};t.push(formObj)});return t},serialize:function(){var t=this.form.serialize();this.form.find('input[disabled][data-serialize="1"]').each(function(){t=t+"&"+e(this).attr("name")+"="+e(this).val()});return t},find:function(e){return this.modal.find(e)},submitSuccess:function(){this.log("submit success");this._submitting=false;this.showSubmitCard("success");this.trigger("submitSuccess")},submitFailure:function(){this.log("submit failure");this._submitting=false;this.showSubmitCard("failure");this.trigger("submitFailure")},submitError:function(){this.log("submit error");this._submitting=false;this.showSubmitCard("error");this.trigger("submitError")},_submit:function(){this.log("submitting wizard");this._submitting=true;this.lockCards();this.cancelButton.hide();this.closeButton.hide();this.backButton.hide();this.showSubmitCard("loading");this.updateProgressBar(100);this.changeNextButton(this.args.buttons.submittingText,false);this.disableNextButton();var e=this.trigger("submit");this.trigger("loading")},_onNextClick:function(){this.log("handling 'next' button click");var e=this.getActiveCard();if(this._readyToSubmit&&e.validate()){this._submit()}else{e=this.incrementCard()}},_onBackClick:function(){this.log("handling 'back' button click");var e=this.decrementCard()},_handleNextClick:function(e){var t=e.data;t._onNextClick.call(t)},_handleBackClick:function(e){var t=e.data;t._onBackClick.call(t)},_defaultSubmit:function(t){e.ajax({type:"POST",url:t.args.submitUrl,data:t.serialize(),dataType:"json"}).done(function(e){t.submitSuccess();t.hideButtons();t.updateProgressBar(0)}).fail(function(){t.submitFailure();t.hideButtons()})}}})(window.jQuery)
diff --git a/data/interfaces/default/js/bootstrap.min.js b/data/interfaces/default/js/bootstrap.min.js
new file mode 100644
index 00000000..133aeecb
--- /dev/null
+++ b/data/interfaces/default/js/bootstrap.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap v3.3.5 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under the MIT license
+ */
+if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.5",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.5",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),a(c.target).is('input[type="radio"]')||a(c.target).is('input[type="checkbox"]')||c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.5",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.5",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.5",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),c.isInStateTrue()?void 0:(clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide())},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m
o.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.5",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.5",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.5",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
\ No newline at end of file
diff --git a/data/interfaces/default/js/dataTables.bootstrap.min.js b/data/interfaces/default/js/dataTables.bootstrap.min.js
new file mode 100644
index 00000000..2d824c8f
--- /dev/null
+++ b/data/interfaces/default/js/dataTables.bootstrap.min.js
@@ -0,0 +1,8 @@
+/*!
+ DataTables Bootstrap 3 integration
+ ©2011-2015 SpryMedia Ltd - datatables.net/license
+*/
+(function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,d){a||(a=window);if(!d||!d.fn.dataTable)d=require("datatables.net")(a,d).$;return b(d,a,a.document)}:b(jQuery,window,document)})(function(b,a,d){var f=b.fn.dataTable;b.extend(!0,f.defaults,{dom:"<'row'<'col-sm-6'l><'col-sm-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-5'i><'col-sm-7'p>>",renderer:"bootstrap"});b.extend(f.ext.classes,
+{sWrapper:"dataTables_wrapper form-inline dt-bootstrap",sFilterInput:"form-control input-sm",sLengthSelect:"form-control input-sm",sProcessing:"dataTables_processing panel panel-default"});f.ext.renderer.pageButton.bootstrap=function(a,h,r,m,j,n){var o=new f.Api(a),s=a.oClasses,k=a.oLanguage.oPaginate,t=a.oLanguage.oAria.paginate||{},e,g,p=0,q=function(d,f){var l,h,i,c,m=function(a){a.preventDefault();!b(a.currentTarget).hasClass("disabled")&&o.page()!=a.data.action&&o.page(a.data.action).draw("page")};
+l=0;for(h=f.length;l",{"class":s.sPageButton+" "+g,id:0===r&&"string"===typeof c?a.sTableId+"_"+c:null}).append(b("",{href:"#",
+"aria-controls":a.sTableId,"aria-label":t[c],"data-dt-idx":p,tabindex:a.iTabIndex}).html(e)).appendTo(d),a.oApi._fnBindAction(i,{action:c},m),p++)}},i;try{i=b(h).find(d.activeElement).data("dt-idx")}catch(u){}q(b(h).empty().html('').children("ul"),m);i&&b(h).find("[data-dt-idx="+i+"]").focus()};return f});
diff --git a/data/interfaces/default/js/dataTables.bootstrap.pagination.js b/data/interfaces/default/js/dataTables.bootstrap.pagination.js
new file mode 100644
index 00000000..f165d2d8
--- /dev/null
+++ b/data/interfaces/default/js/dataTables.bootstrap.pagination.js
@@ -0,0 +1,117 @@
+/* API method to get paging information */
+$.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings )
+{
+ return {
+ "iStart": oSettings._iDisplayStart,
+ "iEnd": oSettings.fnDisplayEnd(),
+ "iLength": oSettings._iDisplayLength,
+ "iTotal": oSettings.fnRecordsTotal(),
+ "iFilteredTotal": oSettings.fnRecordsDisplay(),
+ "iPage": oSettings._iDisplayLength === -1 ?
+ 0 : Math.ceil( oSettings._iDisplayStart / oSettings._iDisplayLength ),
+ "iTotalPages": oSettings._iDisplayLength === -1 ?
+ 0 : Math.ceil( oSettings.fnRecordsDisplay() / oSettings._iDisplayLength )
+ };
+}
+
+/* Bootstrap style pagination control */
+$.extend( $.fn.dataTableExt.oPagination, {
+ "bootstrap": {
+ "fnInit": function( oSettings, nPaging, fnDraw ) {
+ var oLang = oSettings.oLanguage.oPaginate;
+ var fnClickHandler = function ( e ) {
+ e.preventDefault();
+ if ( oSettings.oApi._fnPageChange(oSettings, e.data.action) ) {
+ fnDraw( oSettings );
+ }
+ };
+
+ $(nPaging).append(
+ ''
+ );
+ var els = $('a', nPaging);
+ $(els[0]).bind( 'click.DT', { action: "previous" }, fnClickHandler );
+ $(els[1]).bind( 'click.DT', { action: "next" }, fnClickHandler );
+ },
+
+ "fnUpdate": function ( oSettings, fnDraw ) {
+ var iListLength = 5;
+ var oPaging = oSettings.oInstance.fnPagingInfo();
+ var an = oSettings.aanFeatures.p;
+ var i, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2);
+
+ if ( oPaging.iTotalPages < iListLength) {
+ iStart = 1;
+ iEnd = oPaging.iTotalPages;
+ }
+ else if ( oPaging.iPage <= iHalf ) {
+ iStart = 1;
+ iEnd = iListLength;
+ } else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) {
+ iStart = oPaging.iTotalPages - iListLength + 1;
+ iEnd = oPaging.iTotalPages;
+ } else {
+ iStart = oPaging.iPage - iHalf + 1;
+ iEnd = iStart + iListLength - 1;
+ }
+
+ for ( i=0, iLen=an.length ; i'+j+' ')
+ .insertBefore( $('li:last', an[i])[0] )
+ .bind('click', function (e) {
+ e.preventDefault();
+ oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength;
+ fnDraw( oSettings );
+ } );
+ }
+
+ // Add / remove disabled classes from the static elements
+ if ( oPaging.iPage === 0 ) {
+ $('li:first', an[i]).addClass('disabled');
+ } else {
+ $('li:first', an[i]).removeClass('disabled');
+ }
+
+ if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) {
+ $('li:last', an[i]).addClass('disabled');
+ } else {
+ $('li:last', an[i]).removeClass('disabled');
+ }
+ }
+ }
+ }
+} );
+
+$(function(){
+ $('.datatable').each(function(){
+ var datatable = $(this);
+ // SEARCH - Add the placeholder for Search and Turn this into in-line formcontrol
+ var search_input = datatable.closest('.dataTables_wrapper').find('div[id$=_filter] input');
+ search_input.attr('placeholder', 'Search')
+ search_input.addClass('form-control input-small')
+ search_input.css('width', '250px')
+
+ // SEARCH CLEAR - Use an Icon
+ var clear_input = datatable.closest('.dataTables_wrapper').find('div[id$=_filter] a');
+ clear_input.html(' ')
+ clear_input.css('margin-left', '5px')
+
+ // LENGTH - Inline-Form control
+ var length_sel = datatable.closest('.dataTables_wrapper').find('div[id$=_length] select');
+ length_sel.addClass('form-control input-small')
+ length_sel.css('width', '75px')
+
+ // LENGTH - Info adjust location
+ var length_sel = datatable.closest('.dataTables_wrapper').find('div[id$=_info]');
+ length_sel.css('margin-top', '18px')
+ });
+});
diff --git a/data/interfaces/default/js/dataTables.colVis.js b/data/interfaces/default/js/dataTables.colVis.js
new file mode 100644
index 00000000..cc13cd8c
--- /dev/null
+++ b/data/interfaces/default/js/dataTables.colVis.js
@@ -0,0 +1,1130 @@
+/*! ColVis 1.1.2
+ * ©2010-2015 SpryMedia Ltd - datatables.net/license
+ */
+
+/**
+ * @summary ColVis
+ * @description Controls for column visibility in DataTables
+ * @version 1.1.2
+ * @file dataTables.colReorder.js
+ * @author SpryMedia Ltd (www.sprymedia.co.uk)
+ * @contact www.sprymedia.co.uk/contact
+ * @copyright Copyright 2010-2015 SpryMedia Ltd.
+ *
+ * This source file is free software, available under the following license:
+ * MIT license - http://datatables.net/license/mit
+ *
+ * This source file is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.
+ *
+ * For details please refer to: http://www.datatables.net
+ */
+
+(function(window, document, undefined) {
+
+
+var factory = function( $, DataTable ) {
+"use strict";
+
+/**
+ * ColVis provides column visibility control for DataTables
+ *
+ * @class ColVis
+ * @constructor
+ * @param {object} DataTables settings object. With DataTables 1.10 this can
+ * also be and API instance, table node, jQuery collection or jQuery selector.
+ * @param {object} ColVis configuration options
+ */
+var ColVis = function( oDTSettings, oInit )
+{
+ /* Santiy check that we are a new instance */
+ if ( !this.CLASS || this.CLASS != "ColVis" )
+ {
+ alert( "Warning: ColVis must be initialised with the keyword 'new'" );
+ }
+
+ if ( typeof oInit == 'undefined' )
+ {
+ oInit = {};
+ }
+
+ var camelToHungarian = $.fn.dataTable.camelToHungarian;
+ if ( camelToHungarian ) {
+ camelToHungarian( ColVis.defaults, ColVis.defaults, true );
+ camelToHungarian( ColVis.defaults, oInit );
+ }
+
+
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Public class variables
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+ /**
+ * @namespace Settings object which contains customisable information for
+ * ColVis instance. Augmented by ColVis.defaults
+ */
+ this.s = {
+ /**
+ * DataTables settings object
+ * @property dt
+ * @type Object
+ * @default null
+ */
+ "dt": null,
+
+ /**
+ * Customisation object
+ * @property oInit
+ * @type Object
+ * @default passed in
+ */
+ "oInit": oInit,
+
+ /**
+ * Flag to say if the collection is hidden
+ * @property hidden
+ * @type boolean
+ * @default true
+ */
+ "hidden": true,
+
+ /**
+ * Store the original visibility settings so they could be restored
+ * @property abOriginal
+ * @type Array
+ * @default []
+ */
+ "abOriginal": []
+ };
+
+
+ /**
+ * @namespace Common and useful DOM elements for the class instance
+ */
+ this.dom = {
+ /**
+ * Wrapper for the button - given back to DataTables as the node to insert
+ * @property wrapper
+ * @type Node
+ * @default null
+ */
+ "wrapper": null,
+
+ /**
+ * Activation button
+ * @property button
+ * @type Node
+ * @default null
+ */
+ "button": null,
+
+ /**
+ * Collection list node
+ * @property collection
+ * @type Node
+ * @default null
+ */
+ "collection": null,
+
+ /**
+ * Background node used for shading the display and event capturing
+ * @property background
+ * @type Node
+ * @default null
+ */
+ "background": null,
+
+ /**
+ * Element to position over the activation button to catch mouse events when using mouseover
+ * @property catcher
+ * @type Node
+ * @default null
+ */
+ "catcher": null,
+
+ /**
+ * List of button elements
+ * @property buttons
+ * @type Array
+ * @default []
+ */
+ "buttons": [],
+
+ /**
+ * List of group button elements
+ * @property groupButtons
+ * @type Array
+ * @default []
+ */
+ "groupButtons": [],
+
+ /**
+ * Restore button
+ * @property restore
+ * @type Node
+ * @default null
+ */
+ "restore": null
+ };
+
+ /* Store global reference */
+ ColVis.aInstances.push( this );
+
+ /* Constructor logic */
+ this.s.dt = $.fn.dataTable.Api ?
+ new $.fn.dataTable.Api( oDTSettings ).settings()[0] :
+ oDTSettings;
+
+ this._fnConstruct( oInit );
+ return this;
+};
+
+
+
+ColVis.prototype = {
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Public methods
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+ /**
+ * Get the ColVis instance's control button so it can be injected into the
+ * DOM
+ * @method button
+ * @returns {node} ColVis button
+ */
+ button: function ()
+ {
+ return this.dom.wrapper;
+ },
+
+ /**
+ * Alias of `rebuild` for backwards compatibility
+ * @method fnRebuild
+ */
+ "fnRebuild": function ()
+ {
+ this.rebuild();
+ },
+
+ /**
+ * Rebuild the list of buttons for this instance (i.e. if there is a column
+ * header update)
+ * @method fnRebuild
+ */
+ rebuild: function ()
+ {
+ /* Remove the old buttons */
+ for ( var i=this.dom.buttons.length-1 ; i>=0 ; i-- ) {
+ this.dom.collection.removeChild( this.dom.buttons[i] );
+ }
+ this.dom.buttons.splice( 0, this.dom.buttons.length );
+ this.dom.groupButtons.splice(0, this.dom.groupButtons.length);
+
+ if ( this.dom.restore ) {
+ this.dom.restore.parentNode( this.dom.restore );
+ }
+
+ /* Re-add them (this is not the optimal way of doing this, it is fast and effective) */
+ this._fnAddGroups();
+ this._fnAddButtons();
+
+ /* Update the checkboxes */
+ this._fnDrawCallback();
+ },
+
+
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Private methods (they are of course public in JS, but recommended as private)
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+ /**
+ * Constructor logic
+ * @method _fnConstruct
+ * @returns void
+ * @private
+ */
+ "_fnConstruct": function ( init )
+ {
+ this._fnApplyCustomisation( init );
+
+ var that = this;
+ var i, iLen;
+ this.dom.wrapper = document.createElement('div');
+ this.dom.wrapper.className = "ColVis";
+
+ this.dom.button = $( ' ', {
+ 'class': !this.s.dt.bJUI ?
+ this.s.buttonClass :
+ "ColVis_Button ColVis_MasterButton ui-button ui-state-default"
+ } )
+ .append( ''+this.s.buttonText+' ' )
+ .bind( this.s.activate=="mouseover" ? "mouseover" : "click", function (e) {
+ e.preventDefault();
+ that._fnCollectionShow();
+ } )
+ .appendTo( this.dom.wrapper )[0];
+
+ this.dom.catcher = this._fnDomCatcher();
+ this.dom.collection = this._fnDomCollection();
+ this.dom.background = this._fnDomBackground();
+
+ this._fnAddGroups();
+ this._fnAddButtons();
+
+ /* Store the original visibility information */
+ for ( i=0, iLen=this.s.dt.aoColumns.length ; i'+
+ this.s.restore+
+ ''
+ )
+ .click( function (e) {
+ for ( var i=0, iLen=that.s.abOriginal.length ; i'+
+ str+
+ ''
+ )
+ .click( function (e) {
+ for ( var i=0, iLen=that.s.abOriginal.length ; i'+
+ ''+
+ ' '+
+ ''+oGroup.sTitle+' '+
+ ' '+
+ ''
+ )
+ .click( function (e) {
+ var showHide = !$('input', this).is(":checked");
+ if ( e.target.nodeName.toLowerCase() !== "li" )
+ {
+ showHide = ! showHide;
+ }
+
+ for ( var j=0 ; j < oGroup.aiColumns.length ; j++ )
+ {
+ that.s.dt.oInstance.fnSetColumnVis( oGroup.aiColumns[j], showHide );
+ }
+ } )[0];
+ },
+
+
+ /**
+ * Create the DOM for a show / hide button
+ * @method _fnDomColumnButton
+ * @param {int} i Column in question
+ * @returns {Node} Created button
+ * @private
+ */
+ "_fnDomColumnButton": function ( i )
+ {
+ var
+ that = this,
+ column = this.s.dt.aoColumns[i],
+ dt = this.s.dt;
+
+ var title = this.s.fnLabel===null ?
+ column.sTitle :
+ this.s.fnLabel( i, column.sTitle, column.nTh );
+
+ return $(
+ ''+
+ ''+
+ ' '+
+ ''+title+' '+
+ ' '+
+ ' '
+ )
+ .click( function (e) {
+ var showHide = !$('input', this).is(":checked");
+ if ( e.target.nodeName.toLowerCase() !== "li" )
+ {
+ if ( e.target.nodeName.toLowerCase() == "input" || that.s.fnStateChange === null )
+ {
+ showHide = ! showHide;
+ }
+ }
+
+ /* Need to consider the case where the initialiser created more than one table - change the
+ * API index that DataTables is using
+ */
+ var oldIndex = $.fn.dataTableExt.iApiIndex;
+ $.fn.dataTableExt.iApiIndex = that._fnDataTablesApiIndex.call(that);
+
+ // Optimisation for server-side processing when scrolling - don't do a full redraw
+ if ( dt.oFeatures.bServerSide )
+ {
+ that.s.dt.oInstance.fnSetColumnVis( i, showHide, false );
+ that.s.dt.oInstance.fnAdjustColumnSizing( false );
+ if (dt.oScroll.sX !== "" || dt.oScroll.sY !== "" )
+ {
+ that.s.dt.oInstance.oApi._fnScrollDraw( that.s.dt );
+ }
+ that._fnDrawCallback();
+ }
+ else
+ {
+ that.s.dt.oInstance.fnSetColumnVis( i, showHide );
+ }
+
+ $.fn.dataTableExt.iApiIndex = oldIndex; /* Restore */
+
+ if ( that.s.fnStateChange !== null )
+ {
+ if ( e.target.nodeName.toLowerCase() == "span" )
+ {
+ e.preventDefault();
+ }
+ that.s.fnStateChange.call( that, i, showHide );
+ }
+ } )[0];
+ },
+
+
+ /**
+ * Get the position in the DataTables instance array of the table for this
+ * instance of ColVis
+ * @method _fnDataTablesApiIndex
+ * @returns {int} Index
+ * @private
+ */
+ "_fnDataTablesApiIndex": function ()
+ {
+ for ( var i=0, iLen=this.s.dt.oInstance.length ; i ', {
+ 'class': !this.s.dt.bJUI ?
+ "ColVis_collection" :
+ "ColVis_collection ui-buttonset ui-buttonset-multi"
+ } )
+ .css( {
+ 'display': 'none',
+ 'opacity': 0,
+ 'position': ! this.s.bCssPosition ?
+ 'absolute' :
+ ''
+ } )[0];
+ },
+
+
+ /**
+ * An element to be placed on top of the activate button to catch events
+ * @method _fnDomCatcher
+ * @returns {Node} div container for the collection
+ * @private
+ */
+ "_fnDomCatcher": function ()
+ {
+ var
+ that = this,
+ nCatcher = document.createElement('div');
+ nCatcher.className = "ColVis_catcher";
+
+ $(nCatcher).click( function () {
+ that._fnCollectionHide.call( that, null, null );
+ } );
+
+ return nCatcher;
+ },
+
+
+ /**
+ * Create the element used to shade the background, and capture hide events (it is shown and
+ * hidden as needed)
+ * @method _fnDomBackground
+ * @returns {Node} div container for the background
+ * @private
+ */
+ "_fnDomBackground": function ()
+ {
+ var that = this;
+
+ var background = $('
')
+ .addClass( 'ColVis_collectionBackground' )
+ .css( 'opacity', 0 )
+ .click( function () {
+ that._fnCollectionHide.call( that, null, null );
+ } );
+
+ /* When considering a mouse over action for the activation, we also consider a mouse out
+ * which is the same as a mouse over the background - without all the messing around of
+ * bubbling events. Use the catcher element to avoid messing around with bubbling
+ */
+ if ( this.s.activate == "mouseover" )
+ {
+ background.mouseover( function () {
+ that.s.overcollection = false;
+ that._fnCollectionHide.call( that, null, null );
+ } );
+ }
+
+ return background[0];
+ },
+
+
+ /**
+ * Show the show / hide list and the background
+ * @method _fnCollectionShow
+ * @returns void
+ * @private
+ */
+ "_fnCollectionShow": function ()
+ {
+ var that = this, i, iLen, iLeft;
+ var oPos = $(this.dom.button).offset();
+ var nHidden = this.dom.collection;
+ var nBackground = this.dom.background;
+ var iDivX = parseInt(oPos.left, 10);
+ var iDivY = parseInt(oPos.top + $(this.dom.button).outerHeight(), 10);
+
+ if ( ! this.s.bCssPosition )
+ {
+ nHidden.style.top = iDivY+"px";
+ nHidden.style.left = iDivX+"px";
+ }
+
+ $(nHidden).css( {
+ 'display': 'block',
+ 'opacity': 0
+ } );
+
+ nBackground.style.bottom ='0px';
+ nBackground.style.right = '0px';
+
+ var oStyle = this.dom.catcher.style;
+ oStyle.height = $(this.dom.button).outerHeight()+"px";
+ oStyle.width = $(this.dom.button).outerWidth()+"px";
+ oStyle.top = oPos.top+"px";
+ oStyle.left = iDivX+"px";
+
+ document.body.appendChild( nBackground );
+ document.body.appendChild( nHidden );
+ document.body.appendChild( this.dom.catcher );
+
+ /* This results in a very small delay for the end user but it allows the animation to be
+ * much smoother. If you don't want the animation, then the setTimeout can be removed
+ */
+ $(nHidden).animate({"opacity": 1}, that.s.iOverlayFade);
+ $(nBackground).animate({"opacity": 0.1}, that.s.iOverlayFade, 'linear', function () {
+ /* In IE6 if you set the checked attribute of a hidden checkbox, then this is not visually
+ * reflected. As such, we need to do it here, once it is visible. Unbelievable.
+ */
+ if ( $.browser && $.browser.msie && $.browser.version == "6.0" )
+ {
+ that._fnDrawCallback();
+ }
+ });
+
+ /* Visual corrections to try and keep the collection visible */
+ if ( !this.s.bCssPosition )
+ {
+ iLeft = ( this.s.sAlign=="left" ) ?
+ iDivX :
+ iDivX - $(nHidden).outerWidth() + $(this.dom.button).outerWidth();
+
+ nHidden.style.left = iLeft+"px";
+
+ var iDivWidth = $(nHidden).outerWidth();
+ var iDivHeight = $(nHidden).outerHeight();
+ var iDocWidth = $(document).width();
+
+ if ( iLeft + iDivWidth > iDocWidth )
+ {
+ nHidden.style.left = (iDocWidth-iDivWidth)+"px";
+ }
+ }
+
+ this.s.hidden = false;
+ },
+
+
+ /**
+ * Hide the show / hide list and the background
+ * @method _fnCollectionHide
+ * @returns void
+ * @private
+ */
+ "_fnCollectionHide": function ( )
+ {
+ var that = this;
+
+ if ( !this.s.hidden && this.dom.collection !== null )
+ {
+ this.s.hidden = true;
+
+ $(this.dom.collection).animate({"opacity": 0}, that.s.iOverlayFade, function (e) {
+ this.style.display = "none";
+ } );
+
+ $(this.dom.background).animate({"opacity": 0}, that.s.iOverlayFade, function (e) {
+ document.body.removeChild( that.dom.background );
+ document.body.removeChild( that.dom.catcher );
+ } );
+ }
+ },
+
+
+ /**
+ * Alter the colspan on any fnOpen rows
+ */
+ "_fnAdjustOpenRows": function ()
+ {
+ var aoOpen = this.s.dt.aoOpenRows;
+ var iVisible = this.s.dt.oApi._fnVisbleColumns( this.s.dt );
+
+ for ( var i=0, iLen=aoOpen.length ; i1?function(){var i=o?o.concat():[];return n=t?n||this:this,i.push.apply(i,arguments)1?function(){var i=o?o.concat():[];return n=t?n||this:this,i.push.apply(i,arguments)0?r({},e[n]):e[n],t[n])})(o),e))}),P=t(function(e,t,n){var r,o,i;return r=t[0],o=N.call(t,1),o.length>0?(e[r]=null!=(i=e[r])?i:{},P(e[r],o,n)):(e[r]=n,e)}),k=function(e){return d(function(t){return d(function(e){return e[t]})(e)})(f(e[0]))},S=t(function(e,n,r){var o;return(o=t(function(e,t,n,r,i){return s(function(i){var a,s;return a=i[0],s=i[1],n1){for(var m=Array(v),g=0;g1){for(var b=Array(y),C=0;C]/;e.exports=r},function(e,t,n){"use strict";var r,o=n(7),i=n(38),a=/^[ \r\n\t\f]/,s=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,u=n(46),l=u(function(e,t){if(e.namespaceURI!==i.svg||"innerHTML"in e)e.innerHTML=t;else{r=r||document.createElement("div"),r.innerHTML=""+t+" ";for(var n=r.firstChild;n.firstChild;)e.appendChild(n.firstChild)}});if(o.canUseDOM){var c=document.createElement("div");c.innerHTML=" ",""===c.innerHTML&&(l=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),a.test(t)||"<"===t[0]&&s.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t}),c=null}e.exports=l},function(e,t){function n(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function o(e){if(c===setTimeout)return setTimeout(e,0);if((c===n||!c)&&setTimeout)return c=setTimeout,setTimeout(e,0);try{return c(e,0)}catch(t){try{return c.call(null,e,0)}catch(t){return c.call(this,e,0)}}}function i(e){if(p===clearTimeout)return clearTimeout(e);if((p===r||!p)&&clearTimeout)return p=clearTimeout,clearTimeout(e);try{return p(e)}catch(t){try{return p.call(null,e)}catch(t){return p.call(this,e)}}}function a(){v&&d&&(v=!1,d.length?h=d.concat(h):m=-1,h.length&&s())}function s(){if(!v){var e=o(a);v=!0;for(var t=h.length;t;){for(d=h,h=[];++m1)for(var n=1;n-1?void 0:a("96",e),!l.plugins[n]){t.extractEvents?void 0:a("97",e),l.plugins[n]=t;var r=t.eventTypes;for(var i in r)o(r[i],t,i)?void 0:a("98",i,e)}}}function o(e,t,n){l.eventNameDispatchConfigs.hasOwnProperty(n)?a("99",n):void 0,l.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var o in r)if(r.hasOwnProperty(o)){var s=r[o];i(s,t,n)}return!0}return!!e.registrationName&&(i(e.registrationName,t,n),!0)}function i(e,t,n){l.registrationNameModules[e]?a("100",e):void 0,l.registrationNameModules[e]=t,l.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var a=n(3),s=(n(1),null),u={},l={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},possibleRegistrationNames:null,injectEventPluginOrder:function(e){s?a("101"):void 0,s=Array.prototype.slice.call(e),r()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];u.hasOwnProperty(n)&&u[n]===o||(u[n]?a("102",n):void 0,u[n]=o,t=!0)}t&&r()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return l.registrationNameModules[t.registrationName]||null;if(void 0!==t.phasedRegistrationNames){var n=t.phasedRegistrationNames;for(var r in n)if(n.hasOwnProperty(r)){var o=l.registrationNameModules[n[r]];if(o)return o}}return null},_resetEventPlugins:function(){s=null;for(var e in u)u.hasOwnProperty(e)&&delete u[e];l.plugins.length=0;var t=l.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=l.registrationNameModules;for(var o in r)r.hasOwnProperty(o)&&delete r[o]}};e.exports=l},function(e,t,n){"use strict";function r(e){return"topMouseUp"===e||"topTouchEnd"===e||"topTouchCancel"===e}function o(e){return"topMouseMove"===e||"topTouchMove"===e}function i(e){return"topMouseDown"===e||"topTouchStart"===e}function a(e,t,n,r){var o=e.type||"unknown-event";e.currentTarget=g.getNodeFromInstance(r),t?v.invokeGuardedCallbackWithCatch(o,n,e):v.invokeGuardedCallback(o,n,e),e.currentTarget=null}function s(e,t){var n=e._dispatchListeners,r=e._dispatchInstances;if(Array.isArray(n))for(var o=0;o0&&r.length<20?n+" (keys: "+r.join(", ")+")":n}function i(e,t){var n=s.get(e);if(!n){return null}return n}var a=n(3),s=(n(13),n(27)),u=(n(9),n(10)),l=(n(1),n(2),{isMounted:function(e){var t=s.get(e);return!!t&&!!t._renderedComponent},enqueueCallback:function(e,t,n){l.validateCallback(t,n);var o=i(e);return o?(o._pendingCallbacks?o._pendingCallbacks.push(t):o._pendingCallbacks=[t],void r(o)):null},enqueueCallbackInternal:function(e,t){e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t],r(e)},enqueueForceUpdate:function(e){var t=i(e,"forceUpdate");t&&(t._pendingForceUpdate=!0,r(t))},enqueueReplaceState:function(e,t,n){var o=i(e,"replaceState");o&&(o._pendingStateQueue=[t],o._pendingReplaceState=!0,void 0!==n&&null!==n&&(l.validateCallback(n,"replaceState"),o._pendingCallbacks?o._pendingCallbacks.push(n):o._pendingCallbacks=[n]),r(o))},enqueueSetState:function(e,t){var n=i(e,"setState");if(n){var o=n._pendingStateQueue||(n._pendingStateQueue=[]);o.push(t),r(n)}},enqueueElementInternal:function(e,t,n){e._pendingElement=t,e._context=n,r(e)},validateCallback:function(e,t){e&&"function"!=typeof e?a("122",t,o(e)):void 0}});e.exports=l},function(e,t){"use strict";var n=function(e){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,o)})}:e};e.exports=n},function(e,t){"use strict";function n(e){var t,n=e.keyCode;return"charCode"in e?(t=e.charCode,0===t&&13===n&&(t=13)):t=n,t>=32||13===t?t:0}e.exports=n},function(e,t){"use strict";function n(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var r=o[e];return!!r&&!!n[r]}function r(e){return n}var o={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};e.exports=r},function(e,t){"use strict";function n(e){var t=e.target||e.srcElement||window;return t.correspondingUseElement&&(t=t.correspondingUseElement),3===t.nodeType?t.parentNode:t}e.exports=n},function(e,t,n){"use strict";function r(e,t){if(!i.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,r=n in document;if(!r){var a=document.createElement("div");a.setAttribute(n,"return;"),r="function"==typeof a[n]}return!r&&o&&"wheel"===e&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var o,i=n(7);i.canUseDOM&&(o=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),e.exports=r},function(e,t){"use strict";function n(e,t){var n=null===e||e===!1,r=null===t||t===!1;if(n||r)return n===r;var o=typeof e,i=typeof t;return"string"===o||"number"===o?"string"===i||"number"===i:"object"===i&&e.type===t.type&&e.key===t.key}e.exports=n},function(e,t,n){"use strict";var r=(n(4),n(8)),o=(n(2),r);e.exports=o},function(e,t,n){(function(){function t(e,t){var n={}.hasOwnProperty;for(var r in t)n.call(t,r)&&(e[r]=t[r]);return e}function r(e,t){for(var n=-1,r=t.length>>>0;++n0&&!this.props.hideResetButton?x({className:"react-selectize-reset-button-container",onClick:function(e){return function(){return a.props.onValuesChange([],function(){return a.props.onSearchChange("",function(){return a.highlightAndFocus()})})}(),j(e)}},this.props.renderResetButton()):void 0,x({className:"react-selectize-toggle-button-container",onMouseDown:function(e){return a.props.open?a.onOpenChange(!1,function(){}):a.props.onAnchorChange(p(a.props.values),function(){return a.onOpenChange(!0,function(){})}),j(e)}},this.props.renderToggleButton({open:this.props.open,flipped:r}))),D((o=t({},this.props),o.ref="dropdownMenu",o.className=B((i={"react-selectize":1},i[this.props.className+""]=1,i)),o.theme=this.props.theme,o.scrollLock=this.props.scrollLock,o.onScrollChange=this.props.onScrollChange,o.bottomAnchor=function(){return M(a.refs.control)},o.tetherProps=(i=t({},this.props.tetherProps),i.target=function(){return M(a.refs.control)},i),o.highlightedUid=this.props.highlightedUid,o.onHighlightedUidChange=this.props.onHighlightedUidChange,o.onOptionClick=function(t){a.selectHighlightedUid(e,function(){})},o)))},handleKeydown:function(e,t){var n,o,i,a=this;switch(n=e.anchorIndex,t.persist(),t.which){case 8:if(this.props.search.length>0||n===-1)return;!function(){var e,t,r,o;return e=n,t=n-1<0?void 0:a.props.values[n-1],r=a.props.values[n],a.props.onValuesChange(null!=(o=v(function(e){return a.isEqualToObject(e,r)})(a.props.values))?o:[],function(){return function(){return function(e){return"undefined"==typeof s(function(e){return a.isEqualToObject(e,r)},a.props.values)?a.props.restoreOnBackspace?a.props.onSearchChange(a.props.restoreOnBackspace(r),function(){return e(!0)}):e(!0):e(!1)}}()(function(r){if(r&&(a.highlightAndScrollToSelectableOption(a.props.firstOptionIndexToHighlight(a.props.options),1),n===e&&("undefined"==typeof t||s(function(e){return a.isEqualToObject(e,t)})(a.props.values))))return a.props.onAnchorChange(t,function(){})})})}(),j(t);break;case 27:!function(){return a.props.open?function(e){return a.onOpenChange(!1,e)}:function(e){return a.props.onValuesChange([],e)}}()(function(){return a.props.onSearchChange("",function(){return a.focusOnInput()})})}if(this.props.open&&r(t.which,[13].concat(this.props.delimiters))&&!(null!=t&&t.metaKey||null!=t&&t.ctrlKey||null!=t&&t.shiftKey)&&(o=this.selectHighlightedUid(n,function(e){if("undefined"==typeof e)return a.props.onKeyboardSelectionFailed(t.which)}),o&&this.props.cancelKeyboardEventOnSelection))return j(t);if(0===this.props.search.length)switch(t.which){case 37:this.props.onAnchorChange(n-1<0||t.metaKey?void 0:this.props.values[_(n-1,0,this.props.values.length-1)],function(){});break;case 39:this.props.onAnchorChange(t.metaKey?p(this.props.values):this.props.values[_(n+1,0,this.props.values.length-1)],function(){})}switch(t.which){case 38:return this.props.onScrollLockChange(!0),i=function(){switch(!1){case"undefined"!=typeof this.props.highlightedUid:return 0;default:return-1+this.optionIndexFromUid(this.props.highlightedUid)}}.call(this),this.highlightAndScrollToSelectableOption(i,-1,function(e){if(!e)return a.highlightAndScrollToSelectableOption(a.props.options.length-1,-1)});case 40:return this.props.onScrollLockChange(!0),i=function(){switch(!1){case"undefined"!=typeof this.props.highlightedUid:return 0;default:return 1+this.optionIndexFromUid(this.props.highlightedUid)}}.call(this),this.highlightAndScrollToSelectableOption(i,1,function(e){if(!e)return a.highlightAndScrollToSelectableOption(0,1)})}},componentDidMount:function(){this.props.autofocus&&this.focus(),this.props.open&&this.highlightAndFocus()},componentDidUpdate:function(e){this.props.open&&!e.open&&void 0===this.props.highlightedUid&&this.highlightAndFocus(),!this.props.open&&e.open&&this.props.onHighlightedUidChange(void 0,function(){})},componentWillReceiveProps:function(e){"undefined"!=typeof this.props.disabled&&this.props.disabled!==!1||"undefined"==typeof e.disabled||e.disabled!==!0||this.onOpenChange(!1,function(){})},optionIndexFromUid:function(e){var t=this;return u(function(n){return w(e,t.props.uid(n))})(this.props.options)},closeDropdown:function(e){var t=this;this.onOpenChange(!1,function(){return t.props.onAnchorChange(p(t.props.values),e)})},blur:function(){this.refs.search.blur()},focus:function(){this.refs.search.focus()},focusOnInput:function(){var e;e=M(this.refs.search),e!==document.activeElement&&(this.focusLock=!0,e.focus(),e.value=e.value)},highlightAndFocus:function(){this.highlightAndScrollToSelectableOption(this.props.firstOptionIndexToHighlight(this.props.options),1),this.focusOnInput()},highlightAndScrollToOption:function(e,t){null==t&&(t=function(){}),this.refs.dropdownMenu.highlightAndScrollToOption(e,t)},highlightAndScrollToSelectableOption:function(e,t,n){var r=this;null==n&&(n=function(){}),function(){return r.props.open?function(e){return e()}:function(e){return r.onOpenChange(!0,e)}}()(function(){return r.refs.dropdownMenu.highlightAndScrollToSelectableOption(e,t,n)})},isEqualToObject:function(){return w(this.props.uid(arguments[0]),this.props.uid(arguments[1]))},onOpenChange:function(e,t){return this.props.onOpenChange(!this.props.disabled&&e,t)},selectHighlightedUid:function(e,t){var n,r,o=this;return void 0===this.props.highlightedUid?(t(),!1):(n=this.optionIndexFromUid(this.props.highlightedUid),"number"!=typeof n?(t(),!1):(r=this.props.options[n],function(){return o.props.onValuesChange(f(function(e){return o.props.values[e]},function(){var t,n,r=[];for(t=0,n=e;t<=n;++t)r.push(t);return r}()).concat([r],f(function(e){return o.props.values[e]},function(){var t,n,r=[];for(t=e+1,n=this.props.values.length;t .":"function"==typeof t?" Instead of passing a class like Foo, pass React.createElement(Foo) or .":null!=t&&void 0!==t.props?" This may be caused by unintentionally loading two independent copies of React.":"");var a,s=m.createElement(F,{child:t});if(e){var u=w.get(e);a=u._processChildContext(u._context)}else a=P;var c=f(n);if(c){var p=c._currentElement,h=p.props.child;if(N(h,t)){var v=c._renderedComponent.getPublicInstance(),g=r&&function(){r.call(v)};return j._updateRootComponent(c,s,a,n,g),v}j.unmountComponentAtNode(n)}var y=o(n),b=y&&!!i(y),C=l(n),_=b&&!c&&!C,E=j._renderNewRootComponent(s,n,_,a)._renderedComponent.getPublicInstance();return r&&r.call(E),E},render:function(e,t,n){return j._renderSubtreeIntoContainer(null,e,t,n)},unmountComponentAtNode:function(e){c(e)?void 0:d("40");var t=f(e);if(!t){l(e),1===e.nodeType&&e.hasAttribute(A);return!1}return delete L[t._instance.rootID],O.batchedUpdates(u,t,e,!1),!0},_mountImageIntoNode:function(e,t,n,i,a){if(c(t)?void 0:d("41"),i){var s=o(t);if(E.canReuseMarkup(e,s))return void y.precacheNode(n,s);var u=s.getAttribute(E.CHECKSUM_ATTR_NAME);s.removeAttribute(E.CHECKSUM_ATTR_NAME);var l=s.outerHTML;s.setAttribute(E.CHECKSUM_ATTR_NAME,u);var p=e,f=r(p,l),v=" (client) "+p.substring(f-20,f+20)+"\n (server) "+l.substring(f-20,f+20);t.nodeType===D?d("42",v):void 0}if(t.nodeType===D?d("43"):void 0,a.useCreateElement){for(;t.lastChild;)t.removeChild(t.lastChild);h.insertTreeBefore(t,e,null)}else S(t,e),y.precacheNode(n,t.firstChild)}};e.exports=j},function(e,t,n){"use strict";var r=n(3),o=n(12),i=(n(1),{HOST:0,COMPOSITE:1,EMPTY:2,getType:function(e){return null===e||e===!1?i.EMPTY:o.isValidElement(e)?"function"==typeof e.type?i.COMPOSITE:i.HOST:void r("26",e)}});e.exports=i},function(e,t){"use strict";var n={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(e){n.currentScrollLeft=e.x,n.currentScrollTop=e.y}};e.exports=n},function(e,t,n){"use strict";function r(e,t){return null==t?o("30"):void 0,null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}var o=n(3);n(1);e.exports=r},function(e,t){"use strict";function n(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}e.exports=n},function(e,t,n){"use strict";function r(e){for(var t;(t=e._renderedNodeType)===o.COMPOSITE;)e=e._renderedComponent;return t===o.HOST?e._renderedComponent:t===o.EMPTY?null:void 0}var o=n(73);e.exports=r},function(e,t,n){"use strict";function r(){return!i&&o.canUseDOM&&(i="textContent"in document.documentElement?"textContent":"innerText"),i}var o=n(7),i=null;e.exports=r},function(e,t,n){"use strict";function r(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n["ms"+e]="MS"+t,n["O"+e]="o"+t.toLowerCase(),n}function o(e){if(s[e])return s[e];if(!a[e])return e;var t=a[e];for(var n in t)if(t.hasOwnProperty(n)&&n in u)return s[e]=t[n];return""}var i=n(7),a={animationend:r("Animation","AnimationEnd"),animationiteration:r("Animation","AnimationIteration"),animationstart:r("Animation","AnimationStart"),transitionend:r("Transition","TransitionEnd")},s={},u={};i.canUseDOM&&(u=document.createElement("div").style,"AnimationEvent"in window||(delete a.animationend.animation,delete a.animationiteration.animation,delete a.animationstart.animation),"TransitionEvent"in window||delete a.transitionend.transition),e.exports=o},function(e,t,n){"use strict";function r(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}function o(e){return"function"==typeof e&&"undefined"!=typeof e.prototype&&"function"==typeof e.prototype.mountComponent&&"function"==typeof e.prototype.receiveComponent}function i(e,t){var n;if(null===e||e===!1)n=l.create(i);else if("object"==typeof e){var s=e,u=s.type;if("function"!=typeof u&&"string"!=typeof u){var f="";f+=r(s._owner),a("130",null==u?u:typeof u,f)}"string"==typeof s.type?n=c.createInternalComponent(s):o(s.type)?(n=new s.type(s),n.getHostNode||(n.getHostNode=n.getNativeNode)):n=new p(s)}else"string"==typeof e||"number"==typeof e?n=c.createInstanceForText(e):a("131",typeof e);return n._mountIndex=0,n._mountImage=null,n}var a=n(3),s=n(4),u=n(132),l=n(68),c=n(70),p=(n(209),n(1),n(2),function(e){this.construct(e)});s(p.prototype,u,{_instantiateReactComponent:i}),e.exports=i},function(e,t){"use strict";function n(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!r[e.type]:"textarea"===t}var r={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};e.exports=n},function(e,t,n){"use strict";var r=n(7),o=n(34),i=n(35),a=function(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t};r.canUseDOM&&("textContent"in document.documentElement||(a=function(e,t){return 3===e.nodeType?void(e.nodeValue=t):void i(e,o(t))})),e.exports=a},function(e,t,n){"use strict";function r(e,t){return e&&"object"==typeof e&&null!=e.key?l.escape(e.key):t.toString(36)}function o(e,t,n,i){var f=typeof e;if("undefined"!==f&&"boolean"!==f||(e=null),null===e||"string"===f||"number"===f||"object"===f&&e.$$typeof===s)return n(i,e,""===t?c+r(e,0):t),1;var d,h,v=0,m=""===t?c:t+p;if(Array.isArray(e))for(var g=0;gc){for(var t=0,n=s.length-l;t-1}).map(function(e,t){return l.default.createElement("option",{key:t,value:e.name},e.name)})}},{key:"getValues",value:function(e){return e?e.map(function(e){return{label:e,value:e}}):[]}},{key:"render",value:function(){var e=this,t=this.props.parameters.find(function(t){return t.value===e.props.condition.parameter});return this.props.condition.type=t?t.type:null,l.default.createElement("div",{className:this.props.classes.filterLineRow},l.default.createElement("div",{className:this.props.classes.filterLineParameter},l.default.createElement("select",{className:this.props.classes.filterLineInput,name:"parameter",value:this.props.condition.parameter,onChange:this.handleInputChange},l.default.createElement("option",{value:""},"-- Parameter --"),this.getCoefficients(this.props.parameters))),l.default.createElement("div",{className:this.props.classes.filterLineOperator},l.default.createElement("select",{className:this.props.classes.filterLineInput,name:"operator",value:this.props.condition.operator,onChange:this.handleInputChange},l.default.createElement("option",{disabled:!0,value:""},"-- Operator --"),this.getOperators(this.props.operators,this.props.parameters.find(function(t){return t.value===e.props.condition.parameter})))),l.default.createElement("div",{className:this.props.classes.filterLineValue},l.default.createElement(c.MultiSelect,{style:{width:"100%"},placeholder:"-- Value --",theme:"bootstrap3",values:this.getValues(this.props.condition.value),onValuesChange:this.handleValueChange,uid:function(e){return e.value},restoreOnBackspace:function(e){return e.label.toString()},createFromSearch:function(t,n,r){return e.labels=n.map(function(e){return e.label}),0===r.trim().length||e.labels.indexOf(r.trim())!==-1?null:{label:r.trim(),value:r.trim()}},renderNoResultsFound:function(e,t){return l.default.createElement("div",{className:"no-results-found"},function(){return 0===t.trim().length?"Enter a new value":e.map(function(e){return e.label}).indexOf(t.trim())!==-1?"Value already exists":void 0}())}})))}}]),t}(u.Component);t.default=p},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t){for(var n=0;n1){var t=this.state.conditions;t.splice(e,1),this.setState({conditions:t})}}},{key:"componentDidUpdate",value:function(e,t){t!==this.state&&this.props.config.updateConditions(this.state.conditions)}},{key:"render",value:function(){var e=this,t=this.state.conditions.map(function(t,n){return l.default.createElement("div",{key:n},l.default.createElement(d.default,{index:n,classes:e.props.config.classes,addCondition:e.addCondition,removeCondition:e.removeCondition}),l.default.createElement(p.default,{parameters:e.props.config.parameters,operators:e.props.config.operators,condition:t,index:n,classes:e.props.config.classes,onChange:e.updateCondition}))});return l.default.createElement("div",{className:"form-horizontal"},t)}}]),t}(u.Component);t.default=h},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var o=n(6),i=r(o),a=n(17),s=r(a),u=n(94),l=r(u),c=window.$;if(c.fn.filterer=function(e){e.operators=[{name:"contains",types:["string","str"]},{name:"does not contain",types:["string","str"]},{name:"is",types:["string","str","number","int","float"]},{name:"is not",types:["string","str","number","int","float"]},{name:"begins with",types:["string","str"]},{name:"ends with",types:["string","str"]},{name:"is greater than",types:["number","int","float"]},{name:"is less than",types:["number","int","float"]}],e.classes=Object.assign({plusIcon:"fa fa-fw fa-plus",minusIcon:"fa fa-fw fa-minus",filterLineRow:"form-group",filterLineParameter:"col-sm-4",filterLineOperator:"col-sm-3",filterLineValue:"col-sm-5",filterLineInput:"form-control",filterLineLabelRow:"row",filterLineLabelCondition:"col-sm-10",filterLineLabelControls:"col-sm-2 text-right"},e.classes),this.each(function(){s.default.render(i.default.createElement(l.default,{id:"filterer",config:e}),this)})},window.wcomartin_filterer_demo){var p={parameters:[{name:"Title",type:"string",value:"title"},{name:"Year",type:"number",value:"year"}],conditions:[{parameter:"year",operator:"is",value:[2017]}]};p.updateConditions=function(e){console.log(JSON.stringify(e))},c("#root").filterer(p)}},function(e,t,n){"use strict";function r(e,t){for(var n=e;n.parentNode;)n=n.parentNode;var r=n.querySelectorAll(t);return Array.prototype.indexOf.call(r,e)!==-1}var o=n(1),i={addClass:function(e,t){return/\s/.test(t)?o(!1):void 0,t&&(e.classList?e.classList.add(t):i.hasClass(e,t)||(e.className=e.className+" "+t)),e},removeClass:function(e,t){return/\s/.test(t)?o(!1):void 0,t&&(e.classList?e.classList.remove(t):i.hasClass(e,t)&&(e.className=e.className.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,""))),e},conditionClass:function(e,t,n){return(n?i.addClass:i.removeClass)(e,t)},hasClass:function(e,t){return/\s/.test(t)?o(!1):void 0,e.classList?!!t&&e.classList.contains(t):(" "+e.className+" ").indexOf(" "+t+" ")>-1},matchesSelector:function(e,t){var n=e.matches||e.webkitMatchesSelector||e.mozMatchesSelector||e.msMatchesSelector||function(t){return r(e,t)};return n.call(e,t)}};e.exports=i},function(e,t){"use strict";function n(e){return e.replace(r,function(e,t){return t.toUpperCase()})}var r=/-(.)/g;e.exports=n},function(e,t,n){"use strict";function r(e){return o(e.replace(i,"ms-"))}var o=n(97),i=/^-ms-/;e.exports=r},function(e,t,n){"use strict";function r(e,t){return!(!e||!t)&&(e===t||!o(e)&&(o(t)?r(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}var o=n(107);e.exports=r},function(e,t,n){"use strict";function r(e){var t=e.length;if(Array.isArray(e)||"object"!=typeof e&&"function"!=typeof e?a(!1):void 0,"number"!=typeof t?a(!1):void 0,0===t||t-1 in e?void 0:a(!1),"function"==typeof e.callee?a(!1):void 0,e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(e){}for(var n=Array(t),r=0;r ":a.innerHTML="<"+e+">"+e+">",s[e]=!a.firstChild),s[e]?f[e]:null}var o=n(7),i=n(1),a=o.canUseDOM?document.createElement("div"):null,s={},u=[1,''," "],l=[1,""],c=[3,""],p=[1,''," "],f={"*":[1,"?","
"],area:[1,""," "],col:[2,""],legend:[1,""," "],param:[1,""," "],tr:[2,""],optgroup:u,option:u,caption:l,colgroup:l,tbody:l,tfoot:l,thead:l,td:c,th:c},d=["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"];d.forEach(function(e){f[e]=p,s[e]=!0}),e.exports=r},function(e,t){"use strict";function n(e){return e.Window&&e instanceof e.Window?{x:e.pageXOffset||e.document.documentElement.scrollLeft,y:e.pageYOffset||e.document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}e.exports=n},function(e,t){"use strict";function n(e){return e.replace(r,"-$1").toLowerCase()}var r=/([A-Z])/g;e.exports=n},function(e,t,n){"use strict";function r(e){return o(e).replace(i,"-ms-")}var o=n(104),i=/^ms-/;e.exports=r},function(e,t){"use strict";function n(e){var t=e?e.ownerDocument||e:document,n=t.defaultView||window;return!(!e||!("function"==typeof n.Node?e instanceof n.Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}e.exports=n},function(e,t,n){"use strict";function r(e){return o(e)&&3==e.nodeType}var o=n(106);e.exports=r},function(e,t){"use strict";function n(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}e.exports=n},function(e,t){function n(e,t){var n,r=function(o){return e.length>1?function(){var i=o?o.concat():[];return n=t?n||this:this,i.push.apply(i,arguments)1?function(){var i=o?o.concat():[];return n=t?n||this:this,i.push.apply(i,arguments)>>0;++n=0;--r)o=n[r],t=e(o,t);return t}),P=n(function(e,t){return O(e,t[t.length-1],t.slice(0,-1))}),k=n(function(e,t){var n,r,o;for(n=[],r=t;null!=(o=e(r));)n.push(o[0]),r=o[1];return n}),S=function(e){return[].concat.apply([],e)},N=n(function(e,t){var n;return[].concat.apply([],function(){var r,o,i,a=[];for(r=0,i=(o=t).length;rt?1:ee(n)?1:e(t)t&&(t=i);return t},G=function(e){var t,n,r,o,i;for(t=e[0],n=0,o=(r=e.slice(1)).length;ne(n)&&(n=a);return n}),$=n(function(e,t){var n,r,o,i,a;for(n=t[0],r=0,i=(o=t.slice(1)).length;r1?function(){var i=o?o.concat():[];return n=t?n||this:this,i.push.apply(i,arguments)t?e:t}),o=n(function(e,t){return e0?1:0},u=n(function(e,t){return~~(e/t)}),l=n(function(e,t){return e%t}),c=n(function(e,t){return Math.floor(e/t)}),p=n(function(e,t){var n;return(e%(n=t)+n)%n}),f=function(e){return 1/e},d=Math.PI,h=2*d,v=Math.exp,m=Math.sqrt,g=Math.log,y=n(function(e,t){return Math.pow(e,t)}),b=Math.sin,C=Math.tan,_=Math.cos,w=Math.asin,E=Math.acos,x=Math.atan,T=n(function(e,t){return Math.atan2(e,t)}),O=function(e){return~~e},P=Math.round,k=Math.ceil,S=Math.floor,N=function(e){return e!==e},M=function(e){return e%2===0},A=function(e){return e%2!==0},I=n(function(e,t){var n;for(e=Math.abs(e),t=Math.abs(t);0!==t;)n=e%t,e=t,t=n;return e}),D=n(function(e,t){return Math.abs(Math.floor(e/I(e,t)*t))}),e.exports={max:r,min:o,negate:i,abs:a,signum:s,quot:u,rem:l,div:c,mod:p,recip:f,pi:d,tau:h,exp:v,sqrt:m,ln:g,pow:y,sin:b,tan:C,cos:_,acos:E,asin:w,atan:x,atan2:T,truncate:O,round:P,ceiling:k,floor:S,isItNaN:N,even:M,odd:A,gcd:I,lcm:D}},function(e,t){function n(e,t){var n,r=function(o){return e.length>1?function(){var i=o?o.concat():[];return n=t?n||this:this,i.push.apply(i,arguments)1?function(){var i=o?o.concat():[];return n=t?n||this:this,i.push.apply(i,arguments)1?n:n.toLowerCase())}).replace(/^([A-Z]+)/,function(e,t){return t.length>1?t+"-":t.toLowerCase()})},e.exports={split:r,join:o,lines:i,unlines:a,words:s,unwords:u,chars:l,unchars:c,reverse:p,repeat:f,capitalize:d,camelize:h,dasherize:v}},function(e,t,n){"use strict";function r(e){var t=new o(o._61);return t._81=1,t._65=e,t}var o=n(60);e.exports=o;var i=r(!0),a=r(!1),s=r(null),u=r(void 0),l=r(0),c=r("");o.resolve=function(e){if(e instanceof o)return e;if(null===e)return s;if(void 0===e)return u;if(e===!0)return i;if(e===!1)return a;if(0===e)return l;if(""===e)return c;if("object"==typeof e||"function"==typeof e)try{var t=e.then;if("function"==typeof t)return new o(t.bind(e))}catch(e){return new o(function(t,n){n(e)})}return r(e)},o.all=function(e){var t=Array.prototype.slice.call(e);return new o(function(e,n){function r(a,s){if(s&&("object"==typeof s||"function"==typeof s)){if(s instanceof o&&s.then===o.prototype.then){for(;3===s._81;)s=s._65;return 1===s._81?r(a,s._65):(2===s._81&&n(s._65),void s.then(function(e){r(a,e)},n))}var u=s.then;if("function"==typeof u){var l=new o(u.bind(s));return void l.then(function(e){r(a,e)},n)}}t[a]=s,0===--i&&e(t)}if(0===t.length)return e([]);for(var i=t.length,a=0;a>",k={array:c("array"),bool:c("boolean"),func:c("function"),number:c("number"),object:c("object"),string:c("string"),symbol:c("symbol"),any:p(),arrayOf:f,element:d(),instanceOf:h,node:y(),objectOf:m,oneOf:v,oneOfType:g,shape:b};return u.prototype=Error.prototype,k.checkPropTypes=a,k.PropTypes=k,k}},function(e,t){"use strict";var n="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";e.exports=n},function(e,t,n){"use strict";function r(e,t,n){return!o(e.props,t)||!o(e.state,n)}var o=n(30);e.exports=r},function(e,t){"use strict";var n={Properties:{"aria-current":0,"aria-details":0,"aria-disabled":0,"aria-hidden":0,"aria-invalid":0,"aria-keyshortcuts":0,"aria-label":0,"aria-roledescription":0,"aria-autocomplete":0,"aria-checked":0,"aria-expanded":0,"aria-haspopup":0,"aria-level":0,"aria-modal":0,"aria-multiline":0,"aria-multiselectable":0,"aria-orientation":0,"aria-placeholder":0,"aria-pressed":0,"aria-readonly":0,"aria-required":0,"aria-selected":0,"aria-sort":0,"aria-valuemax":0,"aria-valuemin":0,"aria-valuenow":0,"aria-valuetext":0,"aria-atomic":0,"aria-busy":0,"aria-live":0,"aria-relevant":0,"aria-dropeffect":0,"aria-grabbed":0,"aria-activedescendant":0,"aria-colcount":0,"aria-colindex":0,"aria-colspan":0,"aria-controls":0,"aria-describedby":0,"aria-errormessage":0,"aria-flowto":0,"aria-labelledby":0,"aria-owns":0,"aria-posinset":0,"aria-rowcount":0,"aria-rowindex":0,"aria-rowspan":0,"aria-setsize":0},DOMAttributeNames:{},DOMPropertyNames:{}};e.exports=n},function(e,t,n){"use strict";var r=n(5),o=n(58),i={focusDOMComponent:function(){o(r.getNodeFromInstance(this))}};e.exports=i},function(e,t,n){"use strict";function r(){var e=window.opera;return"object"==typeof e&&"function"==typeof e.version&&parseInt(e.version(),10)<=12}function o(e){return(e.ctrlKey||e.altKey||e.metaKey)&&!(e.ctrlKey&&e.altKey)}function i(e){switch(e){case"topCompositionStart":return O.compositionStart;case"topCompositionEnd":return O.compositionEnd;case"topCompositionUpdate":return O.compositionUpdate}}function a(e,t){return"topKeyDown"===e&&t.keyCode===b}function s(e,t){switch(e){case"topKeyUp":return y.indexOf(t.keyCode)!==-1;case"topKeyDown":return t.keyCode!==b;case"topKeyPress":case"topMouseDown":case"topBlur":return!0;default:return!1}}function u(e){var t=e.detail;return"object"==typeof t&&"data"in t?t.data:null}function l(e,t,n,r){var o,l;if(C?o=i(e):k?s(e,n)&&(o=O.compositionEnd):a(e,n)&&(o=O.compositionStart),!o)return null;E&&(k||o!==O.compositionStart?o===O.compositionEnd&&k&&(l=k.getData()):k=v.getPooled(r));var c=m.getPooled(o,t,n,r);if(l)c.data=l;else{var p=u(n);null!==p&&(c.data=p)}return d.accumulateTwoPhaseDispatches(c),c}function c(e,t){switch(e){case"topCompositionEnd":return u(t);case"topKeyPress":var n=t.which;return n!==x?null:(P=!0,T);case"topTextInput":var r=t.data;return r===T&&P?null:r;default:return null}}function p(e,t){if(k){if("topCompositionEnd"===e||!C&&s(e,t)){var n=k.getData();return v.release(k),k=null,n}return null}switch(e){case"topPaste":return null;case"topKeyPress":return t.which&&!o(t)?String.fromCharCode(t.which):null;case"topCompositionEnd":return E?null:t.data;default:return null}}function f(e,t,n,r){var o;if(o=w?c(e,n):p(e,n),!o)return null;var i=g.getPooled(O.beforeInput,t,n,r);return i.data=o,d.accumulateTwoPhaseDispatches(i),i}var d=n(26),h=n(7),v=n(128),m=n(164),g=n(167),y=[9,13,27,32],b=229,C=h.canUseDOM&&"CompositionEvent"in window,_=null;h.canUseDOM&&"documentMode"in document&&(_=document.documentMode);var w=h.canUseDOM&&"TextEvent"in window&&!_&&!r(),E=h.canUseDOM&&(!C||_&&_>8&&_<=11),x=32,T=String.fromCharCode(x),O={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["topCompositionEnd","topKeyPress","topTextInput","topPaste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:["topBlur","topCompositionEnd","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:["topBlur","topCompositionStart","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:["topBlur","topCompositionUpdate","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]}},P=!1,k=null,S={eventTypes:O,extractEvents:function(e,t,n,r){return[l(e,t,n,r),f(e,t,n,r)]}};e.exports=S},function(e,t,n){"use strict";var r=n(62),o=n(7),i=(n(9),n(98),n(173)),a=n(105),s=n(108),u=(n(2),s(function(e){return a(e)})),l=!1,c="cssFloat";if(o.canUseDOM){var p=document.createElement("div").style;try{p.font=""}catch(e){l=!0}void 0===document.documentElement.style.cssFloat&&(c="styleFloat")}var f={createMarkupForStyles:function(e,t){var n="";for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];null!=o&&(n+=u(r)+":",n+=i(r,o,t)+";")}return n||null},setValueForStyles:function(e,t,n){var o=e.style;for(var a in t)if(t.hasOwnProperty(a)){var s=i(a,t[a],n);if("float"!==a&&"cssFloat"!==a||(a=c),s)o[a]=s;else{var u=l&&r.shorthandPropertyExpansions[a];if(u)for(var p in u)o[p]="";else o[a]=""}}}};e.exports=f},function(e,t,n){"use strict";function r(e){var t=e.nodeName&&e.nodeName.toLowerCase();return"select"===t||"input"===t&&"file"===e.type}function o(e){var t=x.getPooled(k.change,N,e,T(e));C.accumulateTwoPhaseDispatches(t),E.batchedUpdates(i,t)}function i(e){b.enqueueEvents(e),b.processEventQueue(!1)}function a(e,t){S=e,N=t,S.attachEvent("onchange",o)}function s(){S&&(S.detachEvent("onchange",o),S=null,N=null)}function u(e,t){if("topChange"===e)return t}function l(e,t,n){"topFocus"===e?(s(),a(t,n)):"topBlur"===e&&s()}function c(e,t){S=e,N=t,M=e.value,A=Object.getOwnPropertyDescriptor(e.constructor.prototype,"value"),Object.defineProperty(S,"value",R),S.attachEvent?S.attachEvent("onpropertychange",f):S.addEventListener("propertychange",f,!1)}function p(){S&&(delete S.value,S.detachEvent?S.detachEvent("onpropertychange",f):S.removeEventListener("propertychange",f,!1),S=null,N=null,M=null,A=null)}function f(e){if("value"===e.propertyName){var t=e.srcElement.value;t!==M&&(M=t,o(e))}}function d(e,t){if("topInput"===e)return t}function h(e,t,n){"topFocus"===e?(p(),c(t,n)):"topBlur"===e&&p()}function v(e,t){if(("topSelectionChange"===e||"topKeyUp"===e||"topKeyDown"===e)&&S&&S.value!==M)return M=S.value,N}function m(e){return e.nodeName&&"input"===e.nodeName.toLowerCase()&&("checkbox"===e.type||"radio"===e.type)}function g(e,t){if("topClick"===e)return t}function y(e,t){if(null!=e){var n=e._wrapperState||t._wrapperState;if(n&&n.controlled&&"number"===t.type){var r=""+t.value;t.getAttribute("value")!==r&&t.setAttribute("value",r)}}}var b=n(25),C=n(26),_=n(7),w=n(5),E=n(10),x=n(11),T=n(49),O=n(50),P=n(81),k={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:["topBlur","topChange","topClick","topFocus","topInput","topKeyDown","topKeyUp","topSelectionChange"]}},S=null,N=null,M=null,A=null,I=!1;_.canUseDOM&&(I=O("change")&&(!document.documentMode||document.documentMode>8));var D=!1;_.canUseDOM&&(D=O("input")&&(!document.documentMode||document.documentMode>11));var R={get:function(){return A.get.call(this)},set:function(e){M=""+e,A.set.call(this,e)}},L={eventTypes:k,extractEvents:function(e,t,n,o){var i,a,s=t?w.getNodeFromInstance(t):window;if(r(s)?I?i=u:a=l:P(s)?D?i=d:(i=v,a=h):m(s)&&(i=g),i){var c=i(e,t);if(c){var p=x.getPooled(k.change,c,n,o);return p.type="change",C.accumulateTwoPhaseDispatches(p),p}}a&&a(e,s,t),"topBlur"===e&&y(t,s)}};e.exports=L},function(e,t,n){"use strict";var r=n(3),o=n(18),i=n(7),a=n(101),s=n(8),u=(n(1),{dangerouslyReplaceNodeWithMarkup:function(e,t){if(i.canUseDOM?void 0:r("56"),t?void 0:r("57"),"HTML"===e.nodeName?r("58"):void 0,"string"==typeof t){var n=a(t,s)[0];e.parentNode.replaceChild(n,e)}else o.replaceChildWithTree(e,t)}});e.exports=u},function(e,t){"use strict";var n=["ResponderEventPlugin","SimpleEventPlugin","TapEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin"];e.exports=n},function(e,t,n){"use strict";var r=n(26),o=n(5),i=n(32),a={mouseEnter:{registrationName:"onMouseEnter",dependencies:["topMouseOut","topMouseOver"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["topMouseOut","topMouseOver"]}},s={eventTypes:a,extractEvents:function(e,t,n,s){if("topMouseOver"===e&&(n.relatedTarget||n.fromElement))return null;if("topMouseOut"!==e&&"topMouseOver"!==e)return null;var u;if(s.window===s)u=s;else{var l=s.ownerDocument;u=l?l.defaultView||l.parentWindow:window}var c,p;if("topMouseOut"===e){c=t;var f=n.relatedTarget||n.toElement;p=f?o.getClosestInstanceFromNode(f):null}else c=null,p=t;if(c===p)return null;var d=null==c?u:o.getNodeFromInstance(c),h=null==p?u:o.getNodeFromInstance(p),v=i.getPooled(a.mouseLeave,c,n,s);v.type="mouseleave",v.target=d,v.relatedTarget=h;var m=i.getPooled(a.mouseEnter,p,n,s);return m.type="mouseenter",m.target=h,m.relatedTarget=d,r.accumulateEnterLeaveDispatches(v,m,c,p),[v,m]}};e.exports=s},function(e,t,n){"use strict";function r(e){this._root=e,this._startText=this.getText(),this._fallbackText=null}var o=n(4),i=n(15),a=n(78);o(r.prototype,{destructor:function(){this._root=null,this._startText=null,this._fallbackText=null},getText:function(){return"value"in this._root?this._root.value:this._root[a()]},getData:function(){if(this._fallbackText)return this._fallbackText;var e,t,n=this._startText,r=n.length,o=this.getText(),i=o.length;for(e=0;e1?1-t:void 0;return this._fallbackText=o.slice(e,s),this._fallbackText}}),i.addPoolingTo(r),e.exports=r},function(e,t,n){"use strict";var r=n(19),o=r.injection.MUST_USE_PROPERTY,i=r.injection.HAS_BOOLEAN_VALUE,a=r.injection.HAS_NUMERIC_VALUE,s=r.injection.HAS_POSITIVE_NUMERIC_VALUE,u=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE,l={isCustomAttribute:RegExp.prototype.test.bind(new RegExp("^(data|aria)-["+r.ATTRIBUTE_NAME_CHAR+"]*$")),Properties:{accept:0,acceptCharset:0,accessKey:0,action:0,allowFullScreen:i,allowTransparency:0,alt:0,as:0,async:i,autoComplete:0,autoPlay:i,capture:i,cellPadding:0,cellSpacing:0,charSet:0,challenge:0,checked:o|i,cite:0,classID:0,className:0,cols:s,colSpan:0,content:0,contentEditable:0,contextMenu:0,controls:i,coords:0,crossOrigin:0,data:0,dateTime:0,default:i,defer:i,dir:0,disabled:i,download:u,draggable:0,encType:0,form:0,formAction:0,formEncType:0,formMethod:0,formNoValidate:i,formTarget:0,frameBorder:0,headers:0,height:0,hidden:i,high:0,href:0,hrefLang:0,htmlFor:0,httpEquiv:0,icon:0,id:0,inputMode:0,integrity:0,is:0,keyParams:0,keyType:0,kind:0,label:0,lang:0,list:0,loop:i,low:0,manifest:0,marginHeight:0,marginWidth:0,max:0,maxLength:0,media:0,mediaGroup:0,method:0,min:0,minLength:0,multiple:o|i,muted:o|i,name:0,nonce:0,noValidate:i,open:i,optimum:0,pattern:0,placeholder:0,playsInline:i,poster:0,preload:0,profile:0,radioGroup:0,readOnly:i,referrerPolicy:0,rel:0,required:i,reversed:i,role:0,rows:s,rowSpan:a,sandbox:0,scope:0,scoped:i,scrolling:0,seamless:i,selected:o|i,shape:0,size:s,sizes:0,span:s,spellCheck:0,src:0,srcDoc:0,srcLang:0,srcSet:0,start:a,step:0,style:0,summary:0,tabIndex:0,target:0,title:0,type:0,useMap:0,value:0,width:0,wmode:0,wrap:0,about:0,datatype:0,inlist:0,prefix:0,property:0,resource:0,typeof:0,vocab:0,autoCapitalize:0,autoCorrect:0,autoSave:0,color:0,itemProp:0,itemScope:i,itemType:0,itemID:0,itemRef:0,results:0,security:0,unselectable:0},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{},DOMMutationMethods:{value:function(e,t){return null==t?e.removeAttribute("value"):void("number"!==e.type||e.hasAttribute("value")===!1?e.setAttribute("value",""+t):e.validity&&!e.validity.badInput&&e.ownerDocument.activeElement!==e&&e.setAttribute("value",""+t))}}};e.exports=l},function(e,t,n){(function(t){"use strict";function r(e,t,n,r){var o=void 0===e[n];null!=t&&o&&(e[n]=i(t,!0))}var o=n(20),i=n(80),a=(n(41),n(51)),s=n(83),u=(n(2),{instantiateChildren:function(e,t,n,o){if(null==e)return null;var i={};return s(e,r,i),i},updateChildren:function(e,t,n,r,s,u,l,c,p){if(t||e){var f,d;for(f in t)if(t.hasOwnProperty(f)){d=e&&e[f];var h=d&&d._currentElement,v=t[f];if(null!=d&&a(h,v))o.receiveComponent(d,v,s,c),t[f]=d;else{d&&(r[f]=o.getHostNode(d),o.unmountComponent(d,!1));var m=i(v,!0);t[f]=m;var g=o.mountComponent(m,s,u,l,c,p);n.push(g)}}for(f in e)!e.hasOwnProperty(f)||t&&t.hasOwnProperty(f)||(d=e[f],r[f]=o.getHostNode(d),o.unmountComponent(d,!1))}},unmountChildren:function(e,t){for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];o.unmountComponent(r,t)}}});e.exports=u}).call(t,n(36))},function(e,t,n){"use strict";var r=n(37),o=n(137),i={processChildrenUpdates:o.dangerouslyProcessChildrenUpdates,replaceNodeWithMarkup:r.dangerouslyReplaceNodeWithMarkup};e.exports=i},function(e,t,n){"use strict";function r(e){}function o(e,t){}function i(e){return!(!e.prototype||!e.prototype.isReactComponent)}function a(e){return!(!e.prototype||!e.prototype.isPureReactComponent)}var s=n(3),u=n(4),l=n(12),c=n(43),p=n(13),f=n(44),d=n(27),h=(n(9),n(73)),v=n(20),m=n(23),g=(n(1),n(30)),y=n(51),b=(n(2),{ImpureClass:0,PureClass:1,StatelessFunctional:2});r.prototype.render=function(){var e=d.get(this)._currentElement.type,t=e(this.props,this.context,this.updater);return o(e,t),t};var C=1,_={construct:function(e){this._currentElement=e,this._rootNodeID=0,this._compositeType=null,this._instance=null,this._hostParent=null,this._hostContainerInfo=null,this._updateBatchNumber=null,this._pendingElement=null,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._renderedNodeType=null,this._renderedComponent=null,this._context=null,this._mountOrder=0,this._topLevelWrapper=null,this._pendingCallbacks=null,this._calledComponentWillUnmount=!1},mountComponent:function(e,t,n,u){this._context=u,this._mountOrder=C++,this._hostParent=t,this._hostContainerInfo=n;var c,p=this._currentElement.props,f=this._processContext(u),h=this._currentElement.type,v=e.getUpdateQueue(),g=i(h),y=this._constructComponent(g,p,f,v);g||null!=y&&null!=y.render?a(h)?this._compositeType=b.PureClass:this._compositeType=b.ImpureClass:(c=y,o(h,c),null===y||y===!1||l.isValidElement(y)?void 0:s("105",h.displayName||h.name||"Component"),y=new r(h),this._compositeType=b.StatelessFunctional);y.props=p,y.context=f,y.refs=m,y.updater=v,this._instance=y,d.set(y,this);var _=y.state;void 0===_&&(y.state=_=null),"object"!=typeof _||Array.isArray(_)?s("106",this.getName()||"ReactCompositeComponent"):void 0,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1;var w;return w=y.unstable_handleError?this.performInitialMountWithErrorHandling(c,t,n,e,u):this.performInitialMount(c,t,n,e,u),y.componentDidMount&&e.getReactMountReady().enqueue(y.componentDidMount,y),w},_constructComponent:function(e,t,n,r){return this._constructComponentWithoutOwner(e,t,n,r)},_constructComponentWithoutOwner:function(e,t,n,r){var o=this._currentElement.type;return e?new o(t,n,r):o(t,n,r);
+},performInitialMountWithErrorHandling:function(e,t,n,r,o){var i,a=r.checkpoint();try{i=this.performInitialMount(e,t,n,r,o)}catch(s){r.rollback(a),this._instance.unstable_handleError(s),this._pendingStateQueue&&(this._instance.state=this._processPendingState(this._instance.props,this._instance.context)),a=r.checkpoint(),this._renderedComponent.unmountComponent(!0),r.rollback(a),i=this.performInitialMount(e,t,n,r,o)}return i},performInitialMount:function(e,t,n,r,o){var i=this._instance,a=0;i.componentWillMount&&(i.componentWillMount(),this._pendingStateQueue&&(i.state=this._processPendingState(i.props,i.context))),void 0===e&&(e=this._renderValidatedComponent());var s=h.getType(e);this._renderedNodeType=s;var u=this._instantiateReactComponent(e,s!==h.EMPTY);this._renderedComponent=u;var l=v.mountComponent(u,r,t,n,this._processChildContext(o),a);return l},getHostNode:function(){return v.getHostNode(this._renderedComponent)},unmountComponent:function(e){if(this._renderedComponent){var t=this._instance;if(t.componentWillUnmount&&!t._calledComponentWillUnmount)if(t._calledComponentWillUnmount=!0,e){var n=this.getName()+".componentWillUnmount()";f.invokeGuardedCallback(n,t.componentWillUnmount.bind(t))}else t.componentWillUnmount();this._renderedComponent&&(v.unmountComponent(this._renderedComponent,e),this._renderedNodeType=null,this._renderedComponent=null,this._instance=null),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._pendingCallbacks=null,this._pendingElement=null,this._context=null,this._rootNodeID=0,this._topLevelWrapper=null,d.remove(t)}},_maskContext:function(e){var t=this._currentElement.type,n=t.contextTypes;if(!n)return m;var r={};for(var o in n)r[o]=e[o];return r},_processContext:function(e){var t=this._maskContext(e);return t},_processChildContext:function(e){var t,n=this._currentElement.type,r=this._instance;if(r.getChildContext&&(t=r.getChildContext()),t){"object"!=typeof n.childContextTypes?s("107",this.getName()||"ReactCompositeComponent"):void 0;for(var o in t)o in n.childContextTypes?void 0:s("108",this.getName()||"ReactCompositeComponent",o);return u({},e,t)}return e},_checkContextTypes:function(e,t,n){},receiveComponent:function(e,t,n){var r=this._currentElement,o=this._context;this._pendingElement=null,this.updateComponent(t,r,e,o,n)},performUpdateIfNecessary:function(e){null!=this._pendingElement?v.receiveComponent(this,this._pendingElement,e,this._context):null!==this._pendingStateQueue||this._pendingForceUpdate?this.updateComponent(e,this._currentElement,this._currentElement,this._context,this._context):this._updateBatchNumber=null},updateComponent:function(e,t,n,r,o){var i=this._instance;null==i?s("136",this.getName()||"ReactCompositeComponent"):void 0;var a,u=!1;this._context===o?a=i.context:(a=this._processContext(o),u=!0);var l=t.props,c=n.props;t!==n&&(u=!0),u&&i.componentWillReceiveProps&&i.componentWillReceiveProps(c,a);var p=this._processPendingState(c,a),f=!0;this._pendingForceUpdate||(i.shouldComponentUpdate?f=i.shouldComponentUpdate(c,p,a):this._compositeType===b.PureClass&&(f=!g(l,c)||!g(i.state,p))),this._updateBatchNumber=null,f?(this._pendingForceUpdate=!1,this._performComponentUpdate(n,c,p,a,e,o)):(this._currentElement=n,this._context=o,i.props=c,i.state=p,i.context=a)},_processPendingState:function(e,t){var n=this._instance,r=this._pendingStateQueue,o=this._pendingReplaceState;if(this._pendingReplaceState=!1,this._pendingStateQueue=null,!r)return n.state;if(o&&1===r.length)return r[0];for(var i=u({},o?r[0]:n.state),a=o?1:0;a=0||null!=t.is}function h(e){var t=e.type;f(t),this._currentElement=e,this._tag=t.toLowerCase(),this._namespaceURI=null,this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._hostNode=null,this._hostParent=null,this._rootNodeID=0,this._domID=0,this._hostContainerInfo=null,this._wrapperState=null,this._topLevelWrapper=null,this._flags=0}var v=n(3),m=n(4),g=n(121),y=n(123),b=n(18),C=n(38),_=n(19),w=n(64),E=n(25),x=n(39),T=n(31),O=n(66),P=n(5),k=n(138),S=n(139),N=n(67),M=n(142),A=(n(9),n(151)),I=n(156),D=(n(8),n(34)),R=(n(1),n(50),n(30),n(52),n(2),O),L=E.deleteListener,U=P.getNodeFromInstance,F=T.listenTo,j=x.registrationNameModules,B={string:!0,number:!0},V="style",W="__html",H={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null},q=11,z={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"},K={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},Y={listing:!0,pre:!0,textarea:!0},X=m({menuitem:!0},K),G=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,Q={},$={}.hasOwnProperty,Z=1;h.displayName="ReactDOMComponent",h.Mixin={mountComponent:function(e,t,n,r){this._rootNodeID=Z++,this._domID=n._idCounter++,this._hostParent=t,this._hostContainerInfo=n;var i=this._currentElement.props;switch(this._tag){case"audio":case"form":case"iframe":case"img":case"link":case"object":case"source":case"video":this._wrapperState={listeners:null},e.getReactMountReady().enqueue(c,this);break;case"input":k.mountWrapper(this,i,t),i=k.getHostProps(this,i),e.getReactMountReady().enqueue(c,this);break;case"option":S.mountWrapper(this,i,t),i=S.getHostProps(this,i);break;case"select":N.mountWrapper(this,i,t),i=N.getHostProps(this,i),e.getReactMountReady().enqueue(c,this);break;case"textarea":M.mountWrapper(this,i,t),i=M.getHostProps(this,i),e.getReactMountReady().enqueue(c,this)}o(this,i);var a,p;null!=t?(a=t._namespaceURI,p=t._tag):n._tag&&(a=n._namespaceURI,p=n._tag),(null==a||a===C.svg&&"foreignobject"===p)&&(a=C.html),a===C.html&&("svg"===this._tag?a=C.svg:"math"===this._tag&&(a=C.mathml)),this._namespaceURI=a;var f;if(e.useCreateElement){var d,h=n._ownerDocument;if(a===C.html)if("script"===this._tag){var v=h.createElement("div"),m=this._currentElement.type;v.innerHTML="<"+m+">"+m+">",d=v.removeChild(v.firstChild)}else d=i.is?h.createElement(this._currentElement.type,i.is):h.createElement(this._currentElement.type);else d=h.createElementNS(a,this._currentElement.type);P.precacheNode(this,d),this._flags|=R.hasCachedChildNodes,this._hostParent||w.setAttributeForRoot(d),this._updateDOMProperties(null,i,e);var y=b(d);this._createInitialChildren(e,i,r,y),f=y}else{var _=this._createOpenTagMarkupAndPutListeners(e,i),E=this._createContentMarkup(e,i,r);f=!E&&K[this._tag]?_+"/>":_+">"+E+""+this._currentElement.type+">"}switch(this._tag){case"input":e.getReactMountReady().enqueue(s,this),i.autoFocus&&e.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case"textarea":e.getReactMountReady().enqueue(u,this),i.autoFocus&&e.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case"select":i.autoFocus&&e.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case"button":i.autoFocus&&e.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case"option":e.getReactMountReady().enqueue(l,this)}return f},_createOpenTagMarkupAndPutListeners:function(e,t){var n="<"+this._currentElement.type;for(var r in t)if(t.hasOwnProperty(r)){var o=t[r];if(null!=o)if(j.hasOwnProperty(r))o&&i(this,r,o,e);else{r===V&&(o&&(o=this._previousStyleCopy=m({},t.style)),o=y.createMarkupForStyles(o,this));var a=null;null!=this._tag&&d(this._tag,t)?H.hasOwnProperty(r)||(a=w.createMarkupForCustomAttribute(r,o)):a=w.createMarkupForProperty(r,o),a&&(n+=" "+a)}}return e.renderToStaticMarkup?n:(this._hostParent||(n+=" "+w.createMarkupForRoot()),n+=" "+w.createMarkupForID(this._domID))},_createContentMarkup:function(e,t,n){var r="",o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&(r=o.__html);else{var i=B[typeof t.children]?t.children:null,a=null!=i?null:t.children;if(null!=i)r=D(i);else if(null!=a){var s=this.mountChildren(a,e,n);r=s.join("")}}return Y[this._tag]&&"\n"===r.charAt(0)?"\n"+r:r},_createInitialChildren:function(e,t,n,r){var o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&b.queueHTML(r,o.__html);else{var i=B[typeof t.children]?t.children:null,a=null!=i?null:t.children;if(null!=i)""!==i&&b.queueText(r,i);else if(null!=a)for(var s=this.mountChildren(a,e,n),u=0;u"},receiveComponent:function(){},getHostNode:function(){return i.getNodeFromInstance(this)},unmountComponent:function(){i.uncacheNode(this)}}),e.exports=a},function(e,t){"use strict";var n={useCreateElement:!0,useFiber:!1};e.exports=n},function(e,t,n){"use strict";var r=n(37),o=n(5),i={dangerouslyProcessChildrenUpdates:function(e,t){var n=o.getNodeFromInstance(e);r.processUpdates(n,t)}};e.exports=i},function(e,t,n){"use strict";function r(){this._rootNodeID&&f.updateWrapper(this)}function o(e){var t="checkbox"===e.type||"radio"===e.type;return t?null!=e.checked:null!=e.value}function i(e){var t=this._currentElement.props,n=l.executeOnChange(t,e);p.asap(r,this);var o=t.name;if("radio"===t.type&&null!=o){for(var i=c.getNodeFromInstance(this),s=i;s.parentNode;)s=s.parentNode;for(var u=s.querySelectorAll("input[name="+JSON.stringify(""+o)+'][type="radio"]'),f=0;ft.end?(n=t.end,r=t.start):(n=t.start,r=t.end),o.moveToElementText(e),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}function s(e,t){if(window.getSelection){var n=window.getSelection(),r=e[c()].length,o=Math.min(t.start,r),i=void 0===t.end?o:Math.min(t.end,r);if(!n.extend&&o>i){var a=i;i=o,o=a}var s=l(e,o),u=l(e,i);if(s&&u){var p=document.createRange();p.setStart(s.node,s.offset),n.removeAllRanges(),o>i?(n.addRange(p),n.extend(u.node,u.offset)):(p.setEnd(u.node,u.offset),n.addRange(p))}}}var u=n(7),l=n(178),c=n(78),p=u.canUseDOM&&"selection"in document&&!("getSelection"in window),f={getOffsets:p?o:i,setOffsets:p?a:s};e.exports=f},function(e,t,n){"use strict";var r=n(3),o=n(4),i=n(37),a=n(18),s=n(5),u=n(34),l=(n(1),n(52),function(e){this._currentElement=e,this._stringText=""+e,this._hostNode=null,this._hostParent=null,this._domID=0,this._mountIndex=0,this._closingComment=null,this._commentNodes=null});o(l.prototype,{mountComponent:function(e,t,n,r){var o=n._idCounter++,i=" react-text: "+o+" ",l=" /react-text ";if(this._domID=o,this._hostParent=t,e.useCreateElement){var c=n._ownerDocument,p=c.createComment(i),f=c.createComment(l),d=a(c.createDocumentFragment());return a.queueChild(d,a(p)),this._stringText&&a.queueChild(d,a(c.createTextNode(this._stringText))),a.queueChild(d,a(f)),s.precacheNode(this,p),this._closingComment=f,d}var h=u(this._stringText);return e.renderToStaticMarkup?h:""+h+""},receiveComponent:function(e,t){if(e!==this._currentElement){this._currentElement=e;var n=""+e;if(n!==this._stringText){this._stringText=n;var r=this.getHostNode();i.replaceDelimitedText(r[0],r[1],n)}}},getHostNode:function(){var e=this._commentNodes;if(e)return e;if(!this._closingComment)for(var t=s.getNodeFromInstance(this),n=t.nextSibling;;){if(null==n?r("67",this._domID):void 0,8===n.nodeType&&" /react-text "===n.nodeValue){this._closingComment=n;break}n=n.nextSibling}return e=[this._hostNode,this._closingComment],this._commentNodes=e,e},unmountComponent:function(){this._closingComment=null,this._commentNodes=null,s.uncacheNode(this)}}),e.exports=l},function(e,t,n){"use strict";function r(){this._rootNodeID&&c.updateWrapper(this)}function o(e){var t=this._currentElement.props,n=s.executeOnChange(t,e);return l.asap(r,this),n}var i=n(3),a=n(4),s=n(42),u=n(5),l=n(10),c=(n(1),n(2),{getHostProps:function(e,t){null!=t.dangerouslySetInnerHTML?i("91"):void 0;var n=a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue,onChange:e._wrapperState.onChange});return n},mountWrapper:function(e,t){var n=s.getValue(t),r=n;if(null==n){var a=t.defaultValue,u=t.children;null!=u&&(null!=a?i("92"):void 0,Array.isArray(u)&&(u.length<=1?void 0:i("93"),u=u[0]),a=""+u),null==a&&(a=""),r=a}e._wrapperState={initialValue:""+r,listeners:null,onChange:o.bind(e)}},updateWrapper:function(e){var t=e._currentElement.props,n=u.getNodeFromInstance(e),r=s.getValue(t);if(null!=r){var o=""+r;o!==n.value&&(n.value=o),null==t.defaultValue&&(n.defaultValue=o)}null!=t.defaultValue&&(n.defaultValue=t.defaultValue)},postMountWrapper:function(e){var t=u.getNodeFromInstance(e),n=t.textContent;n===e._wrapperState.initialValue&&(t.value=n)}});e.exports=c},function(e,t,n){"use strict";function r(e,t){"_hostNode"in e?void 0:u("33"),"_hostNode"in t?void 0:u("33");for(var n=0,r=e;r;r=r._hostParent)n++;for(var o=0,i=t;i;i=i._hostParent)o++;for(;n-o>0;)e=e._hostParent,n--;for(;o-n>0;)t=t._hostParent,o--;for(var a=n;a--;){if(e===t)return e;e=e._hostParent,t=t._hostParent}return null}function o(e,t){"_hostNode"in e?void 0:u("35"),"_hostNode"in t?void 0:u("35");for(;t;){if(t===e)return!0;t=t._hostParent}return!1}function i(e){return"_hostNode"in e?void 0:u("36"),e._hostParent}function a(e,t,n){for(var r=[];e;)r.push(e),e=e._hostParent;var o;for(o=r.length;o-- >0;)t(r[o],"captured",n);for(o=0;o0;)n(u[l],"captured",i)}var u=n(3);n(1);e.exports={isAncestor:o,getLowestCommonAncestor:r,getParentInstance:i,traverseTwoPhase:a,traverseEnterLeave:s}},function(e,t,n){"use strict";function r(){this.reinitializeTransaction()}var o=n(4),i=n(10),a=n(33),s=n(8),u={initialize:s,close:function(){f.isBatchingUpdates=!1}},l={initialize:s,close:i.flushBatchedUpdates.bind(i)},c=[l,u];o(r.prototype,a,{getTransactionWrappers:function(){return c}});var p=new r,f={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,o,i){var a=f.isBatchingUpdates;return f.isBatchingUpdates=!0,a?e(t,n,r,o,i):p.perform(e,null,t,n,r,o,i)}};e.exports=f},function(e,t,n){"use strict";function r(){E||(E=!0,y.EventEmitter.injectReactEventListener(g),y.EventPluginHub.injectEventPluginOrder(s),y.EventPluginUtils.injectComponentTree(f),y.EventPluginUtils.injectTreeTraversal(h),y.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:w,EnterLeaveEventPlugin:u,ChangeEventPlugin:a,SelectEventPlugin:_,BeforeInputEventPlugin:i}),y.HostComponent.injectGenericComponentClass(p),y.HostComponent.injectTextComponentClass(v),y.DOMProperty.injectDOMPropertyConfig(o),y.DOMProperty.injectDOMPropertyConfig(l),y.DOMProperty.injectDOMPropertyConfig(C),y.EmptyComponent.injectEmptyComponentFactory(function(e){return new d(e)}),y.Updates.injectReconcileTransaction(b),y.Updates.injectBatchingStrategy(m),y.Component.injectEnvironment(c))}var o=n(120),i=n(122),a=n(124),s=n(126),u=n(127),l=n(129),c=n(131),p=n(133),f=n(5),d=n(135),h=n(143),v=n(141),m=n(144),g=n(148),y=n(149),b=n(154),C=n(159),_=n(160),w=n(161),E=!1;e.exports={inject:r}},87,function(e,t,n){"use strict";function r(e){o.enqueueEvents(e),o.processEventQueue(!1)}var o=n(25),i={handleTopLevel:function(e,t,n,i){var a=o.extractEvents(e,t,n,i);r(a)}};e.exports=i},function(e,t,n){"use strict";function r(e){for(;e._hostParent;)e=e._hostParent;var t=p.getNodeFromInstance(e),n=t.parentNode;return p.getClosestInstanceFromNode(n)}function o(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function i(e){var t=d(e.nativeEvent),n=p.getClosestInstanceFromNode(t),o=n;do e.ancestors.push(o),o=o&&r(o);while(o);for(var i=0;i/,i=/^<\!\-\-/,a={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=r(e);return i.test(e)?e:e.replace(o," "+a.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){var n=t.getAttribute(a.CHECKSUM_ATTR_NAME);n=n&&parseInt(n,10);var o=r(e);return o===n}};e.exports=a},function(e,t,n){"use strict";function r(e,t,n){return{type:"INSERT_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:n,afterNode:t}}function o(e,t,n){return{type:"MOVE_EXISTING",content:null,fromIndex:e._mountIndex,fromNode:f.getHostNode(e),toIndex:n,afterNode:t}}function i(e,t){return{type:"REMOVE_NODE",content:null,fromIndex:e._mountIndex,fromNode:t,toIndex:null,afterNode:null}}function a(e){return{type:"SET_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function s(e){return{type:"TEXT_CONTENT",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function u(e,t){return t&&(e=e||[],e.push(t)),e}function l(e,t){p.processChildrenUpdates(e,t)}var c=n(3),p=n(43),f=(n(27),n(9),n(13),n(20)),d=n(130),h=(n(8),n(175)),v=(n(1),{Mixin:{_reconcilerInstantiateChildren:function(e,t,n){return d.instantiateChildren(e,t,n)},_reconcilerUpdateChildren:function(e,t,n,r,o,i){var a,s=0;return a=h(t,s),d.updateChildren(e,a,n,r,o,this,this._hostContainerInfo,i,s),a},mountChildren:function(e,t,n){var r=this._reconcilerInstantiateChildren(e,t,n);this._renderedChildren=r;var o=[],i=0;for(var a in r)if(r.hasOwnProperty(a)){var s=r[a],u=0,l=f.mountComponent(s,t,this,this._hostContainerInfo,n,u);s._mountIndex=i++,o.push(l)}return o},updateTextContent:function(e){var t=this._renderedChildren;d.unmountChildren(t,!1);for(var n in t)t.hasOwnProperty(n)&&c("118");var r=[s(e)];l(this,r)},updateMarkup:function(e){var t=this._renderedChildren;d.unmountChildren(t,!1);for(var n in t)t.hasOwnProperty(n)&&c("118");var r=[a(e)];l(this,r)},updateChildren:function(e,t,n){this._updateChildren(e,t,n)},_updateChildren:function(e,t,n){var r=this._renderedChildren,o={},i=[],a=this._reconcilerUpdateChildren(r,e,i,o,t,n);if(a||r){var s,c=null,p=0,d=0,h=0,v=null;for(s in a)if(a.hasOwnProperty(s)){var m=r&&r[s],g=a[s];m===g?(c=u(c,this.moveChild(m,v,p,d)),d=Math.max(m._mountIndex,d),m._mountIndex=p):(m&&(d=Math.max(m._mountIndex,d)),c=u(c,this._mountChildAtIndex(g,i[h],v,p,t,n)),h++),p++,v=f.getHostNode(g)}for(s in o)o.hasOwnProperty(s)&&(c=u(c,this._unmountChild(r[s],o[s])));c&&l(this,c),this._renderedChildren=a}},unmountChildren:function(e){var t=this._renderedChildren;d.unmountChildren(t,e),this._renderedChildren=null},moveChild:function(e,t,n,r){if(e._mountIndex=t)return{node:o,offset:t-i};i=a}o=n(r(o))}}e.exports=o},function(e,t,n){"use strict";function r(e){return'"'+o(e)+'"'}var o=n(34);e.exports=r},function(e,t,n){"use strict";var r=n(72);e.exports=r.renderSubtreeIntoContainer},function(e,t,n){"use strict";"undefined"==typeof Promise&&(n(115).enable(),window.Promise=n(114)),n(211),Object.assign=n(4)},function(e,t,n){(function(){var t,r,o;t=n(6),r=t.createClass,o=t.DOM.div,e.exports=r({getDefaultProps:function(){return{className:"",onHeightChange:function(){}}},render:function(){return o({className:this.props.className,ref:"dropdown"},this.props.children)},componentDidMount:function(){this.props.onHeightChange(this.refs.dropdown.offsetHeight)},componentDidUpdate:function(){this.props.onHeightChange(this.refs.dropdown.offsetHeight)},componentWillUnmount:function(){this.props.onHeightChange(0)}})}).call(this)},function(e,t,n){(function(){function t(e,t){var n={}.hasOwnProperty;for(var r in t)n.call(t,r)&&(e[r]=t[r]);return e}var r,o,i,a,s,u,l,c,p,f,d,h,v,m,g,y,b,C;r=n(14),o=r.filter,i=r.id,a=r.map,s=n(16).isEqualToObject,u=n(6),r=u.DOM,l=r.div,c=r.input,p=r.span,f=u.createClass,d=u.createFactory,h=n(17).findDOMNode,v=d(n(61)),m=d(n(186)),g=d(n(182)),y=d(n(84)),r=n(29),b=r.cancelEvent,C=r.classNameFromObject,e.exports=f({displayName:"DropdownMenu",getDefaultProps:function(){return{className:"",dropdownDirection:1,groupId:function(e){return e.groupId},groupsAsColumns:!1,highlightedUid:void 0,onHighlightedUidChange:function(e,t){},onOptionClick:function(e){},onScrollLockChange:function(e){},options:[],renderNoResultsFound:function(){return l({className:"no-results-found"},"No results found")},renderGroupTitle:function(e,t){var n,r;return null!=t&&(n=t.groupId,r=t.title),l({className:"simple-group-title",key:n},r)},renderOption:function(e){var t,n,r,o;return null!=e&&(t=e.label,n=e.newOption,r=e.selectable),o="undefined"==typeof r||r,l({className:"simple-option "+(o?"":"not-selectable")},p(null,n?"Add "+t+" ...":t))},scrollLock:!1,style:{},tether:!1,tetherProps:{},theme:"default",transitionEnter:!1,transitionLeave:!1,transitionEnterTimeout:200,transitionLeaveTimeout:200,uid:i}},render:function(){var e,n;return e=C((n={},n[this.props.theme+""]=1,n[this.props.className+""]=1,n.flipped=this.props.dropdownDirection===-1,n.tethered=this.props.tether,n)),this.props.tether?m((n=t({},this.props.tetherProps),n.options={attachment:"top left",targetAttachment:"bottom left",constraints:[{to:"scrollParent"}]},n),this.renderAnimatedDropdown({dynamicClassName:e})):this.renderAnimatedDropdown({dynamicClassName:e})},renderAnimatedDropdown:function(e){var t;return t=e.dynamicClassName,this.props.transitionEnter||this.props.transitionLeave?v({component:"div",transitionName:"custom",transitionEnter:this.props.transitionEnter,transitionLeave:this.props.transitionLeave,transitionEnterTimeout:this.props.transitionEnterTimeout,transitionLeaveTimeout:this.props.transitionLeaveTimeout,className:"dropdown-menu-wrapper "+t,ref:"dropdownMenuWrapper"},this.renderDropdown(e)):this.renderDropdown(e)},renderOptions:function(e){var n=this;return a(function(r){var o,i;return o=e[r],i=n.props.uid(o),y(t({uid:i,ref:"option-"+n.uidToString(i),key:n.uidToString(i),item:o,highlight:s(n.props.highlightedUid,i),selectable:null!=o?o.selectable:void 0,onMouseMove:function(e){var t;t=e.currentTarget,n.props.scrollLock&&n.props.onScrollLockChange(!1)},onMouseOut:function(){n.props.scrollLock||n.props.onHighlightedUidChange(void 0,function(){})},renderItem:n.props.renderOption},function(){switch(!1){case!("boolean"==typeof(null!=o?o.selectable:void 0)&&!o.selectable):return{onClick:b};default:return{onClick:function(){n.props.onOptionClick(n.props.highlightedUid)},onMouseOver:function(e){var t;t=e.currentTarget,n.props.scrollLock||n.props.onHighlightedUidChange(i,function(){})}}}}()))})(function(){var t,n,r=[];for(t=0,n=e.length;t0?(i=a(function(e){var t,n,r;return t=s.props.groups[e],n=t.groupId,r=o(function(e){return s.props.groupId(e)===n})(s.props.options),{index:e,group:t,options:r}})(function(){var e,t,n=[];for(e=0,t=this.props.groups.length;e0})(i)))):this.renderOptions(this.props.options)):null},componentDidUpdate:function(){var e,t,n;e=t=h(null!=(n=this.refs.dropdownMenuWrapper)?n:this.refs.dropdownMenu),null!=e&&(e.style.bottom=function(){switch(!1){case this.props.dropdownDirection!==-1:return this.props.bottomAnchor().offsetHeight+t.style.marginBottom+"px";default:return""}}.call(this))},highlightAndScrollToOption:function(e,t){var n,r=this;null==t&&(t=function(){}),n=this.props.uid(this.props.options[e]),this.props.onHighlightedUidChange(n,function(){var e,o,i,a,s;return null!=(e=h(null!=(o=r.refs)?o["option-"+r.uidToString(n)]:void 0))&&(i=e),i&&(a=h(r.refs.dropdownMenu),s=i.offsetHeight-1,i.offsetTop-a.scrollTop>=a.offsetHeight?a.scrollTop=i.offsetTop-a.offsetHeight+s:i.offsetTop-a.scrollTop+s<=0&&(a.scrollTop=i.offsetTop)),t()})},highlightAndScrollToSelectableOption:function(e,t,n){var r,o,i;null==n&&(n=function(){}),e<0||e>=this.props.options.length?this.props.onHighlightedUidChange(void 0,function(){return n(!1)}):(r=null!=(o=this.props)&&null!=(i=o.options)?i[e]:void 0,"boolean"!=typeof(null!=r?r.selectable:void 0)||r.selectable?this.highlightAndScrollToOption(e,function(){return n(!0)}):this.highlightAndScrollToSelectableOption(e+t,t,n))},uidToString:function(e){return("object"==typeof e?JSON.stringify:i)(e)}})}).call(this)},function(e,t,n){(function(){var t,r,o,i,a,s;t=n(6),r=t.createClass,o=t.DOM,i=o.div,a=o.span,s=n(14).map,e.exports=r({getDefaultProps:function(){return{partitions:[],text:"",style:{},highlightStyle:{}}},render:function(){var e=this;return i({className:"highlighted-text",style:this.props.style},s(function(t){var n,r,o;return n=t[0],r=t[1],o=t[2],a({key:e.props.text+""+n+r+o,className:o?"highlight":"",style:o?e.props.highlightStyle:{}},e.props.text.substring(n,r))})(this.props.partitions))}})}).call(this)},function(e,t,n){(function(){function t(e,t){for(var n=-1,r=t.length>>>0;++n1?function(){var i=o?o.concat():[];return n=t?n||this:this,i.push.apply(i,arguments)-1})(g(function(e){return t(e.label.trim(),m(function(e){return e.label.trim()},null!=n?n:[]))})(e))}),firstOptionIndexToHighlight:h,onBlur:function(e){},onFocus:function(e){},onPaste:function(e){},serialize:m(function(e){return null!=e?e.value:void 0}),tether:!1}},render:function(){var e,t,n,r,i,a,s,u,l,c,p,f,d,h,m,g,y,b,C,_,w,E,O,P,k,S,N,M,A,I,D,R,L,U,F,j,B,V,W=this;return e=this.getComputedState(),t=e.anchor,n=e.filteredOptions,r=e.highlightedUid,i=e.onAnchorChange,a=e.onOpenChange,s=e.onHighlightedUidChange,u=e.onSearchChange,l=e.onValuesChange,c=e.search,p=e.open,f=e.options,d=e.values,null!=(e=this.props)&&(h=e.autofocus,m=e.autosize,g=e.cancelKeyboardEventOnSelection,y=e.delimiters,b=e.disabled,C=e.dropdownDirection,_=e.groupId,w=e.groups,E=e.groupsAsColumns,O=e.hideResetButton,P=e.inputProps,k=e.name,S=e.onKeyboardSelectionFailed,N=e.renderToggleButton,M=e.renderGroupTitle,A=e.renderResetButton,I=e.serialize,D=e.tether,R=e.tetherProps,L=e.theme,U=e.transitionEnter,F=e.transitionLeave,j=e.transitionEnterTimeout,B=e.transitionLeaveTimeout,V=e.uid),x(o(o({autofocus:h,autosize:m,cancelKeyboardEventOnSelection:g,className:"multi-select "+this.props.className,delimiters:y,disabled:b,dropdownDirection:C,groupId:_,groups:w,groupsAsColumns:E,hideResetButton:O,highlightedUid:r,onHighlightedUidChange:s,inputProps:P,name:k,onKeyboardSelectionFailed:S,renderGroupTitle:M,renderResetButton:A,renderToggleButton:N,scrollLock:this.state.scrollLock,onScrollLockChange:function(e){return W.setState({scrollLock:e})},tether:D,tetherProps:R,theme:L,transitionEnter:U,transitionEnterTimeout:j,transitionLeave:F,transitionLeaveTimeout:B,uid:V,ref:"select",anchor:t,onAnchorChange:i,open:p,onOpenChange:a,options:f,renderOption:this.props.renderOption,firstOptionIndexToHighlight:function(){return W.firstOptionIndexToHighlight(f)},search:c,onSearchChange:function(e,t){return u(W.props.maxValues&&d.length>=W.props.maxValues?"":e,t)},values:d,onValuesChange:function(e,t){return l(e,function(){if(t(),W.props.closeOnSelect||W.props.maxValues&&W.values().length>=W.props.maxValues)return a(!1,function(){})})},renderValue:this.props.renderValue,serialize:I,onBlur:function(e){u("",function(){return W.props.onBlur({open:p,values:d,originalEvent:e})})},onFocus:function(e){W.props.onFocus({open:p,values:d,originalEvent:e})},onPaste:function(){var e;switch(!1){case"undefined"!=typeof(null!=(e=this.props)?e.valuesFromPaste:void 0):return this.props.onPaste;default:return function(e){var t;return t=e.clipboardData,function(){var e;return e=d.concat(W.props.valuesFromPaste(f,d,t.getData("text"))),l(e,function(){return i(v(e))})}(),T(e)}}}.call(this),placeholder:this.props.placeholder,style:this.props.style},function(){switch(!1){case"function"!=typeof this.props.restoreOnBackspace:return{restoreOnBackspace:this.props.restoreOnBackspace};default:return{}}}.call(this)),function(){switch(!1){case"function"!=typeof this.props.renderNoResultsFound:return{renderNoResultsFound:function(){return W.props.renderNoResultsFound(d,c)}};default:return{}}}.call(this)))},getComputedState:function(){var e,t,n,r,i,a,s,l,c,p,f,d,h,v,g,y,b=this;return e=this.props.hasOwnProperty("anchor")?this.props.anchor:this.state.anchor,t=this.props.hasOwnProperty("highlightedUid")?this.props.highlightedUid:this.state.highlightedUid,n=this.isOpen(),r=this.props.hasOwnProperty("search")?this.props.search:this.state.search,i=this.values(),a=m(function(e){switch(!1){case!(b.props.hasOwnProperty(e)&&b.props.hasOwnProperty(u("on-"+e+"-change"))):return function(t,n){return b.props[u("on-"+e+"-change")](t,function(){}),b.setState({},n)};case!(b.props.hasOwnProperty(e)&&!b.props.hasOwnProperty(u("on-"+e+"-change"))):return function(e,t){return t()};case!(!b.props.hasOwnProperty(e)&&b.props.hasOwnProperty(u("on-"+e+"-change"))):return function(t,n){var r;return b.setState((r={},r[e+""]=t,r),function(){return n(),b.props[u("on-"+e+"-change")](t,function(){})})};case!(!b.props.hasOwnProperty(e)&&!b.props.hasOwnProperty(u("on-"+e+"-change"))):return function(t,n){var r;return b.setState((r={},r[e+""]=t,r),n)}}})(["anchor","highlightedUid","open","search","values"]),s=a[0],l=a[1],c=a[2],p=a[3],f=a[4],d=function(){var e;switch(!1){case!(null!=(e=this.props)&&e.children):return m(function(e){var t,n,r;return null!=e&&(t=e.props),null!=t&&(n=t.value,r=t.children),{label:r,value:n}})("Array"===O.call(this.props.children).slice(8,-1)?this.props.children:[this.props.children]);default:return[]}}.call(this),h=this.props.hasOwnProperty("options")?null!=(a=this.props.options)?a:[]:d,v=this.props.filterOptions(h,i,r),g=function(){switch(!1){case"function"!=typeof this.props.createFromSearch:return this.props.createFromSearch(v,i,r);default:return null}}.call(this),y=(g?[(a=o({},g),a.newOption=!0,a)]:[]).concat(v),{anchor:e,highlightedUid:t,search:r,values:i,onAnchorChange:s,onHighlightedUidChange:l,open:n,onOpenChange:function(e,t){c(function(){switch(!1){case!("undefined"!=typeof this.props.maxValues&&this.values().length>=this.props.maxValues):return!1;default:return e}}.call(b),t)},onSearchChange:p,onValuesChange:f,filteredOptions:v,options:y}},getInitialState:function(){return{anchor:this.props.values?v(this.props.values):void 0,highlightedUid:void 0,open:!1,scrollLock:!1,search:"",values:this.props.defaultValues}},firstOptionIndexToHighlight:function(e){var t,n;return t=function(){var t;switch(!1){case 1!==e.length:return 0;case"undefined"!=typeof(null!=(t=e[0])?t.newOption:void 0):return 0;default:return a(function(e){return"boolean"==typeof e.selectable&&!e.selectable})(c(1)(e))?0:1}}(),n=this.props.hasOwnProperty("search")?this.props.search:this.state.search,this.props.firstOptionIndexToHighlight(t,e,this.values(),n)},focus:function(){this.refs.select.focus()},blur:function(){this.refs.select.blur()},highlightFirstSelectableOption:function(){this.state.open&&this.refs.select.highlightAndScrollToSelectableOption(this.firstOptionIndexToHighlight(this.getComputedState().options),1)},values:function(){return this.props.hasOwnProperty("values")?this.props.values:this.state.values},isOpen:function(){return this.props.hasOwnProperty("open")?this.props.open:this.state.open}})}).call(this)},function(e,t,n){(function(){function t(e,t){var n={}.hasOwnProperty;for(var r in t)n.call(t,r)&&(e[r]=t[r]);return e}var r,o,i,a,s,u;r=n(6).createClass,o=n(17),i=o.render,a=o.unmountComponentAtNode,s=n(119),u=n(210),e.exports=r({getDefaultProps:function(){return{parentElement:function(){return document.body}}},render:function(){return null},initTether:function(e){var n=this;this.node=document.createElement("div"),this.props.parentElement().appendChild(this.node),this.tether=new u(t({element:this.node,target:e.target()},e.options)),i(e.children,this.node,function(){return n.tether.position()})},destroyTether:function(){this.tether&&this.tether.destroy(),this.node&&(a(this.node),this.node.parentElement.removeChild(this.node)),this.node=this.tether=void 0},componentDidMount:function(){this.props.children&&this.initTether(this.props)},componentWillReceiveProps:function(e){var n=this;this.props.children&&!e.children?this.destroyTether():e.children&&!this.props.children?this.initTether(e):e.children&&(this.tether.setOptions(t({element:this.node,target:e.target()
+},e.options)),i(e.children,this.node,function(){return n.tether.position()}))},shouldComponentUpdate:function(e,t){return s(this,e,t)},componentWillUnmount:function(){this.destroyTether()}})}).call(this)},function(e,t,n){(function(){var t,r,o,i,a;t=n(6),r=t.createClass,o=t.createFactory,i=t.DOM.path,a=o(n(85)),e.exports=r({render:function(){return a({className:"react-selectize-reset-button",style:{width:8,height:8}},i({d:"M0 0 L8 8 M8 0 L 0 8"}))}})}).call(this)},function(e,t,n){(function(){function t(e,t){var n={}.hasOwnProperty;for(var r in t)n.call(t,r)&&(e[r]=t[r]);return e}var r,o,i,a,s,u,l,c;r=n(14),o=r.each,i=r.objToPairs,a=n(6),s=a.DOM.input,u=a.createClass,l=a.createFactory,c=n(17).findDOMNode,e.exports=u({displayName:"ResizableInput",render:function(){var e;return s((e=t({},this.props),e.type="input",e.className="resizable-input",e))},autosize:function(){var e,t,n,r,a;return e=t=c(this),e.style.width="0px",0===t.value.length?t.style.width=null!=t&&t.currentStyle?"4px":"2px":t.scrollWidth>0?t.style.width=2+t.scrollWidth+"px":(n=r=document.createElement("div"),n.innerHTML=t.value,function(){var e;return e=r.style,e.display="inline-block",e.width="",e}(o(function(e){var t,n;return t=e[0],n=e[1],r.style[t]=n})(i(t.currentStyle?t.currentStyle:null!=(a=document.defaultView)?a:window.getComputedStyle(t)))),document.body.appendChild(r),t.style.width=4+r.clientWidth+"px",document.body.removeChild(r))},componentDidMount:function(){this.autosize()},componentDidUpdate:function(){this.autosize()},blur:function(){return c(this).blur()},focus:function(){return c(this).focus()}})}).call(this)},function(e,t,n){(function(){function t(e,t){var n,r=function(o){return e.length>1?function(){var i=o?o.concat():[];return n=t?n||this:this,i.push.apply(i,arguments)-1})(e)}),firstOptionIndexToHighlight:d,onBlur:function(e){},onBlurResetsInput:!0,onFocus:function(e){},onKeyboardSelectionFailed:function(e){},onPaste:function(e){},placeholder:"",renderValue:function(e){var t;return t=e.label,C({className:"simple-value"},w(null,t))},serialize:function(e){return null!=e?e.value:void 0},style:{},tether:!1,uid:d}},render:function(){var e,t,n,o,i,a,s,u,l,c,p,f,d,v,m,y,b,C,_,w,T,O,P,k,S,N,M,A,I,D,R,L,U,F,j,B,V,W=this;return e=this.getComputedState(),t=e.filteredOptions,n=e.highlightedUid,o=e.onHighlightedUidChange,i=e.onOpenChange,a=e.onSearchChange,s=e.onValueChange,u=e.open,l=e.options,c=e.search,p=e.value,f=e.values,null!=(e=this.props)&&(d=e.autofocus,v=e.autosize,m=e.cancelKeyboardEventOnSelection,y=e.delimiters,b=e.disabled,C=e.dropdownDirection,_=e.groupId,w=e.groups,T=e.groupsAsColumns,O=e.hideResetButton,P=e.name,k=e.inputProps,S=e.onBlurResetsInput,N=e.renderToggleButton,M=e.renderGroupTitle,A=e.renderResetButton,I=e.serialize,D=e.tether,R=e.tetherProps,L=e.theme,U=e.transitionEnter,F=e.transitionLeave,j=e.transitionEnterTimeout,B=e.transitionLeaveTimeout,V=e.uid),E(r(r({autofocus:d,autosize:v,cancelKeyboardEventOnSelection:m,className:"simple-select"+(this.props.className?" "+this.props.className:""),delimiters:y,disabled:b,dropdownDirection:C,groupId:_,groups:w,groupsAsColumns:T,hideResetButton:O,highlightedUid:n,onHighlightedUidChange:o,inputProps:k,name:P,onBlurResetsInput:S,renderGroupTitle:M,renderResetButton:A,renderToggleButton:N,scrollLock:this.state.scrollLock,onScrollLockChange:function(e){return W.setState({scrollLock:e})},tether:D,tetherProps:R,theme:L,transitionEnter:U,transitionEnterTimeout:j,transitionLeave:F,transitionLeaveTimeout:B,ref:"select",anchor:h(f),onAnchorChange:function(e,t){return t()},open:u,onOpenChange:i,firstOptionIndexToHighlight:function(){return W.firstOptionIndexToHighlight(l,p)},options:l,renderOption:this.props.renderOption,renderNoResultsFound:this.props.renderNoResultsFound,search:c,onSearchChange:function(e,t){return a(e,t)},values:f,onValuesChange:function(e,t){var n,r;return 0===e.length?s(void 0,function(){return t()}):(n=h(e),r=!g(n,p),function(){return function(e){return r?s(n,e):e()}}()(function(){return t(),i(!1,function(){})}))},renderValue:function(e){return u&&(W.props.editable||c.length>0)?null:W.props.renderValue(e)},onKeyboardSelectionFailed:function(e){return a("",function(){return i(!1,function(){return W.props.onKeyboardSelectionFailed(e)})})},uid:function(e){return{uid:W.props.uid(e),open:u,search:c}},serialize:function(e){return I(e[0])},onBlur:function(e){var t;t=W.props.onBlurResetsInput,function(){return function(e){return c.length>0&&t?a("",e):e()}}()(function(){return W.props.onBlur({value:p,open:u,originalEvent:e})})},onFocus:function(e){W.props.onFocus({value:p,open:u,originalEvent:e})},onPaste:function(){var e;switch(!1){case"undefined"!=typeof(null!=(e=this.props)?e.valueFromPaste:void 0):return this.props.onPaste;default:return function(e){var t,n;if(t=e.clipboardData,n=W.props.valueFromPaste(l,p,t.getData("text")))return function(){return s(n,function(){return a("",function(){return i(!1)})})}(),x(e)}}}.call(this),placeholder:this.props.placeholder,style:this.props.style},function(){switch(!1){case"function"!=typeof this.props.restoreOnBackspace:return{restoreOnBackspace:this.props.restoreOnBackspace};default:return{}}}.call(this)),function(){switch(!1){case"function"!=typeof this.props.renderNoResultsFound:return{renderNoResultsFound:function(){return W.props.renderNoResultsFound(p,c)}};default:return{}}}.call(this)))},getComputedState:function(){var e,t,n,o,i,a,s,l,c,p,f,d,h,m,g,y=this;return e=this.props.hasOwnProperty("highlightedUid")?this.props.highlightedUid:this.state.highlightedUid,t=this.isOpen(),n=this.props.hasOwnProperty("search")?this.props.search:this.state.search,o=this.value(),i=o||0===o?[o]:[],a=v(function(e){var t;return t=function(){switch(!1){case!(this.props.hasOwnProperty(e)&&this.props.hasOwnProperty(u("on-"+e+"-change"))):return function(t,n){return y.props[u("on-"+e+"-change")](t,function(){}),y.setState({},n)};case!(this.props.hasOwnProperty(e)&&!this.props.hasOwnProperty(u("on-"+e+"-change"))):return function(e,t){return t()};case!(!this.props.hasOwnProperty(e)&&this.props.hasOwnProperty(u("on-"+e+"-change"))):return function(t,n){var r;return y.setState((r={},r[e+""]=t,r),function(){return n(),y.props[u("on-"+e+"-change")](t,function(){})})};case!(!this.props.hasOwnProperty(e)&&!this.props.hasOwnProperty(u("on-"+e+"-change"))):return function(t,n){var r;return y.setState((r={},r[e+""]=t,r),n)}}}.call(y)})(["highlightedUid","open","search","value"]),s=a[0],l=a[1],c=a[2],p=a[3],f=function(){var e;switch(!1){case!(null!=(e=this.props)&&e.children):return v(function(e){var t,n,r;return null!=(t=null!=e?e.props:void 0)&&(n=t.value,r=t.children),{label:r,value:n}})("Array"===T.call(this.props.children).slice(8,-1)?this.props.children:[this.props.children]);default:return[]}}.call(this),d=this.props.hasOwnProperty("options")?null!=(a=this.props.options)?a:[]:f,h=this.props.filterOptions(d,n),m=function(){switch(!1){case"function"!=typeof this.props.createFromSearch:return this.props.createFromSearch(h,n);default:return null}}.call(this),g=(m?[(a=r({},m),a.newOption=!0,a)]:[]).concat(h),{highlightedUid:e,open:t,search:n,value:o,values:i,onHighlightedUidChange:s,onOpenChange:function(e,t){l(e,function(){if(t(),y.props.editable&&y.isOpen()&&o)return c(y.props.editable(o)+""+(1===n.length?n:""),function(){return y.highlightFirstSelectableOption(function(){})})})},onSearchChange:c,onValueChange:p,filteredOptions:h,options:g}},getInitialState:function(){var e;return{highlightedUid:void 0,open:!1,scrollLock:!1,search:"",value:null!=(e=this.props)?e.defaultValue:void 0}},firstOptionIndexToHighlight:function(e,t){var n,r,o;return n=t?f(function(e){return g(e,t)},e):void 0,r=function(){var t;switch(!1){case"undefined"==typeof n:return n;case 1!==e.length:return 0;case"undefined"!=typeof(null!=(t=e[0])?t.newOption:void 0):return 0;default:return i(function(e){return"boolean"==typeof e.selectable&&!e.selectable})(s(1)(e))?0:1}}(),o=this.props.hasOwnProperty("search")?this.props.search:this.state.search,this.props.firstOptionIndexToHighlight(r,e,t,o)},focus:function(){this.refs.select.focus()},blur:function(){this.refs.select.blur()},highlightFirstSelectableOption:function(e){var t,n,r;null==e&&(e=function(){}),this.state.open?(t=this.getComputedState(),n=t.options,r=t.value,this.refs.select.highlightAndScrollToSelectableOption(this.firstOptionIndexToHighlight(n,r),1,e)):e()},value:function(){return this.props.hasOwnProperty("value")?this.props.value:this.state.value},isOpen:function(){return this.props.hasOwnProperty("open")?this.props.open:this.state.open}})}).call(this)},function(e,t,n){(function(){var t,r,o,i,a;t=n(6),r=t.createClass,o=t.createFactory,i=t.DOM.path,a=o(n(85)),e.exports=r({getDefaultProps:function(){return{open:!1,flipped:!1}},render:function(){return a({className:"react-selectize-toggle-button",style:{width:10,height:8}},i({d:function(){switch(!1){case!(this.props.open&&!this.props.flipped||!this.props.open&&this.props.flipped):return"M0 6 L5 1 L10 6 Z";default:return"M0 1 L5 6 L10 1 Z"}}.call(this)}))}})}).call(this)},function(e,t,n){(function(){var t,r,o,i;t=n(6),r=t.createClass,o=t.DOM.div,i=n(16).isEqualToObject,e.exports=r({getDefaultProps:function(){return{}},render:function(){return o({className:"value-wrapper"},this.props.renderItem(this.props.item))},shouldComponentUpdate:function(e){var t;return!i(null!=e?e.uid:void 0,null!=(t=this.props)?t.uid:void 0)}})}).call(this)},function(e,t,n){(function(){var t,r,o,i;t=n(184),r=n(189),o=n(185),i=n(53),e.exports={HighlightedText:t,SimpleSelect:r,MultiSelect:o,ReactSelectize:i}}).call(this)},[212,22],function(e,t,n){"use strict";var r=n(65);t.getReactDOM=function(){return r}},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function a(e){var t="transition"+e+"Timeout",n="transition"+e;return function(e){if(e[n]){if(null==e[t])return new Error(t+" wasn't supplied to ReactCSSTransitionGroup: this can cause unreliable animations and won't be supported in a future version of React. See https://fb.me/react-animation-transition-group-timeout for more information.");if("number"!=typeof e[t])return new Error(t+" must be a number (in milliseconds)")}}}var s=n(4),u=n(12),l=n(24),c=l(u.isValidElement),p=n(205),f=n(196),d=function(e){function t(){var n,i,a;r(this,t);for(var s=arguments.length,l=Array(s),c=0;c=0)&&r.push(o)}return r.push(e.ownerDocument.body),e.ownerDocument!==document&&r.push(e.ownerDocument.defaultView),r}function a(){T&&document.body.removeChild(T),T=null}function s(e){var t=void 0;e===document?(t=document,e=document.documentElement):t=e.ownerDocument;var n=t.documentElement,r=o(e),i=k();return r.top-=i.top,r.left-=i.left,"undefined"==typeof r.width&&(r.width=document.body.scrollWidth-r.left-r.right),"undefined"==typeof r.height&&(r.height=document.body.scrollHeight-r.top-r.bottom),r.top=r.top-n.clientTop,r.left=r.left-n.clientLeft,r.right=t.body.clientWidth-r.width-r.left,r.bottom=t.body.clientHeight-r.height-r.top,r}function u(e){return e.offsetParent||document.documentElement}function l(){if(S)return S;var e=document.createElement("div");e.style.width="100%",e.style.height="200px";var t=document.createElement("div");c(t.style,{position:"absolute",top:0,left:0,pointerEvents:"none",visibility:"hidden",width:"200px",height:"150px",overflow:"hidden"}),t.appendChild(e),document.body.appendChild(t);var n=e.offsetWidth;t.style.overflow="scroll";var r=e.offsetWidth;n===r&&(r=t.clientWidth),document.body.removeChild(t);var o=n-r;return S={width:o,height:o}}function c(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=[];return Array.prototype.push.apply(t,arguments),t.slice(1).forEach(function(t){if(t)for(var n in t)({}).hasOwnProperty.call(t,n)&&(e[n]=t[n])}),e}function p(e,t){if("undefined"!=typeof e.classList)t.split(" ").forEach(function(t){t.trim()&&e.classList.remove(t)});else{var n=new RegExp("(^| )"+t.split(" ").join("|")+"( |$)","gi"),r=h(e).replace(n," ");v(e,r)}}function f(e,t){if("undefined"!=typeof e.classList)t.split(" ").forEach(function(t){t.trim()&&e.classList.add(t)});else{p(e,t);var n=h(e)+(" "+t);v(e,n)}}function d(e,t){if("undefined"!=typeof e.classList)return e.classList.contains(t);var n=h(e);return new RegExp("(^| )"+t+"( |$)","gi").test(n)}function h(e){return e.className instanceof e.ownerDocument.defaultView.SVGAnimatedString?e.className.baseVal:e.className}function v(e,t){e.setAttribute("class",t)}function m(e,t,n){n.forEach(function(n){t.indexOf(n)===-1&&d(e,n)&&p(e,n)}),t.forEach(function(t){d(e,t)||f(e,t)})}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function g(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function y(e,t){var n=arguments.length<=2||void 0===arguments[2]?1:arguments[2];return e+n>=t&&t>=e-n}function b(){return"undefined"!=typeof performance&&"undefined"!=typeof performance.now?performance.now():+new Date}function C(){for(var e={top:0,left:0},t=arguments.length,n=Array(t),r=0;r1?n-1:0),o=1;o16?(t=Math.min(t-16,250),void(n=setTimeout(r,250))):void("undefined"!=typeof e&&b()-e<10||(null!=n&&(clearTimeout(n),n=null),e=b(),j(),t=b()-e))};"undefined"!=typeof window&&"undefined"!=typeof window.addEventListener&&["resize","scroll","touchmove"].forEach(function(e){window.addEventListener(e,r)})}();var B={center:"center",left:"right",right:"left"},V={middle:"middle",top:"bottom",bottom:"top"},W={top:0,left:0,middle:"50%",center:"50%",bottom:"100%",right:"100%"},H=function(e,t){var n=e.left,r=e.top;return"auto"===n&&(n=B[t.left]),"auto"===r&&(r=V[t.top]),{left:n,top:r}},q=function(e){var t=e.left,n=e.top;return"undefined"!=typeof W[e.left]&&(t=W[e.left]),"undefined"!=typeof W[e.top]&&(n=W[e.top]),{left:t,top:n}},z=function(e){var t=e.split(" "),n=D(t,2),r=n[0],o=n[1];return{top:r,left:o}},K=z,Y=function(e){function t(e){var n=this;r(this,t),R(Object.getPrototypeOf(t.prototype),"constructor",this).call(this),this.position=this.position.bind(this),F.push(this),this.history=[],this.setOptions(e,!1),x.modules.forEach(function(e){"undefined"!=typeof e.initialize&&e.initialize.call(n)}),this.position()}return g(t,e),E(t,[{key:"getClass",value:function(){var e=arguments.length<=0||void 0===arguments[0]?"":arguments[0],t=this.options.classes;return"undefined"!=typeof t&&t[e]?this.options.classes[e]:this.options.classPrefix?this.options.classPrefix+"-"+e:e}},{key:"setOptions",value:function(e){var t=this,n=arguments.length<=1||void 0===arguments[1]||arguments[1],r={offset:"0 0",targetOffset:"0 0",targetAttachment:"auto auto",classPrefix:"tether"};this.options=c(r,e);var o=this.options,a=o.element,s=o.target,u=o.targetModifier;if(this.element=a,this.target=s,this.targetModifier=u,"viewport"===this.target?(this.target=document.body,this.targetModifier="visible"):"scroll-handle"===this.target&&(this.target=document.body,this.targetModifier="scroll-handle"),["element","target"].forEach(function(e){if("undefined"==typeof t[e])throw new Error("Tether Error: Both element and target must be defined");"undefined"!=typeof t[e].jquery?t[e]=t[e][0]:"string"==typeof t[e]&&(t[e]=document.querySelector(t[e]))}),f(this.element,this.getClass("element")),this.options.addTargetClasses!==!1&&f(this.target,this.getClass("target")),!this.options.attachment)throw new Error("Tether Error: You must provide an attachment");this.targetAttachment=K(this.options.targetAttachment),this.attachment=K(this.options.attachment),this.offset=z(this.options.offset),this.targetOffset=z(this.options.targetOffset),"undefined"!=typeof this.scrollParents&&this.disable(),"scroll-handle"===this.targetModifier?this.scrollParents=[this.target]:this.scrollParents=i(this.target),this.options.enabled!==!1&&this.enable(n)}},{key:"getTargetBounds",value:function(){if("undefined"==typeof this.targetModifier)return s(this.target);if("visible"===this.targetModifier){if(this.target===document.body)return{top:pageYOffset,left:pageXOffset,height:innerHeight,width:innerWidth};var e=s(this.target),t={height:e.height,width:e.width,top:e.top,left:e.left};return t.height=Math.min(t.height,e.height-(pageYOffset-e.top)),t.height=Math.min(t.height,e.height-(e.top+e.height-(pageYOffset+innerHeight))),t.height=Math.min(innerHeight,t.height),t.height-=2,t.width=Math.min(t.width,e.width-(pageXOffset-e.left)),t.width=Math.min(t.width,e.width-(e.left+e.width-(pageXOffset+innerWidth))),t.width=Math.min(innerWidth,t.width),t.width-=2,t.topn.clientWidth||[r.overflow,r.overflowX].indexOf("scroll")>=0||this.target!==document.body,i=0;o&&(i=15);var a=e.height-parseFloat(r.borderTopWidth)-parseFloat(r.borderBottomWidth)-i,t={width:15,height:.975*a*(a/n.scrollHeight),left:e.left+e.width-parseFloat(r.borderLeftWidth)-15},u=0;a<408&&this.target===document.body&&(u=-11e-5*Math.pow(a,2)-.00727*a+22.58),this.target!==document.body&&(t.height=Math.max(t.height,24));var l=this.target.scrollTop/(n.scrollHeight-a);return t.top=l*(a-t.height-u)+e.top+parseFloat(r.borderTopWidth),this.target===document.body&&(t.height=Math.max(t.height,24)),t}}},{key:"clearCache",value:function(){this._cache={}}},{key:"cache",value:function(e,t){return"undefined"==typeof this._cache&&(this._cache={}),"undefined"==typeof this._cache[e]&&(this._cache[e]=t.call(this)),this._cache[e]}},{key:"enable",value:function(){var e=this,t=arguments.length<=0||void 0===arguments[0]||arguments[0];this.options.addTargetClasses!==!1&&f(this.target,this.getClass("enabled")),f(this.element,this.getClass("enabled")),this.enabled=!0,this.scrollParents.forEach(function(t){t!==e.target.ownerDocument&&t.addEventListener("scroll",e.position)}),t&&this.position()}},{key:"disable",value:function(){var e=this;p(this.target,this.getClass("enabled")),p(this.element,this.getClass("enabled")),this.enabled=!1,"undefined"!=typeof this.scrollParents&&this.scrollParents.forEach(function(t){t.removeEventListener("scroll",e.position)})}},{key:"destroy",value:function(){var e=this;this.disable(),F.forEach(function(t,n){t===e&&F.splice(n,1)}),0===F.length&&a()}},{key:"updateAttachClasses",value:function(e,t){var n=this;e=e||this.attachment,t=t||this.targetAttachment;var r=["left","top","bottom","right","middle","center"];"undefined"!=typeof this._addAttachClasses&&this._addAttachClasses.length&&this._addAttachClasses.splice(0,this._addAttachClasses.length),"undefined"==typeof this._addAttachClasses&&(this._addAttachClasses=[]);var o=this._addAttachClasses;e.top&&o.push(this.getClass("element-attached")+"-"+e.top),e.left&&o.push(this.getClass("element-attached")+"-"+e.left),t.top&&o.push(this.getClass("target-attached")+"-"+t.top),t.left&&o.push(this.getClass("target-attached")+"-"+t.left);var i=[];r.forEach(function(e){i.push(n.getClass("element-attached")+"-"+e),i.push(n.getClass("target-attached")+"-"+e)}),M(function(){"undefined"!=typeof n._addAttachClasses&&(m(n.element,n._addAttachClasses,i),n.options.addTargetClasses!==!1&&m(n.target,n._addAttachClasses,i),delete n._addAttachClasses)})}},{key:"position",value:function(){var e=this,t=arguments.length<=0||void 0===arguments[0]||arguments[0];if(this.enabled){this.clearCache();var n=H(this.targetAttachment,this.attachment);this.updateAttachClasses(this.attachment,n);var r=this.cache("element-bounds",function(){return s(e.element)}),o=r.width,i=r.height;if(0===o&&0===i&&"undefined"!=typeof this.lastSize){var a=this.lastSize;o=a.width,i=a.height}else this.lastSize={width:o,height:i};var c=this.cache("target-bounds",function(){return e.getTargetBounds()}),p=c,f=_(q(this.attachment),{width:o,height:i}),d=_(q(n),p),h=_(this.offset,{width:o,height:i}),v=_(this.targetOffset,p);f=C(f,h),d=C(d,v);for(var m=c.left+d.left-f.left,g=c.top+d.top-f.top,y=0;yT.documentElement.clientHeight&&(P=this.cache("scrollbar-size",l),E.viewport.bottom-=P.height),O.innerWidth>T.documentElement.clientWidth&&(P=this.cache("scrollbar-size",l),E.viewport.right-=P.width),["","static"].indexOf(T.body.style.position)!==-1&&["","static"].indexOf(T.body.parentElement.style.position)!==-1||(E.page.bottom=T.body.scrollHeight-g-i,E.page.right=T.body.scrollWidth-m-o),"undefined"!=typeof this.options.optimizations&&this.options.optimizations.moveElement!==!1&&"undefined"==typeof this.targetModifier&&!function(){var t=e.cache("target-offsetparent",function(){return u(e.target)}),n=e.cache("target-offsetparent-bounds",function(){return s(t)}),r=getComputedStyle(t),o=n,i={};if(["Top","Left","Bottom","Right"].forEach(function(e){i[e.toLowerCase()]=parseFloat(r["border"+e+"Width"])}),n.right=T.body.scrollWidth-n.left-o.width+i.right,n.bottom=T.body.scrollHeight-n.top-o.height+i.bottom,E.page.top>=n.top+i.top&&E.page.bottom>=n.bottom&&E.page.left>=n.left+i.left&&E.page.right>=n.right){var a=t.scrollTop,l=t.scrollLeft;E.offset={top:E.page.top-n.top+a-i.top,left:E.page.left-n.left+l-i.left}}}(),this.move(E),this.history.unshift(E),this.history.length>3&&this.history.pop(),t&&A(),!0}}},{key:"move",value:function(e){var t=this;if("undefined"!=typeof this.element.parentNode){var n={};for(var r in e){n[r]={};for(var o in e[r]){for(var i=!1,a=0;a=0){var h=s.split(" "),m=D(h,2);p=m[0],c=m[1]}else c=p=s;var b=w(t,i);"target"!==p&&"both"!==p||(nb[3]&&"bottom"===g.top&&(n-=f,g.top="top")),"together"===p&&("top"===g.top&&("bottom"===y.top&&nb[3]&&n-(a-f)>=b[1]&&(n-=a-f,g.top="bottom",y.top="bottom")),"bottom"===g.top&&("top"===y.top&&n+a>b[3]?(n-=f,g.top="top",n-=a,y.top="bottom"):"bottom"===y.top&&nb[3]&&"top"===y.top?(n-=a,y.top="bottom"):nb[2]&&"right"===g.left&&(r-=d,g.left="left")),"together"===c&&(rb[2]&&"right"===g.left?"left"===y.left?(r-=d,g.left="left",r-=u,y.left="right"):"right"===y.left&&(r-=d,g.left="left",r+=u,y.left="left"):"center"===g.left&&(r+u>b[2]&&"left"===y.left?(r-=u,y.left="right"):rb[3]&&"top"===y.top&&(n-=a,y.top="bottom")),"element"!==c&&"both"!==c||(rb[2]&&("left"===y.left?(r-=u,y.left="right"):"center"===y.left&&(r-=u/2,y.left="right"))),"string"==typeof l?l=l.split(",").map(function(e){return e.trim()}):l===!0&&(l=["top","left","right","bottom"]),l=l||[];var C=[],_=[];n=0?(n=b[1],C.push("top")):_.push("top")),n+a>b[3]&&(l.indexOf("bottom")>=0?(n=b[3]-a,C.push("bottom")):_.push("bottom")),r=0?(r=b[0],C.push("left")):_.push("left")),r+u>b[2]&&(l.indexOf("right")>=0?(r=b[2]-u,C.push("right")):_.push("right")),C.length&&!function(){var e=void 0;e="undefined"!=typeof t.options.pinnedClass?t.options.pinnedClass:t.getClass("pinned"),v.push(e),C.forEach(function(t){v.push(e+"-"+t)})}(),_.length&&!function(){var e=void 0;e="undefined"!=typeof t.options.outOfBoundsClass?t.options.outOfBoundsClass:t.getClass("out-of-bounds"),v.push(e),_.forEach(function(t){v.push(e+"-"+t)})}(),(C.indexOf("left")>=0||C.indexOf("right")>=0)&&(y.left=g.left=!1),(C.indexOf("top")>=0||C.indexOf("bottom")>=0)&&(y.top=g.top=!1),g.top===o.top&&g.left===o.left&&y.top===t.attachment.top&&y.left===t.attachment.left||(t.updateAttachClasses(y,g),t.trigger("update",{attachment:y,targetAttachment:g}))}),M(function(){t.options.addTargetClasses!==!1&&m(t.target,v,h),m(t.element,v,h)}),{top:n,left:r}}});var L=x.Utils,s=L.getBounds,m=L.updateClasses,M=L.defer;x.modules.push({position:function(e){var t=this,n=e.top,r=e.left,o=this.cache("element-bounds",function(){return s(t.element)}),i=o.height,a=o.width,u=this.getTargetBounds(),l=n+i,c=r+a,p=[];n<=u.bottom&&l>=u.top&&["left","right"].forEach(function(e){var t=u[e];t!==r&&t!==c||p.push(e)}),r<=u.right&&c>=u.left&&["top","bottom"].forEach(function(e){var t=u[e];t!==n&&t!==l||p.push(e)});var f=[],d=[],h=["left","top","right","bottom"];return f.push(this.getClass("abutted")),h.forEach(function(e){f.push(t.getClass("abutted")+"-"+e)}),p.length&&d.push(this.getClass("abutted")),p.forEach(function(e){d.push(t.getClass("abutted")+"-"+e)}),M(function(){t.options.addTargetClasses!==!1&&m(t.target,d,f),m(t.element,d,f)}),!0}});var D=function(){function e(e,t){var n=[],r=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{!r&&s.return&&s.return()}finally{if(o)throw i}}return n}return function(t,n){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();return x.modules.push({position:function(e){var t=e.top,n=e.left;if(this.options.shift){var r=this.options.shift;"function"==typeof this.options.shift&&(r=this.options.shift.call(this,{top:t,left:n}));var o=void 0,i=void 0;if("string"==typeof r){r=r.split(" "),r[1]=r[1]||r[0];var a=r,s=D(a,2);o=s[0],i=s[1],o=parseFloat(o,10),i=parseFloat(i,10)}else o=r.top,i=r.left;return t+=o,n+=i,{top:t,left:n}}}}),X})},function(e,t){!function(e){"use strict";function t(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function n(e){return"string"!=typeof e&&(e=String(e)),e}function r(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return g.iterable&&(t[Symbol.iterator]=function(){return t}),t}function o(e){this.map={},e instanceof o?e.forEach(function(e,t){this.append(t,e)},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function i(e){return e.bodyUsed?Promise.reject(new TypeError("Already read")):void(e.bodyUsed=!0)}function a(e){return new Promise(function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}})}function s(e){var t=new FileReader,n=a(t);return t.readAsArrayBuffer(e),n}function u(e){var t=new FileReader,n=a(t);return t.readAsText(e),n}function l(e){for(var t=new Uint8Array(e),n=new Array(t.length),r=0;r-1?t:e}function d(e,t){t=t||{};var n=t.body;if(e instanceof d){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new o(e.headers)),this.method=e.method,this.mode=e.mode,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new o(t.headers)),this.method=f(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function h(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(o))}}),t}function v(e){var t=new o;return e.split(/\r?\n/).forEach(function(e){var n=e.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();t.append(r,o)}}),t}function m(e,t){t||(t={}),this.type="default",this.status="status"in t?t.status:200,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new o(t.headers),this.url=t.url||"",this._initBody(e)}if(!e.fetch){var g={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(g.arrayBuffer)var y=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],b=function(e){return e&&DataView.prototype.isPrototypeOf(e)},C=ArrayBuffer.isView||function(e){return e&&y.indexOf(Object.prototype.toString.call(e))>-1};o.prototype.append=function(e,r){e=t(e),r=n(r);var o=this.map[e];this.map[e]=o?o+","+r:r},o.prototype.delete=function(e){delete this.map[t(e)]},o.prototype.get=function(e){return e=t(e),this.has(e)?this.map[e]:null},o.prototype.has=function(e){return this.map.hasOwnProperty(t(e))},o.prototype.set=function(e,r){this.map[t(e)]=n(r)},o.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},o.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),r(e)},o.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),r(e)},o.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),r(e)},g.iterable&&(o.prototype[Symbol.iterator]=o.prototype.entries);var _=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];d.prototype.clone=function(){return new d(this,{body:this._bodyInit})},p.call(d.prototype),p.call(m.prototype),m.prototype.clone=function(){return new m(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new o(this.headers),url:this.url})},m.error=function(){var e=new m(null,{status:0,statusText:""});return e.type="error",e};var w=[301,302,303,307,308];m.redirect=function(e,t){if(w.indexOf(t)===-1)throw new RangeError("Invalid status code");return new m(null,{status:t,headers:{location:e}})},e.Headers=o,e.Request=d,e.Response=m,e.fetch=function(e,t){return new Promise(function(n,r){var o=new d(e,t),i=new XMLHttpRequest;i.onload=function(){var e={status:i.status,statusText:i.statusText,headers:v(i.getAllResponseHeaders()||"")};e.url="responseURL"in i?i.responseURL:e.headers.get("X-Request-URL");var t="response"in i?i.response:i.responseText;n(new m(t,e))},i.onerror=function(){r(new TypeError("Network request failed"))},i.ontimeout=function(){r(new TypeError("Network request failed"))},i.open(o.method,o.url,!0),"include"===o.credentials&&(i.withCredentials=!0),"responseType"in i&&g.blob&&(i.responseType="blob"),o.headers.forEach(function(e,t){i.setRequestHeader(t,e)}),i.send("undefined"==typeof o._bodyInit?null:o._bodyInit)})},e.fetch.polyfill=!0}}("undefined"!=typeof self?self:this)},function(e,t,n,r){"use strict";var o=n(r),i=(n(1),function(e){var t=this;if(t.instancePool.length){var n=t.instancePool.pop();return t.call(n,e),n}return new t(e)}),a=function(e,t){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,e,t),r}return new n(e,t)},s=function(e,t,n){var r=this;if(r.instancePool.length){var o=r.instancePool.pop();return r.call(o,e,t,n),o}return new r(e,t,n)},u=function(e,t,n,r){var o=this;if(o.instancePool.length){var i=o.instancePool.pop();return o.call(i,e,t,n,r),i}return new o(e,t,n,r)},l=function(e){var t=this;e instanceof t?void 0:o("25"),e.destructor(),t.instancePool.length li {
+ position: relative;
+}
+.fa-li {
+ position: absolute;
+ left: -2.142857142857143em;
+ width: 2.142857142857143em;
+ top: 0.14285714285714285em;
+ text-align: center;
+}
+.fa-li.fa-lg {
+ left: -1.8571428571428572em;
+}
+.fa-border {
+ padding: .2em .25em .15em;
+ border: solid 0.08em #eeeeee;
+ border-radius: .1em;
+}
+.pull-right {
+ float: right;
+}
+.pull-left {
+ float: left;
+}
+.fa.pull-left {
+ margin-right: .3em;
+}
+.fa.pull-right {
+ margin-left: .3em;
+}
+.fa-spin {
+ -webkit-animation: spin 2s infinite linear;
+ -moz-animation: spin 2s infinite linear;
+ -o-animation: spin 2s infinite linear;
+ animation: spin 2s infinite linear;
+}
+@-moz-keyframes spin {
+ 0% {
+ -moz-transform: rotate(0deg);
+ }
+ 100% {
+ -moz-transform: rotate(359deg);
+ }
+}
+@-webkit-keyframes spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ }
+}
+@-o-keyframes spin {
+ 0% {
+ -o-transform: rotate(0deg);
+ }
+ 100% {
+ -o-transform: rotate(359deg);
+ }
+}
+@-ms-keyframes spin {
+ 0% {
+ -ms-transform: rotate(0deg);
+ }
+ 100% {
+ -ms-transform: rotate(359deg);
+ }
+}
+@keyframes spin {
+ 0% {
+ transform: rotate(0deg);
+ }
+ 100% {
+ transform: rotate(359deg);
+ }
+}
+.fa-rotate-90 {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
+ -webkit-transform: rotate(90deg);
+ -moz-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ -o-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+.fa-rotate-180 {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
+ -webkit-transform: rotate(180deg);
+ -moz-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ -o-transform: rotate(180deg);
+ transform: rotate(180deg);
+}
+.fa-rotate-270 {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
+ -webkit-transform: rotate(270deg);
+ -moz-transform: rotate(270deg);
+ -ms-transform: rotate(270deg);
+ -o-transform: rotate(270deg);
+ transform: rotate(270deg);
+}
+.fa-flip-horizontal {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
+ -webkit-transform: scale(-1, 1);
+ -moz-transform: scale(-1, 1);
+ -ms-transform: scale(-1, 1);
+ -o-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+.fa-flip-vertical {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
+ -webkit-transform: scale(1, -1);
+ -moz-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ -o-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+.fa-stack {
+ position: relative;
+ display: inline-block;
+ width: 2em;
+ height: 2em;
+ line-height: 2em;
+ vertical-align: middle;
+}
+.fa-stack-1x,
+.fa-stack-2x {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ text-align: center;
+}
+.fa-stack-1x {
+ line-height: inherit;
+}
+.fa-stack-2x {
+ font-size: 2em;
+}
+.fa-inverse {
+ color: #ffffff;
+}
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+ readers do not read off random characters that represent icons */
+.fa-glass:before {
+ content: "\f000";
+}
+.fa-music:before {
+ content: "\f001";
+}
+.fa-search:before {
+ content: "\f002";
+}
+.fa-envelope-o:before {
+ content: "\f003";
+}
+.fa-heart:before {
+ content: "\f004";
+}
+.fa-star:before {
+ content: "\f005";
+}
+.fa-star-o:before {
+ content: "\f006";
+}
+.fa-user:before {
+ content: "\f007";
+}
+.fa-film:before {
+ content: "\f008";
+}
+.fa-th-large:before {
+ content: "\f009";
+}
+.fa-th:before {
+ content: "\f00a";
+}
+.fa-th-list:before {
+ content: "\f00b";
+}
+.fa-check:before {
+ content: "\f00c";
+}
+.fa-times:before {
+ content: "\f00d";
+}
+.fa-search-plus:before {
+ content: "\f00e";
+}
+.fa-search-minus:before {
+ content: "\f010";
+}
+.fa-power-off:before {
+ content: "\f011";
+}
+.fa-signal:before {
+ content: "\f012";
+}
+.fa-gear:before,
+.fa-cog:before {
+ content: "\f013";
+}
+.fa-trash-o:before {
+ content: "\f014";
+}
+.fa-home:before {
+ content: "\f015";
+}
+.fa-file-o:before {
+ content: "\f016";
+}
+.fa-clock-o:before {
+ content: "\f017";
+}
+.fa-road:before {
+ content: "\f018";
+}
+.fa-download:before {
+ content: "\f019";
+}
+.fa-arrow-circle-o-down:before {
+ content: "\f01a";
+}
+.fa-arrow-circle-o-up:before {
+ content: "\f01b";
+}
+.fa-inbox:before {
+ content: "\f01c";
+}
+.fa-play-circle-o:before {
+ content: "\f01d";
+}
+.fa-rotate-right:before,
+.fa-repeat:before {
+ content: "\f01e";
+}
+.fa-refresh:before {
+ content: "\f021";
+}
+.fa-list-alt:before {
+ content: "\f022";
+}
+.fa-lock:before {
+ content: "\f023";
+}
+.fa-flag:before {
+ content: "\f024";
+}
+.fa-headphones:before {
+ content: "\f025";
+}
+.fa-volume-off:before {
+ content: "\f026";
+}
+.fa-volume-down:before {
+ content: "\f027";
+}
+.fa-volume-up:before {
+ content: "\f028";
+}
+.fa-qrcode:before {
+ content: "\f029";
+}
+.fa-barcode:before {
+ content: "\f02a";
+}
+.fa-tag:before {
+ content: "\f02b";
+}
+.fa-tags:before {
+ content: "\f02c";
+}
+.fa-book:before {
+ content: "\f02d";
+}
+.fa-bookmark:before {
+ content: "\f02e";
+}
+.fa-print:before {
+ content: "\f02f";
+}
+.fa-camera:before {
+ content: "\f030";
+}
+.fa-font:before {
+ content: "\f031";
+}
+.fa-bold:before {
+ content: "\f032";
+}
+.fa-italic:before {
+ content: "\f033";
+}
+.fa-text-height:before {
+ content: "\f034";
+}
+.fa-text-width:before {
+ content: "\f035";
+}
+.fa-align-left:before {
+ content: "\f036";
+}
+.fa-align-center:before {
+ content: "\f037";
+}
+.fa-align-right:before {
+ content: "\f038";
+}
+.fa-align-justify:before {
+ content: "\f039";
+}
+.fa-list:before {
+ content: "\f03a";
+}
+.fa-dedent:before,
+.fa-outdent:before {
+ content: "\f03b";
+}
+.fa-indent:before {
+ content: "\f03c";
+}
+.fa-video-camera:before {
+ content: "\f03d";
+}
+.fa-picture-o:before {
+ content: "\f03e";
+}
+.fa-pencil:before {
+ content: "\f040";
+}
+.fa-map-marker:before {
+ content: "\f041";
+}
+.fa-adjust:before {
+ content: "\f042";
+}
+.fa-tint:before {
+ content: "\f043";
+}
+.fa-edit:before,
+.fa-pencil-square-o:before {
+ content: "\f044";
+}
+.fa-share-square-o:before {
+ content: "\f045";
+}
+.fa-check-square-o:before {
+ content: "\f046";
+}
+.fa-arrows:before {
+ content: "\f047";
+}
+.fa-step-backward:before {
+ content: "\f048";
+}
+.fa-fast-backward:before {
+ content: "\f049";
+}
+.fa-backward:before {
+ content: "\f04a";
+}
+.fa-play:before {
+ content: "\f04b";
+}
+.fa-pause:before {
+ content: "\f04c";
+}
+.fa-stop:before {
+ content: "\f04d";
+}
+.fa-forward:before {
+ content: "\f04e";
+}
+.fa-fast-forward:before {
+ content: "\f050";
+}
+.fa-step-forward:before {
+ content: "\f051";
+}
+.fa-eject:before {
+ content: "\f052";
+}
+.fa-chevron-left:before {
+ content: "\f053";
+}
+.fa-chevron-right:before {
+ content: "\f054";
+}
+.fa-plus-circle:before {
+ content: "\f055";
+}
+.fa-minus-circle:before {
+ content: "\f056";
+}
+.fa-times-circle:before {
+ content: "\f057";
+}
+.fa-check-circle:before {
+ content: "\f058";
+}
+.fa-question-circle:before {
+ content: "\f059";
+}
+.fa-info-circle:before {
+ content: "\f05a";
+}
+.fa-crosshairs:before {
+ content: "\f05b";
+}
+.fa-times-circle-o:before {
+ content: "\f05c";
+}
+.fa-check-circle-o:before {
+ content: "\f05d";
+}
+.fa-ban:before {
+ content: "\f05e";
+}
+.fa-arrow-left:before {
+ content: "\f060";
+}
+.fa-arrow-right:before {
+ content: "\f061";
+}
+.fa-arrow-up:before {
+ content: "\f062";
+}
+.fa-arrow-down:before {
+ content: "\f063";
+}
+.fa-mail-forward:before,
+.fa-share:before {
+ content: "\f064";
+}
+.fa-expand:before {
+ content: "\f065";
+}
+.fa-compress:before {
+ content: "\f066";
+}
+.fa-plus:before {
+ content: "\f067";
+}
+.fa-minus:before {
+ content: "\f068";
+}
+.fa-asterisk:before {
+ content: "\f069";
+}
+.fa-exclamation-circle:before {
+ content: "\f06a";
+}
+.fa-gift:before {
+ content: "\f06b";
+}
+.fa-leaf:before {
+ content: "\f06c";
+}
+.fa-fire:before {
+ content: "\f06d";
+}
+.fa-eye:before {
+ content: "\f06e";
+}
+.fa-eye-slash:before {
+ content: "\f070";
+}
+.fa-warning:before,
+.fa-exclamation-triangle:before {
+ content: "\f071";
+}
+.fa-plane:before {
+ content: "\f072";
+}
+.fa-calendar:before {
+ content: "\f073";
+}
+.fa-random:before {
+ content: "\f074";
+}
+.fa-comment:before {
+ content: "\f075";
+}
+.fa-magnet:before {
+ content: "\f076";
+}
+.fa-chevron-up:before {
+ content: "\f077";
+}
+.fa-chevron-down:before {
+ content: "\f078";
+}
+.fa-retweet:before {
+ content: "\f079";
+}
+.fa-shopping-cart:before {
+ content: "\f07a";
+}
+.fa-folder:before {
+ content: "\f07b";
+}
+.fa-folder-open:before {
+ content: "\f07c";
+}
+.fa-arrows-v:before {
+ content: "\f07d";
+}
+.fa-arrows-h:before {
+ content: "\f07e";
+}
+.fa-bar-chart-o:before {
+ content: "\f080";
+}
+.fa-twitter-square:before {
+ content: "\f081";
+}
+.fa-facebook-square:before {
+ content: "\f082";
+}
+.fa-camera-retro:before {
+ content: "\f083";
+}
+.fa-key:before {
+ content: "\f084";
+}
+.fa-gears:before,
+.fa-cogs:before {
+ content: "\f085";
+}
+.fa-comments:before {
+ content: "\f086";
+}
+.fa-thumbs-o-up:before {
+ content: "\f087";
+}
+.fa-thumbs-o-down:before {
+ content: "\f088";
+}
+.fa-star-half:before {
+ content: "\f089";
+}
+.fa-heart-o:before {
+ content: "\f08a";
+}
+.fa-sign-out:before {
+ content: "\f08b";
+}
+.fa-linkedin-square:before {
+ content: "\f08c";
+}
+.fa-thumb-tack:before {
+ content: "\f08d";
+}
+.fa-external-link:before {
+ content: "\f08e";
+}
+.fa-sign-in:before {
+ content: "\f090";
+}
+.fa-trophy:before {
+ content: "\f091";
+}
+.fa-github-square:before {
+ content: "\f092";
+}
+.fa-upload:before {
+ content: "\f093";
+}
+.fa-lemon-o:before {
+ content: "\f094";
+}
+.fa-phone:before {
+ content: "\f095";
+}
+.fa-square-o:before {
+ content: "\f096";
+}
+.fa-bookmark-o:before {
+ content: "\f097";
+}
+.fa-phone-square:before {
+ content: "\f098";
+}
+.fa-twitter:before {
+ content: "\f099";
+}
+.fa-facebook:before {
+ content: "\f09a";
+}
+.fa-github:before {
+ content: "\f09b";
+}
+.fa-unlock:before {
+ content: "\f09c";
+}
+.fa-credit-card:before {
+ content: "\f09d";
+}
+.fa-rss:before {
+ content: "\f09e";
+}
+.fa-hdd-o:before {
+ content: "\f0a0";
+}
+.fa-bullhorn:before {
+ content: "\f0a1";
+}
+.fa-bell:before {
+ content: "\f0f3";
+}
+.fa-certificate:before {
+ content: "\f0a3";
+}
+.fa-hand-o-right:before {
+ content: "\f0a4";
+}
+.fa-hand-o-left:before {
+ content: "\f0a5";
+}
+.fa-hand-o-up:before {
+ content: "\f0a6";
+}
+.fa-hand-o-down:before {
+ content: "\f0a7";
+}
+.fa-arrow-circle-left:before {
+ content: "\f0a8";
+}
+.fa-arrow-circle-right:before {
+ content: "\f0a9";
+}
+.fa-arrow-circle-up:before {
+ content: "\f0aa";
+}
+.fa-arrow-circle-down:before {
+ content: "\f0ab";
+}
+.fa-globe:before {
+ content: "\f0ac";
+}
+.fa-wrench:before {
+ content: "\f0ad";
+}
+.fa-tasks:before {
+ content: "\f0ae";
+}
+.fa-filter:before {
+ content: "\f0b0";
+}
+.fa-briefcase:before {
+ content: "\f0b1";
+}
+.fa-arrows-alt:before {
+ content: "\f0b2";
+}
+.fa-group:before,
+.fa-users:before {
+ content: "\f0c0";
+}
+.fa-chain:before,
+.fa-link:before {
+ content: "\f0c1";
+}
+.fa-cloud:before {
+ content: "\f0c2";
+}
+.fa-flask:before {
+ content: "\f0c3";
+}
+.fa-cut:before,
+.fa-scissors:before {
+ content: "\f0c4";
+}
+.fa-copy:before,
+.fa-files-o:before {
+ content: "\f0c5";
+}
+.fa-paperclip:before {
+ content: "\f0c6";
+}
+.fa-save:before,
+.fa-floppy-o:before {
+ content: "\f0c7";
+}
+.fa-square:before {
+ content: "\f0c8";
+}
+.fa-bars:before {
+ content: "\f0c9";
+}
+.fa-list-ul:before {
+ content: "\f0ca";
+}
+.fa-list-ol:before {
+ content: "\f0cb";
+}
+.fa-strikethrough:before {
+ content: "\f0cc";
+}
+.fa-underline:before {
+ content: "\f0cd";
+}
+.fa-table:before {
+ content: "\f0ce";
+}
+.fa-magic:before {
+ content: "\f0d0";
+}
+.fa-truck:before {
+ content: "\f0d1";
+}
+.fa-pinterest:before {
+ content: "\f0d2";
+}
+.fa-pinterest-square:before {
+ content: "\f0d3";
+}
+.fa-google-plus-square:before {
+ content: "\f0d4";
+}
+.fa-google-plus:before {
+ content: "\f0d5";
+}
+.fa-money:before {
+ content: "\f0d6";
+}
+.fa-caret-down:before {
+ content: "\f0d7";
+}
+.fa-caret-up:before {
+ content: "\f0d8";
+}
+.fa-caret-left:before {
+ content: "\f0d9";
+}
+.fa-caret-right:before {
+ content: "\f0da";
+}
+.fa-columns:before {
+ content: "\f0db";
+}
+.fa-unsorted:before,
+.fa-sort:before {
+ content: "\f0dc";
+}
+.fa-sort-down:before,
+.fa-sort-asc:before {
+ content: "\f0dd";
+}
+.fa-sort-up:before,
+.fa-sort-desc:before {
+ content: "\f0de";
+}
+.fa-envelope:before {
+ content: "\f0e0";
+}
+.fa-linkedin:before {
+ content: "\f0e1";
+}
+.fa-rotate-left:before,
+.fa-undo:before {
+ content: "\f0e2";
+}
+.fa-legal:before,
+.fa-gavel:before {
+ content: "\f0e3";
+}
+.fa-dashboard:before,
+.fa-tachometer:before {
+ content: "\f0e4";
+}
+.fa-comment-o:before {
+ content: "\f0e5";
+}
+.fa-comments-o:before {
+ content: "\f0e6";
+}
+.fa-flash:before,
+.fa-bolt:before {
+ content: "\f0e7";
+}
+.fa-sitemap:before {
+ content: "\f0e8";
+}
+.fa-umbrella:before {
+ content: "\f0e9";
+}
+.fa-paste:before,
+.fa-clipboard:before {
+ content: "\f0ea";
+}
+.fa-lightbulb-o:before {
+ content: "\f0eb";
+}
+.fa-exchange:before {
+ content: "\f0ec";
+}
+.fa-cloud-download:before {
+ content: "\f0ed";
+}
+.fa-cloud-upload:before {
+ content: "\f0ee";
+}
+.fa-user-md:before {
+ content: "\f0f0";
+}
+.fa-stethoscope:before {
+ content: "\f0f1";
+}
+.fa-suitcase:before {
+ content: "\f0f2";
+}
+.fa-bell-o:before {
+ content: "\f0a2";
+}
+.fa-coffee:before {
+ content: "\f0f4";
+}
+.fa-cutlery:before {
+ content: "\f0f5";
+}
+.fa-file-text-o:before {
+ content: "\f0f6";
+}
+.fa-building-o:before {
+ content: "\f0f7";
+}
+.fa-hospital-o:before {
+ content: "\f0f8";
+}
+.fa-ambulance:before {
+ content: "\f0f9";
+}
+.fa-medkit:before {
+ content: "\f0fa";
+}
+.fa-fighter-jet:before {
+ content: "\f0fb";
+}
+.fa-beer:before {
+ content: "\f0fc";
+}
+.fa-h-square:before {
+ content: "\f0fd";
+}
+.fa-plus-square:before {
+ content: "\f0fe";
+}
+.fa-angle-double-left:before {
+ content: "\f100";
+}
+.fa-angle-double-right:before {
+ content: "\f101";
+}
+.fa-angle-double-up:before {
+ content: "\f102";
+}
+.fa-angle-double-down:before {
+ content: "\f103";
+}
+.fa-angle-left:before {
+ content: "\f104";
+}
+.fa-angle-right:before {
+ content: "\f105";
+}
+.fa-angle-up:before {
+ content: "\f106";
+}
+.fa-angle-down:before {
+ content: "\f107";
+}
+.fa-desktop:before {
+ content: "\f108";
+}
+.fa-laptop:before {
+ content: "\f109";
+}
+.fa-tablet:before {
+ content: "\f10a";
+}
+.fa-mobile-phone:before,
+.fa-mobile:before {
+ content: "\f10b";
+}
+.fa-circle-o:before {
+ content: "\f10c";
+}
+.fa-quote-left:before {
+ content: "\f10d";
+}
+.fa-quote-right:before {
+ content: "\f10e";
+}
+.fa-spinner:before {
+ content: "\f110";
+}
+.fa-circle:before {
+ content: "\f111";
+}
+.fa-mail-reply:before,
+.fa-reply:before {
+ content: "\f112";
+}
+.fa-github-alt:before {
+ content: "\f113";
+}
+.fa-folder-o:before {
+ content: "\f114";
+}
+.fa-folder-open-o:before {
+ content: "\f115";
+}
+.fa-smile-o:before {
+ content: "\f118";
+}
+.fa-frown-o:before {
+ content: "\f119";
+}
+.fa-meh-o:before {
+ content: "\f11a";
+}
+.fa-gamepad:before {
+ content: "\f11b";
+}
+.fa-keyboard-o:before {
+ content: "\f11c";
+}
+.fa-flag-o:before {
+ content: "\f11d";
+}
+.fa-flag-checkered:before {
+ content: "\f11e";
+}
+.fa-terminal:before {
+ content: "\f120";
+}
+.fa-code:before {
+ content: "\f121";
+}
+.fa-reply-all:before {
+ content: "\f122";
+}
+.fa-mail-reply-all:before {
+ content: "\f122";
+}
+.fa-star-half-empty:before,
+.fa-star-half-full:before,
+.fa-star-half-o:before {
+ content: "\f123";
+}
+.fa-location-arrow:before {
+ content: "\f124";
+}
+.fa-crop:before {
+ content: "\f125";
+}
+.fa-code-fork:before {
+ content: "\f126";
+}
+.fa-unlink:before,
+.fa-chain-broken:before {
+ content: "\f127";
+}
+.fa-question:before {
+ content: "\f128";
+}
+.fa-info:before {
+ content: "\f129";
+}
+.fa-exclamation:before {
+ content: "\f12a";
+}
+.fa-superscript:before {
+ content: "\f12b";
+}
+.fa-subscript:before {
+ content: "\f12c";
+}
+.fa-eraser:before {
+ content: "\f12d";
+}
+.fa-puzzle-piece:before {
+ content: "\f12e";
+}
+.fa-microphone:before {
+ content: "\f130";
+}
+.fa-microphone-slash:before {
+ content: "\f131";
+}
+.fa-shield:before {
+ content: "\f132";
+}
+.fa-calendar-o:before {
+ content: "\f133";
+}
+.fa-fire-extinguisher:before {
+ content: "\f134";
+}
+.fa-rocket:before {
+ content: "\f135";
+}
+.fa-maxcdn:before {
+ content: "\f136";
+}
+.fa-chevron-circle-left:before {
+ content: "\f137";
+}
+.fa-chevron-circle-right:before {
+ content: "\f138";
+}
+.fa-chevron-circle-up:before {
+ content: "\f139";
+}
+.fa-chevron-circle-down:before {
+ content: "\f13a";
+}
+.fa-html5:before {
+ content: "\f13b";
+}
+.fa-css3:before {
+ content: "\f13c";
+}
+.fa-anchor:before {
+ content: "\f13d";
+}
+.fa-unlock-alt:before {
+ content: "\f13e";
+}
+.fa-bullseye:before {
+ content: "\f140";
+}
+.fa-ellipsis-h:before {
+ content: "\f141";
+}
+.fa-ellipsis-v:before {
+ content: "\f142";
+}
+.fa-rss-square:before {
+ content: "\f143";
+}
+.fa-play-circle:before {
+ content: "\f144";
+}
+.fa-ticket:before {
+ content: "\f145";
+}
+.fa-minus-square:before {
+ content: "\f146";
+}
+.fa-minus-square-o:before {
+ content: "\f147";
+}
+.fa-level-up:before {
+ content: "\f148";
+}
+.fa-level-down:before {
+ content: "\f149";
+}
+.fa-check-square:before {
+ content: "\f14a";
+}
+.fa-pencil-square:before {
+ content: "\f14b";
+}
+.fa-external-link-square:before {
+ content: "\f14c";
+}
+.fa-share-square:before {
+ content: "\f14d";
+}
+.fa-compass:before {
+ content: "\f14e";
+}
+.fa-toggle-down:before,
+.fa-caret-square-o-down:before {
+ content: "\f150";
+}
+.fa-toggle-up:before,
+.fa-caret-square-o-up:before {
+ content: "\f151";
+}
+.fa-toggle-right:before,
+.fa-caret-square-o-right:before {
+ content: "\f152";
+}
+.fa-euro:before,
+.fa-eur:before {
+ content: "\f153";
+}
+.fa-gbp:before {
+ content: "\f154";
+}
+.fa-dollar:before,
+.fa-usd:before {
+ content: "\f155";
+}
+.fa-rupee:before,
+.fa-inr:before {
+ content: "\f156";
+}
+.fa-cny:before,
+.fa-rmb:before,
+.fa-yen:before,
+.fa-jpy:before {
+ content: "\f157";
+}
+.fa-ruble:before,
+.fa-rouble:before,
+.fa-rub:before {
+ content: "\f158";
+}
+.fa-won:before,
+.fa-krw:before {
+ content: "\f159";
+}
+.fa-bitcoin:before,
+.fa-btc:before {
+ content: "\f15a";
+}
+.fa-file:before {
+ content: "\f15b";
+}
+.fa-file-text:before {
+ content: "\f15c";
+}
+.fa-sort-alpha-asc:before {
+ content: "\f15d";
+}
+.fa-sort-alpha-desc:before {
+ content: "\f15e";
+}
+.fa-sort-amount-asc:before {
+ content: "\f160";
+}
+.fa-sort-amount-desc:before {
+ content: "\f161";
+}
+.fa-sort-numeric-asc:before {
+ content: "\f162";
+}
+.fa-sort-numeric-desc:before {
+ content: "\f163";
+}
+.fa-thumbs-up:before {
+ content: "\f164";
+}
+.fa-thumbs-down:before {
+ content: "\f165";
+}
+.fa-youtube-square:before {
+ content: "\f166";
+}
+.fa-youtube:before {
+ content: "\f167";
+}
+.fa-xing:before {
+ content: "\f168";
+}
+.fa-xing-square:before {
+ content: "\f169";
+}
+.fa-youtube-play:before {
+ content: "\f16a";
+}
+.fa-dropbox:before {
+ content: "\f16b";
+}
+.fa-stack-overflow:before {
+ content: "\f16c";
+}
+.fa-instagram:before {
+ content: "\f16d";
+}
+.fa-flickr:before {
+ content: "\f16e";
+}
+.fa-adn:before {
+ content: "\f170";
+}
+.fa-bitbucket:before {
+ content: "\f171";
+}
+.fa-bitbucket-square:before {
+ content: "\f172";
+}
+.fa-tumblr:before {
+ content: "\f173";
+}
+.fa-tumblr-square:before {
+ content: "\f174";
+}
+.fa-long-arrow-down:before {
+ content: "\f175";
+}
+.fa-long-arrow-up:before {
+ content: "\f176";
+}
+.fa-long-arrow-left:before {
+ content: "\f177";
+}
+.fa-long-arrow-right:before {
+ content: "\f178";
+}
+.fa-apple:before {
+ content: "\f179";
+}
+.fa-windows:before {
+ content: "\f17a";
+}
+.fa-android:before {
+ content: "\f17b";
+}
+.fa-linux:before {
+ content: "\f17c";
+}
+.fa-dribbble:before {
+ content: "\f17d";
+}
+.fa-skype:before {
+ content: "\f17e";
+}
+.fa-foursquare:before {
+ content: "\f180";
+}
+.fa-trello:before {
+ content: "\f181";
+}
+.fa-female:before {
+ content: "\f182";
+}
+.fa-male:before {
+ content: "\f183";
+}
+.fa-gittip:before {
+ content: "\f184";
+}
+.fa-sun-o:before {
+ content: "\f185";
+}
+.fa-moon-o:before {
+ content: "\f186";
+}
+.fa-archive:before {
+ content: "\f187";
+}
+.fa-bug:before {
+ content: "\f188";
+}
+.fa-vk:before {
+ content: "\f189";
+}
+.fa-weibo:before {
+ content: "\f18a";
+}
+.fa-renren:before {
+ content: "\f18b";
+}
+.fa-pagelines:before {
+ content: "\f18c";
+}
+.fa-stack-exchange:before {
+ content: "\f18d";
+}
+.fa-arrow-circle-o-right:before {
+ content: "\f18e";
+}
+.fa-arrow-circle-o-left:before {
+ content: "\f190";
+}
+.fa-toggle-left:before,
+.fa-caret-square-o-left:before {
+ content: "\f191";
+}
+.fa-dot-circle-o:before {
+ content: "\f192";
+}
+.fa-wheelchair:before {
+ content: "\f193";
+}
+.fa-vimeo-square:before {
+ content: "\f194";
+}
+.fa-turkish-lira:before,
+.fa-try:before {
+ content: "\f195";
+}
+.fa-plus-square-o:before {
+ content: "\f196";
+}
diff --git a/data/interfaces/default/js/highcharts/api/css/images/ui-bg_flat_75_ffffff_40x100.png b/data/interfaces/default/js/highcharts/api/css/images/ui-bg_flat_75_ffffff_40x100.png
new file mode 100644
index 00000000..ca779e35
Binary files /dev/null and b/data/interfaces/default/js/highcharts/api/css/images/ui-bg_flat_75_ffffff_40x100.png differ
diff --git a/data/interfaces/default/js/highcharts/api/css/images/ui-bg_glass_75_dadada_1x400.png b/data/interfaces/default/js/highcharts/api/css/images/ui-bg_glass_75_dadada_1x400.png
new file mode 100644
index 00000000..7eda20a5
Binary files /dev/null and b/data/interfaces/default/js/highcharts/api/css/images/ui-bg_glass_75_dadada_1x400.png differ
diff --git a/data/interfaces/default/js/highcharts/api/css/jquery-ui.css b/data/interfaces/default/js/highcharts/api/css/jquery-ui.css
new file mode 100644
index 00000000..572ed8a9
--- /dev/null
+++ b/data/interfaces/default/js/highcharts/api/css/jquery-ui.css
@@ -0,0 +1,1177 @@
+/*! jQuery UI - v1.10.3 - 2013-05-03
+* http://jqueryui.com
+* Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+* Copyright 2013 jQuery Foundation and other contributors Licensed MIT */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden {
+ display: none;
+}
+.ui-helper-hidden-accessible {
+ border: 0;
+ clip: rect(0 0 0 0);
+ height: 1px;
+ margin: -1px;
+ overflow: hidden;
+ padding: 0;
+ position: absolute;
+ width: 1px;
+}
+.ui-helper-reset {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ outline: 0;
+ line-height: 1.3;
+ text-decoration: none;
+ font-size: 100%;
+ list-style: none;
+}
+.ui-helper-clearfix:before,
+.ui-helper-clearfix:after {
+ content: "";
+ display: table;
+ border-collapse: collapse;
+}
+.ui-helper-clearfix:after {
+ clear: both;
+}
+.ui-helper-clearfix {
+ min-height: 0; /* support: IE7 */
+}
+.ui-helper-zfix {
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ position: absolute;
+ opacity: 0;
+ filter:Alpha(Opacity=0);
+}
+
+.ui-front {
+ z-index: 100;
+}
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled {
+ cursor: default !important;
+}
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+ display: block;
+ text-indent: -99999px;
+ overflow: hidden;
+ background-repeat: no-repeat;
+}
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+.ui-accordion .ui-accordion-header {
+ display: block;
+ cursor: pointer;
+ position: relative;
+ margin-top: 2px;
+ padding: .5em .5em .5em .7em;
+ min-height: 0; /* support: IE7 */
+}
+.ui-accordion .ui-accordion-icons {
+ padding-left: 2.2em;
+}
+.ui-accordion .ui-accordion-noicons {
+ padding-left: .7em;
+}
+.ui-accordion .ui-accordion-icons .ui-accordion-icons {
+ padding-left: 2.2em;
+}
+.ui-accordion .ui-accordion-header .ui-accordion-header-icon {
+ position: absolute;
+ left: .5em;
+ top: 50%;
+ margin-top: -8px;
+}
+.ui-accordion .ui-accordion-content {
+ padding: 1em 2.2em;
+ border-top: 0;
+ overflow: auto;
+}
+.ui-autocomplete {
+ position: absolute;
+ top: 0;
+ left: 0;
+ cursor: default;
+}
+.ui-button {
+ display: inline-block;
+ position: relative;
+ padding: 0;
+ line-height: normal;
+ margin-right: .1em;
+ cursor: pointer;
+ vertical-align: middle;
+ text-align: center;
+ overflow: visible; /* removes extra width in IE */
+}
+.ui-button,
+.ui-button:link,
+.ui-button:visited,
+.ui-button:hover,
+.ui-button:active {
+ text-decoration: none;
+}
+/* to make room for the icon, a width needs to be set here */
+.ui-button-icon-only {
+ width: 2.2em;
+}
+/* button elements seem to need a little more width */
+button.ui-button-icon-only {
+ width: 2.4em;
+}
+.ui-button-icons-only {
+ width: 3.4em;
+}
+button.ui-button-icons-only {
+ width: 3.7em;
+}
+
+/* button text element */
+.ui-button .ui-button-text {
+ display: block;
+ line-height: normal;
+}
+.ui-button-text-only .ui-button-text {
+ padding: .4em 1em;
+}
+.ui-button-icon-only .ui-button-text,
+.ui-button-icons-only .ui-button-text {
+ padding: .4em;
+ text-indent: -9999999px;
+}
+.ui-button-text-icon-primary .ui-button-text,
+.ui-button-text-icons .ui-button-text {
+ padding: .4em 1em .4em 2.1em;
+}
+.ui-button-text-icon-secondary .ui-button-text,
+.ui-button-text-icons .ui-button-text {
+ padding: .4em 2.1em .4em 1em;
+}
+.ui-button-text-icons .ui-button-text {
+ padding-left: 2.1em;
+ padding-right: 2.1em;
+}
+/* no icon support for input elements, provide padding by default */
+input.ui-button {
+ padding: .4em 1em;
+}
+
+/* button icon element(s) */
+.ui-button-icon-only .ui-icon,
+.ui-button-text-icon-primary .ui-icon,
+.ui-button-text-icon-secondary .ui-icon,
+.ui-button-text-icons .ui-icon,
+.ui-button-icons-only .ui-icon {
+ position: absolute;
+ top: 50%;
+ margin-top: -8px;
+}
+.ui-button-icon-only .ui-icon {
+ left: 50%;
+ margin-left: -8px;
+}
+.ui-button-text-icon-primary .ui-button-icon-primary,
+.ui-button-text-icons .ui-button-icon-primary,
+.ui-button-icons-only .ui-button-icon-primary {
+ left: .5em;
+}
+.ui-button-text-icon-secondary .ui-button-icon-secondary,
+.ui-button-text-icons .ui-button-icon-secondary,
+.ui-button-icons-only .ui-button-icon-secondary {
+ right: .5em;
+}
+
+/* button sets */
+.ui-buttonset {
+ margin-right: 7px;
+}
+.ui-buttonset .ui-button {
+ margin-left: 0;
+ margin-right: -.3em;
+}
+
+/* workarounds */
+/* reset extra padding in Firefox, see h5bp.com/l */
+input.ui-button::-moz-focus-inner,
+button.ui-button::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+.ui-datepicker {
+ width: 17em;
+ padding: .2em .2em 0;
+ display: none;
+}
+.ui-datepicker .ui-datepicker-header {
+ position: relative;
+ padding: .2em 0;
+}
+.ui-datepicker .ui-datepicker-prev,
+.ui-datepicker .ui-datepicker-next {
+ position: absolute;
+ top: 2px;
+ width: 1.8em;
+ height: 1.8em;
+}
+.ui-datepicker .ui-datepicker-prev-hover,
+.ui-datepicker .ui-datepicker-next-hover {
+ top: 1px;
+}
+.ui-datepicker .ui-datepicker-prev {
+ left: 2px;
+}
+.ui-datepicker .ui-datepicker-next {
+ right: 2px;
+}
+.ui-datepicker .ui-datepicker-prev-hover {
+ left: 1px;
+}
+.ui-datepicker .ui-datepicker-next-hover {
+ right: 1px;
+}
+.ui-datepicker .ui-datepicker-prev span,
+.ui-datepicker .ui-datepicker-next span {
+ display: block;
+ position: absolute;
+ left: 50%;
+ margin-left: -8px;
+ top: 50%;
+ margin-top: -8px;
+}
+.ui-datepicker .ui-datepicker-title {
+ margin: 0 2.3em;
+ line-height: 1.8em;
+ text-align: center;
+}
+.ui-datepicker .ui-datepicker-title select {
+ font-size: 1em;
+ margin: 1px 0;
+}
+.ui-datepicker select.ui-datepicker-month-year {
+ width: 100%;
+}
+.ui-datepicker select.ui-datepicker-month,
+.ui-datepicker select.ui-datepicker-year {
+ width: 49%;
+}
+.ui-datepicker table {
+ width: 100%;
+ font-size: .9em;
+ border-collapse: collapse;
+ margin: 0 0 .4em;
+}
+.ui-datepicker th {
+ padding: .7em .3em;
+ text-align: center;
+ font-weight: bold;
+ border: 0;
+}
+.ui-datepicker td {
+ border: 0;
+ padding: 1px;
+}
+.ui-datepicker td span,
+.ui-datepicker td a {
+ display: block;
+ padding: .2em;
+ text-align: right;
+ text-decoration: none;
+}
+.ui-datepicker .ui-datepicker-buttonpane {
+ background-image: none;
+ margin: .7em 0 0 0;
+ padding: 0 .2em;
+ border-left: 0;
+ border-right: 0;
+ border-bottom: 0;
+}
+.ui-datepicker .ui-datepicker-buttonpane button {
+ float: right;
+ margin: .5em .2em .4em;
+ cursor: pointer;
+ padding: .2em .6em .3em .6em;
+ width: auto;
+ overflow: visible;
+}
+.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
+ float: left;
+}
+
+/* with multiple calendars */
+.ui-datepicker.ui-datepicker-multi {
+ width: auto;
+}
+.ui-datepicker-multi .ui-datepicker-group {
+ float: left;
+}
+.ui-datepicker-multi .ui-datepicker-group table {
+ width: 95%;
+ margin: 0 auto .4em;
+}
+.ui-datepicker-multi-2 .ui-datepicker-group {
+ width: 50%;
+}
+.ui-datepicker-multi-3 .ui-datepicker-group {
+ width: 33.3%;
+}
+.ui-datepicker-multi-4 .ui-datepicker-group {
+ width: 25%;
+}
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
+.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
+ border-left-width: 0;
+}
+.ui-datepicker-multi .ui-datepicker-buttonpane {
+ clear: left;
+}
+.ui-datepicker-row-break {
+ clear: both;
+ width: 100%;
+ font-size: 0;
+}
+
+/* RTL support */
+.ui-datepicker-rtl {
+ direction: rtl;
+}
+.ui-datepicker-rtl .ui-datepicker-prev {
+ right: 2px;
+ left: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-next {
+ left: 2px;
+ right: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-prev:hover {
+ right: 1px;
+ left: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-next:hover {
+ left: 1px;
+ right: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-buttonpane {
+ clear: right;
+}
+.ui-datepicker-rtl .ui-datepicker-buttonpane button {
+ float: left;
+}
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
+.ui-datepicker-rtl .ui-datepicker-group {
+ float: right;
+}
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
+ border-right-width: 0;
+ border-left-width: 1px;
+}
+.ui-dialog {
+ position: absolute;
+ top: 0;
+ left: 0;
+ padding: .2em;
+ outline: 0;
+}
+.ui-dialog .ui-dialog-titlebar {
+ padding: .4em 1em;
+ position: relative;
+}
+.ui-dialog .ui-dialog-title {
+ float: left;
+ margin: .1em 0;
+ white-space: nowrap;
+ width: 90%;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+.ui-dialog .ui-dialog-titlebar-close {
+ position: absolute;
+ right: .3em;
+ top: 50%;
+ width: 21px;
+ margin: -10px 0 0 0;
+ padding: 1px;
+ height: 20px;
+}
+.ui-dialog .ui-dialog-content {
+ position: relative;
+ border: 0;
+ padding: .5em 1em;
+ background: none;
+ overflow: auto;
+}
+.ui-dialog .ui-dialog-buttonpane {
+ text-align: left;
+ border-width: 1px 0 0 0;
+ background-image: none;
+ margin-top: .5em;
+ padding: .3em 1em .5em .4em;
+}
+.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
+ float: right;
+}
+.ui-dialog .ui-dialog-buttonpane button {
+ margin: .5em .4em .5em 0;
+ cursor: pointer;
+}
+.ui-dialog .ui-resizable-se {
+ width: 12px;
+ height: 12px;
+ right: -5px;
+ bottom: -5px;
+ background-position: 16px 16px;
+}
+.ui-draggable .ui-dialog-titlebar {
+ cursor: move;
+}
+.ui-menu {
+ list-style: none;
+ padding: 2px;
+ margin: 0;
+ display: block;
+ outline: none;
+}
+.ui-menu .ui-menu {
+ margin-top: -3px;
+ position: absolute;
+}
+.ui-menu .ui-menu-item {
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ /* support: IE10, see #8844 */
+ list-style-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
+}
+.ui-menu .ui-menu-divider {
+ margin: 5px -2px 5px -2px;
+ height: 0;
+ font-size: 0;
+ line-height: 0;
+ border-width: 1px 0 0 0;
+}
+.ui-menu .ui-menu-item a {
+ text-decoration: none;
+ display: block;
+ padding: 2px .4em;
+ line-height: 1.5;
+ min-height: 0; /* support: IE7 */
+ font-weight: normal;
+}
+.ui-menu .ui-menu-item a.ui-state-focus,
+.ui-menu .ui-menu-item a.ui-state-active {
+ font-weight: normal;
+ margin: -1px;
+}
+
+.ui-menu .ui-state-disabled {
+ font-weight: normal;
+ margin: .4em 0 .2em;
+ line-height: 1.5;
+}
+.ui-menu .ui-state-disabled a {
+ cursor: default;
+}
+
+/* icon support */
+.ui-menu-icons {
+ position: relative;
+}
+.ui-menu-icons .ui-menu-item a {
+ position: relative;
+ padding-left: 2em;
+}
+
+/* left-aligned */
+.ui-menu .ui-icon {
+ position: absolute;
+ top: .2em;
+ left: .2em;
+}
+
+/* right-aligned */
+.ui-menu .ui-menu-icon {
+ position: static;
+ float: right;
+}
+.ui-progressbar {
+ height: 2em;
+ text-align: left;
+ overflow: hidden;
+}
+.ui-progressbar .ui-progressbar-value {
+ margin: -1px;
+ height: 100%;
+}
+.ui-progressbar .ui-progressbar-overlay {
+ background: url("images/animated-overlay.gif");
+ height: 100%;
+ filter: alpha(opacity=25);
+ opacity: 0.25;
+}
+.ui-progressbar-indeterminate .ui-progressbar-value {
+ background-image: none;
+}
+.ui-resizable {
+ position: relative;
+}
+.ui-resizable-handle {
+ position: absolute;
+ font-size: 0.1px;
+ display: block;
+}
+.ui-resizable-disabled .ui-resizable-handle,
+.ui-resizable-autohide .ui-resizable-handle {
+ display: none;
+}
+.ui-resizable-n {
+ cursor: n-resize;
+ height: 7px;
+ width: 100%;
+ top: -5px;
+ left: 0;
+}
+.ui-resizable-s {
+ cursor: s-resize;
+ height: 7px;
+ width: 100%;
+ bottom: -5px;
+ left: 0;
+}
+.ui-resizable-e {
+ cursor: e-resize;
+ width: 7px;
+ right: -5px;
+ top: 0;
+ height: 100%;
+}
+.ui-resizable-w {
+ cursor: w-resize;
+ width: 7px;
+ left: -5px;
+ top: 0;
+ height: 100%;
+}
+.ui-resizable-se {
+ cursor: se-resize;
+ width: 12px;
+ height: 12px;
+ right: 1px;
+ bottom: 1px;
+}
+.ui-resizable-sw {
+ cursor: sw-resize;
+ width: 9px;
+ height: 9px;
+ left: -5px;
+ bottom: -5px;
+}
+.ui-resizable-nw {
+ cursor: nw-resize;
+ width: 9px;
+ height: 9px;
+ left: -5px;
+ top: -5px;
+}
+.ui-resizable-ne {
+ cursor: ne-resize;
+ width: 9px;
+ height: 9px;
+ right: -5px;
+ top: -5px;
+}
+.ui-selectable-helper {
+ position: absolute;
+ z-index: 100;
+ border: 1px dotted black;
+}
+.ui-slider {
+ position: relative;
+ text-align: left;
+}
+.ui-slider .ui-slider-handle {
+ position: absolute;
+ z-index: 2;
+ width: 1.2em;
+ height: 1.2em;
+ cursor: default;
+}
+.ui-slider .ui-slider-range {
+ position: absolute;
+ z-index: 1;
+ font-size: .7em;
+ display: block;
+ border: 0;
+ background-position: 0 0;
+}
+
+/* For IE8 - See #6727 */
+.ui-slider.ui-state-disabled .ui-slider-handle,
+.ui-slider.ui-state-disabled .ui-slider-range {
+ filter: inherit;
+}
+
+.ui-slider-horizontal {
+ height: .8em;
+}
+.ui-slider-horizontal .ui-slider-handle {
+ top: -.3em;
+ margin-left: -.6em;
+}
+.ui-slider-horizontal .ui-slider-range {
+ top: 0;
+ height: 100%;
+}
+.ui-slider-horizontal .ui-slider-range-min {
+ left: 0;
+}
+.ui-slider-horizontal .ui-slider-range-max {
+ right: 0;
+}
+
+.ui-slider-vertical {
+ width: .8em;
+ height: 100px;
+}
+.ui-slider-vertical .ui-slider-handle {
+ left: -.3em;
+ margin-left: 0;
+ margin-bottom: -.6em;
+}
+.ui-slider-vertical .ui-slider-range {
+ left: 0;
+ width: 100%;
+}
+.ui-slider-vertical .ui-slider-range-min {
+ bottom: 0;
+}
+.ui-slider-vertical .ui-slider-range-max {
+ top: 0;
+}
+.ui-spinner {
+ position: relative;
+ display: inline-block;
+ overflow: hidden;
+ padding: 0;
+ vertical-align: middle;
+}
+.ui-spinner-input {
+ border: none;
+ background: none;
+ color: inherit;
+ padding: 0;
+ margin: .2em 0;
+ vertical-align: middle;
+ margin-left: .4em;
+ margin-right: 22px;
+}
+.ui-spinner-button {
+ width: 16px;
+ height: 50%;
+ font-size: .5em;
+ padding: 0;
+ margin: 0;
+ text-align: center;
+ position: absolute;
+ cursor: default;
+ display: block;
+ overflow: hidden;
+ right: 0;
+}
+/* more specificity required here to overide default borders */
+.ui-spinner a.ui-spinner-button {
+ border-top: none;
+ border-bottom: none;
+ border-right: none;
+}
+/* vertical centre icon */
+.ui-spinner .ui-icon {
+ position: absolute;
+ margin-top: -8px;
+ top: 50%;
+ left: 0;
+}
+.ui-spinner-up {
+ top: 0;
+}
+.ui-spinner-down {
+ bottom: 0;
+}
+
+/* TR overrides */
+.ui-spinner .ui-icon-triangle-1-s {
+ /* need to fix icons sprite */
+ background-position: -65px -16px;
+}
+.ui-tabs {
+ position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+ padding: .2em;
+}
+.ui-tabs .ui-tabs-nav {
+ margin: 0;
+ padding: .2em .2em 0;
+}
+.ui-tabs .ui-tabs-nav li {
+ list-style: none;
+ float: left;
+ position: relative;
+ top: 0;
+ margin: 1px .2em 0 0;
+ border-bottom-width: 0;
+ padding: 0;
+ white-space: nowrap;
+}
+.ui-tabs .ui-tabs-nav li a {
+ float: left;
+ padding: .5em 1em;
+ text-decoration: none;
+}
+.ui-tabs .ui-tabs-nav li.ui-tabs-active {
+ margin-bottom: -1px;
+ padding-bottom: 1px;
+}
+.ui-tabs .ui-tabs-nav li.ui-tabs-active a,
+.ui-tabs .ui-tabs-nav li.ui-state-disabled a,
+.ui-tabs .ui-tabs-nav li.ui-tabs-loading a {
+ cursor: text;
+}
+.ui-tabs .ui-tabs-nav li a, /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a {
+ cursor: pointer;
+}
+.ui-tabs .ui-tabs-panel {
+ display: block;
+ border-width: 0;
+ padding: 1em 1.4em;
+ background: none;
+}
+.ui-tooltip {
+ padding: 8px;
+ position: absolute;
+ z-index: 9999;
+ max-width: 300px;
+ -webkit-box-shadow: 0 0 5px #aaa;
+ box-shadow: 0 0 5px #aaa;
+}
+body .ui-tooltip {
+ border-width: 2px;
+}
+
+/* Component containers
+----------------------------------*/
+.ui-widget {
+ font-family: Verdana,Arial,sans-serif;
+ font-size: 1.1em;
+}
+.ui-widget .ui-widget {
+ font-size: 1em;
+}
+.ui-widget input,
+.ui-widget select,
+.ui-widget textarea,
+.ui-widget button {
+ font-family: Verdana,Arial,sans-serif;
+ font-size: 1em;
+}
+.ui-widget-content {
+ border: 1px solid #aaaaaa;
+ background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;
+ color: #222222;
+}
+.ui-widget-content a {
+ color: #222222;
+}
+.ui-widget-header {
+ border: 1px solid #aaaaaa;
+ background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;
+ color: #222222;
+ font-weight: bold;
+}
+.ui-widget-header a {
+ color: #222222;
+}
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default,
+.ui-widget-content .ui-state-default,
+.ui-widget-header .ui-state-default {
+ border: 1px solid #d3d3d3;
+ background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;
+ font-weight: normal;
+ color: #555555;
+}
+.ui-state-default a,
+.ui-state-default a:link,
+.ui-state-default a:visited {
+ color: #555555;
+ text-decoration: none;
+}
+.ui-state-hover,
+.ui-widget-content .ui-state-hover,
+.ui-widget-header .ui-state-hover,
+.ui-state-focus,
+.ui-widget-content .ui-state-focus,
+.ui-widget-header .ui-state-focus {
+ border: 1px solid #999999;
+ background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;
+ font-weight: normal;
+ color: #212121;
+}
+.ui-state-hover a,
+.ui-state-hover a:hover,
+.ui-state-hover a:link,
+.ui-state-hover a:visited {
+ color: #212121;
+ text-decoration: none;
+}
+.ui-state-active,
+.ui-widget-content .ui-state-active,
+.ui-widget-header .ui-state-active {
+ border: 1px solid #aaaaaa;
+ background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;
+ font-weight: normal;
+ color: #212121;
+}
+.ui-state-active a,
+.ui-state-active a:link,
+.ui-state-active a:visited {
+ color: #212121;
+ text-decoration: none;
+}
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight,
+.ui-widget-content .ui-state-highlight,
+.ui-widget-header .ui-state-highlight {
+ border: 1px solid #fcefa1;
+ background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;
+ color: #363636;
+}
+.ui-state-highlight a,
+.ui-widget-content .ui-state-highlight a,
+.ui-widget-header .ui-state-highlight a {
+ color: #363636;
+}
+.ui-state-error,
+.ui-widget-content .ui-state-error,
+.ui-widget-header .ui-state-error {
+ border: 1px solid #cd0a0a;
+ background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;
+ color: #cd0a0a;
+}
+.ui-state-error a,
+.ui-widget-content .ui-state-error a,
+.ui-widget-header .ui-state-error a {
+ color: #cd0a0a;
+}
+.ui-state-error-text,
+.ui-widget-content .ui-state-error-text,
+.ui-widget-header .ui-state-error-text {
+ color: #cd0a0a;
+}
+.ui-priority-primary,
+.ui-widget-content .ui-priority-primary,
+.ui-widget-header .ui-priority-primary {
+ font-weight: bold;
+}
+.ui-priority-secondary,
+.ui-widget-content .ui-priority-secondary,
+.ui-widget-header .ui-priority-secondary {
+ opacity: .7;
+ filter:Alpha(Opacity=70);
+ font-weight: normal;
+}
+.ui-state-disabled,
+.ui-widget-content .ui-state-disabled,
+.ui-widget-header .ui-state-disabled {
+ opacity: .35;
+ filter:Alpha(Opacity=35);
+ background-image: none;
+}
+.ui-state-disabled .ui-icon {
+ filter:Alpha(Opacity=35); /* For IE8 - See #6059 */
+}
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+ width: 16px;
+ height: 16px;
+}
+.ui-icon,
+.ui-widget-content .ui-icon {
+ background-image: url(images/ui-icons_222222_256x240.png);
+}
+.ui-widget-header .ui-icon {
+ background-image: url(images/ui-icons_222222_256x240.png);
+}
+.ui-state-default .ui-icon {
+ background-image: url(images/ui-icons_888888_256x240.png);
+}
+.ui-state-hover .ui-icon,
+.ui-state-focus .ui-icon {
+ background-image: url(images/ui-icons_454545_256x240.png);
+}
+.ui-state-active .ui-icon {
+ background-image: url(images/ui-icons_454545_256x240.png);
+}
+.ui-state-highlight .ui-icon {
+ background-image: url(images/ui-icons_2e83ff_256x240.png);
+}
+.ui-state-error .ui-icon,
+.ui-state-error-text .ui-icon {
+ background-image: url(images/ui-icons_cd0a0a_256x240.png);
+}
+
+/* positioning */
+.ui-icon-blank { background-position: 16px 16px; }
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-on { background-position: -96px -144px; }
+.ui-icon-radio-off { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-left,
+.ui-corner-tl {
+ border-top-left-radius: 4px;
+}
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-right,
+.ui-corner-tr {
+ border-top-right-radius: 4px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-left,
+.ui-corner-bl {
+ border-bottom-left-radius: 4px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-right,
+.ui-corner-br {
+ border-bottom-right-radius: 4px;
+}
+
+/* Overlays */
+.ui-widget-overlay {
+ background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
+ opacity: .3;
+ filter: Alpha(Opacity=30);
+}
+.ui-widget-shadow {
+ margin: -8px 0 0 -8px;
+ padding: 8px;
+ background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
+ opacity: .3;
+ filter: Alpha(Opacity=30);
+ border-radius: 8px;
+}
diff --git a/data/interfaces/default/js/highcharts/api/css/ref.css b/data/interfaces/default/js/highcharts/api/css/ref.css
new file mode 100644
index 00000000..fe4d239f
--- /dev/null
+++ b/data/interfaces/default/js/highcharts/api/css/ref.css
@@ -0,0 +1,594 @@
+.clearfix {
+ clear: both;
+}
+.hidden {
+ visibility: hidden;
+}
+.container {
+ width: auto;
+ padding: 30px;
+ margin: auto;
+}
+* {
+ font-family: 'Source Sans Pro', sans-serif;
+}
+
+body {
+ margin: 0;
+ background-color: #15151d;
+ font-size: 1em;
+ overflow-x: hidden;
+}
+h3 {
+ text-transform: uppercase;
+ margin-bottom: 3px;
+}
+
+p {
+ margin: 0 0 1em 0;
+}
+a {
+ color: #8085e8;
+ text-decoration: none;
+ font-weight: bold;
+}
+a:hover {
+ color: #90ee7e;
+}
+
+#nav a.dump {
+ padding: 0px;
+ margin: 0px;
+}
+
+/*
+==========
+=== Header
+==========
+*/
+#top {
+ background-color: #252530;
+}
+#top .container {
+ padding: 0;
+}
+#top h1 {
+ color: #eeeaea;
+ font-weight: 100;
+ margin: 0;
+ font-size: 1.5em;
+}
+.cell {
+ width: 33%;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.cell:nth-child(4) {
+ text-align: right;
+ color:#eeeaea;
+ font-size: 0.9em;
+}
+
+#logo {
+ display: block;
+
+}
+#logo img {
+ max-width: 200px;
+ width: 100%;
+ margin: 15px;
+ margin-left: 33px;
+ height: 32px;
+}
+
+/* Search bar */
+#search-div {
+ color: #252530;
+ display: block;
+ margin-bottom: 20px;
+ border: 1px solid #252530;
+}
+
+div#search-div i {
+ margin: 5px;
+ color: #252530;
+ font-size: 14px;
+}
+
+input#search {
+ height: 18px;
+ font-family: "Courier New", Courier, monospace;
+ font-size: 0.9em;
+ background-color: transparent;
+ border: none;
+ outline: none;
+ color: #252530;
+ width:80%;
+}
+
+.ui-autocomplete {
+ max-height: 500px;
+ max-width: 400px;
+ overflow-y: auto;
+ overflow-x: auto;
+}
+
+.ui-menu .ui-menu-item a {
+ font-size:14px;
+ zoom:1;
+ font-family: "Courier New", Courier, monospace;
+}
+.ui-widget-content a {
+ color: #222222 /*{fcContent}*/;
+}
+
+/*
+==============
+=== END Header
+==============
+*/
+/*
+==========
+=== Footer
+==========
+*/
+#footer {
+ background-color: #15151d;
+ color: #eeeaea;
+}
+#footer-copy {
+ float: left;
+ font-size: 14px;
+ line-height: 18px;
+}
+#footer-social {
+ float: right;
+}
+#footer-social a {
+ color: #eeeaea;
+ font-size: 18px;
+ margin-left: 10px;
+}
+#footer-social a:hover {
+ color: #90ee7e;
+}
+#footer .container {
+ padding: 10px;
+}
+#scrollTop {
+ position: fixed;
+ bottom: 75px;
+ right: 50px;
+ background-color: #90ee7e;
+ padding: 10px;
+ border-radius: 2px;
+ color: white;
+ display: none;
+}
+#scrollTop:hover {
+ color: black;
+}
+/*
+==============
+=== END Footer
+==============
+*/
+
+#reference-loading {
+ margin-top: 300px;
+ text-align: center;
+}
+
+/*
+===========
+=== Wrapper
+===========
+*/
+#splashText {
+ display: none;
+}
+.nav-section h3 {
+ font-size: 24px;
+ margin-top: 0;
+}
+
+#wrapper{
+ background-color: #d6d1d1;
+}
+#wrapper .container {
+ padding: 0;
+}
+#wrapper-inner {
+ background-color: #ffffff;
+ /*border: 1px solid silver;*/
+}
+
+.tree a {
+ color: #252530;
+}
+
+#nav .tree, #nav .tree * {
+ font-family: "Courier New", Courier, monospace;
+}
+
+#nav .header p {
+ font-weight: normal;
+ color: #666;
+}
+
+#nav h1,
+#details h1,
+#details h2 {
+ font-weight: 100;
+ margin-bottom: 1em;
+}
+
+#nav h1,
+#details h2 {
+ text-transform: uppercase;
+}
+
+#nav {
+ min-height: 100%;
+ border-right: 1px solid silver;
+}
+
+#nav-wrap {
+ width: 30%;
+ float:left;
+ overflow: auto;
+}
+
+#nav a,#nav a:visited {
+ font-weight: bold;
+ padding: 0 2px;
+ margin: 1px;
+}
+
+.nav-section {
+ padding: 30px;
+ position: relative;
+}
+.nav-section:last-child {
+ border-bottom: none;
+}
+
+#nav .level {
+ margin-left: 13px;
+ display: none;
+}
+
+#nav .level-0 {
+ display: block;
+}
+
+#nav a.level-0 {
+ margin-left: 1em;
+}
+
+#nav .menuitem {
+ position: relative;
+}
+
+#nav .value {
+ width: 40%;
+ overflow: hidden;
+ color: silver;
+ position: absolute;
+ white-space: nowrap;
+}
+#nav .value-string, #nav .value-color {
+ color: #39A832;
+}
+#nav .value-number {
+ color: #297EA8;
+}
+
+a.hilighted {
+ background-color: #C5F7BE;
+}
+
+#nav .plus {
+ display: block;
+ position: absolute;
+ left: -12px;
+ top: 0;
+ width: 9px;
+ height: 9px;
+ font-family: FontAwesome;
+ color: gray;
+
+}
+#nav .plus:before {
+}
+
+#nav .collapsed>.plus:before {
+ content: "\f0da";
+}
+
+#nav .expanded>.plus:before {
+ content: "\f0d7";
+}
+
+#nav .dots {
+ padding: 0 4px;
+}
+#nav .expanded>.dots {
+ display: none;
+}
+
+#nav .dots.loading {
+ background: url(./../images/ajax-loader.gif) no-repeat center;
+}
+#nav .dots.error {
+ color: red;
+ font-weight: bold;
+}
+
+#nav .dots.loading span {
+ visibility: hidden;
+}
+
+#nav code {
+ color:#8085e8;
+ font-weight: bold;
+}
+
+#nav span.typed {
+ margin-left: 15px;
+}
+#nav .collapsed span.typed {
+ margin-left: 0;
+}
+#nav .collapsed br.typed {
+ display: none;
+}
+
+#methods-and-properties-toc ul {
+ margin-left: 0;
+ padding-left: 1em;
+}
+
+#options-tree,#global-options-tree,#objects-tree {
+ font-size: 0.9em;
+}
+
+pre,code {
+ font-family: "Courier New", Courier, monospace;
+}
+
+#overview {
+ margin-left: 420px;
+}
+
+#details-wrap {
+ float: right;
+ width: 70%;
+ overflow:auto;
+ margin:0px;
+ padding:0px;
+}
+
+/* Member styling */
+.member {
+ padding: 30px;
+ overflow-y: hidden;
+ position: relative;
+ border-top: 1px solid silver;
+}
+
+.member:first-child {
+ color:green;
+}
+
+.member.deprecated * {
+ color: silver !important;
+}
+
+.member.hilighted {
+ background-color: #eefdec;
+}
+
+.member .title, .member .title a, .member .returnType {
+ font-family: "Courier New", Courier, monospace;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-bottom: 5px;
+ display: inline-block;
+}
+
+.member .title a{
+ text-decoration: underline;
+}
+
+.member .default {
+ display: none;
+}
+
+.member .since {
+ float: right;
+ font-size: 0.8em;
+}
+
+.member .description {
+ color: #666;
+}
+.member .context {
+ padding: 1em 0;
+}
+
+.description code {
+ color: #666;
+ font-weight: normal;
+}
+
+.section {
+ padding-top: 25px;
+}
+
+.section .demo, .member .demo {
+ font-style: italic;
+ margin-top: 1.5em;
+ margin-bottom:0.5em;
+ margin-left: 1.5em;
+}
+
+.section .member .demo {
+ margin-left: 0em;
+}
+
+.section h1,
+.section h2,
+.section .section-description {
+ padding-left: 25px;
+}
+
+.section h1 {
+ margin: 0px;
+ font-family: "Courier New", Courier, monospace;
+}
+
+.section-description {
+ margin: 0 0 1em 0;
+}
+
+/*gert*/
+.menuitem div {
+ margin-left: 8px;
+}
+
+.tree {
+ padding-left: 24px;
+}
+
+div.edit {
+ float: right
+}
+
+/*edit form*/
+form#optionAttribute td.inp {
+ width: 450px;
+}
+
+form#optionAttribute td input {
+ width: 100%;
+}
+
+form#optionAttribute td textarea {
+ width: 100%;
+}
+
+form#optionAttribute td input[type="checkbox"] {
+ width: 20px;
+}
+
+.pencil {
+ background-image: url(./../images/edit.png);
+}
+
+.remove {
+ background-image: url(./../images/delete.gif);
+}
+
+.add {
+ background-image: url(./../images/add.png);
+}
+
+.copy {
+ background-image: url(./../images/copy.png);
+}
+
+.pencil, .add, .remove, .copy {
+ background-repeat: no-repeat;
+ background-position: center;
+ float: right;
+ position: relative;
+ width: 10px;
+ padding: 8px;
+}
+
+.pencil a,.add a,.remove a, .copy a {
+ text-decoration: none;
+ padding: 5px;
+}
+
+.deprecated, .error {
+ color: red;
+ font-weight: bold;
+}
+
+dl#inhMembers dd a,span.returnType {
+ margin-left: 3px;
+}
+
+/* fix for icons changing containers height, affects updateHeights, javascript function */
+#footer-social i:before {
+ line-height: 1.5;
+}
+
+@media screen and (max-width: 767px) {
+ .nav-section-inner {
+ display: none;
+ }
+ #nav-wrap {
+ width: 100%;
+ }
+ #details-wrap {
+ width: 100%;
+ }
+ .nav-section {
+ padding: 0px;
+ }
+ #search-div{
+ margin:30px;
+ }
+ #wrapper,
+ #wrapper-inner,
+ #details-wrap {
+ height: auto !important;
+ }
+ .cell {
+ width: 48%;
+ text-align: center !important;
+ }
+ .cell:nth-child(1) {
+ width: 100%;
+ }
+ #splashText {
+ padding: 30px;
+ text-align: center;
+ }
+ #splashText.section {
+ border: none;
+ }
+ #splashText img {
+ width: 100%;
+ max-width: 380px;
+ }
+ #scrollTop {
+ display: block;
+ }
+ .section {
+ padding-top: 0px;
+ }
+ #logo img {
+ margin-left:0px;
+ margin-right:0px;
+ }
+}
+@media screen and (max-width: 479px) {
+ #footer-copy,
+ #footer-social {
+ float: none;
+ text-align: center;
+ padding: 5px 0;
+ }
+ .cell {
+ width: 100%;
+ }
+ .ui-autocomplete {
+ max-height: 300px;
+ max-width: 275px;
+ overflow-x:auto;
+ }
diff --git a/data/interfaces/default/js/highcharts/api/fonts/fontawesome-webfont.woff b/data/interfaces/default/js/highcharts/api/fonts/fontawesome-webfont.woff
new file mode 100644
index 00000000..628b6a52
Binary files /dev/null and b/data/interfaces/default/js/highcharts/api/fonts/fontawesome-webfont.woff differ
diff --git a/data/interfaces/default/js/highcharts/api/highcharts.html b/data/interfaces/default/js/highcharts/api/highcharts.html
new file mode 100644
index 00000000..5799470b
--- /dev/null
+++ b/data/interfaces/default/js/highcharts/api/highcharts.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+Highcharts API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Options Reference v.4.1.6
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
For initial declarative chart setup. View as JSON .
+
+
Highcharts.setOptions({
+
+
});
+
+
+
$("#container").highcharts({
+
+
});
+
+
+
+
+
+
+
Methods and properties
+
+
For dynamically modifying the chart. View as JSON .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/interfaces/default/js/highcharts/api/images/Highcharts.svg b/data/interfaces/default/js/highcharts/api/images/Highcharts.svg
new file mode 100644
index 00000000..c07a9cc2
--- /dev/null
+++ b/data/interfaces/default/js/highcharts/api/images/Highcharts.svg
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-114x114.png b/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-114x114.png
new file mode 100644
index 00000000..d0745ff5
Binary files /dev/null and b/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-114x114.png differ
diff --git a/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-120x120.png b/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-120x120.png
new file mode 100644
index 00000000..cd4599f4
Binary files /dev/null and b/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-120x120.png differ
diff --git a/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-144x144.png b/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-144x144.png
new file mode 100644
index 00000000..49cd184f
Binary files /dev/null and b/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-144x144.png differ
diff --git a/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-152x152.png b/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-152x152.png
new file mode 100644
index 00000000..73865ce7
Binary files /dev/null and b/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-152x152.png differ
diff --git a/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-180x180.png b/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-180x180.png
new file mode 100644
index 00000000..79bee95c
Binary files /dev/null and b/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-180x180.png differ
diff --git a/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-57x57.png b/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-57x57.png
new file mode 100644
index 00000000..89953256
Binary files /dev/null and b/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-57x57.png differ
diff --git a/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-60x60.png b/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-60x60.png
new file mode 100644
index 00000000..7e1ba3a4
Binary files /dev/null and b/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-60x60.png differ
diff --git a/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-72x72.png b/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-72x72.png
new file mode 100644
index 00000000..55af2c22
Binary files /dev/null and b/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-72x72.png differ
diff --git a/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-76x76.png b/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-76x76.png
new file mode 100644
index 00000000..2bbc9c14
Binary files /dev/null and b/data/interfaces/default/js/highcharts/api/images/apple-touch-icon-76x76.png differ
diff --git a/data/interfaces/default/js/highcharts/api/images/favicon-160x160.png b/data/interfaces/default/js/highcharts/api/images/favicon-160x160.png
new file mode 100644
index 00000000..557da46e
Binary files /dev/null and b/data/interfaces/default/js/highcharts/api/images/favicon-160x160.png differ
diff --git a/data/interfaces/default/js/highcharts/api/images/favicon-16x16.png b/data/interfaces/default/js/highcharts/api/images/favicon-16x16.png
new file mode 100644
index 00000000..98e8169c
Binary files /dev/null and b/data/interfaces/default/js/highcharts/api/images/favicon-16x16.png differ
diff --git a/data/interfaces/default/js/highcharts/api/images/favicon-192x192.png b/data/interfaces/default/js/highcharts/api/images/favicon-192x192.png
new file mode 100644
index 00000000..df415c33
Binary files /dev/null and b/data/interfaces/default/js/highcharts/api/images/favicon-192x192.png differ
diff --git a/data/interfaces/default/js/highcharts/api/images/favicon-32x32.png b/data/interfaces/default/js/highcharts/api/images/favicon-32x32.png
new file mode 100644
index 00000000..625ac9bb
Binary files /dev/null and b/data/interfaces/default/js/highcharts/api/images/favicon-32x32.png differ
diff --git a/data/interfaces/default/js/highcharts/api/images/favicon-96x96.png b/data/interfaces/default/js/highcharts/api/images/favicon-96x96.png
new file mode 100644
index 00000000..e219a759
Binary files /dev/null and b/data/interfaces/default/js/highcharts/api/images/favicon-96x96.png differ
diff --git a/data/interfaces/default/js/highcharts/api/images/splash.svg b/data/interfaces/default/js/highcharts/api/images/splash.svg
new file mode 100644
index 00000000..cbdc6386
--- /dev/null
+++ b/data/interfaces/default/js/highcharts/api/images/splash.svg
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+image/svg+xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/interfaces/default/js/highcharts/api/images/sprite.png b/data/interfaces/default/js/highcharts/api/images/sprite.png
new file mode 100644
index 00000000..f36941a6
Binary files /dev/null and b/data/interfaces/default/js/highcharts/api/images/sprite.png differ
diff --git a/data/interfaces/default/js/highcharts/api/js/highcharts.json b/data/interfaces/default/js/highcharts/api/js/highcharts.json
new file mode 100644
index 00000000..6f7adc05
--- /dev/null
+++ b/data/interfaces/default/js/highcharts/api/js/highcharts.json
@@ -0,0 +1,2 @@
+offline.highcharts.object = [{"name":"Axis","fullname":"Axis","returnType":"","description":"A chart can have from 0 axes (pie chart) to multiples. In a normal, single series cartesian chart, there is one X axis and one Y axis.
The X axis or axes are referenced by chart.xAxis
, which is an array of Axis objects. If there is only one axis, it can be referenced through chart.xAxis[0]
, and multiple axes have increasing indices. The same pattern goes for Y axes.
If you need to get the axes from a series object, use the series.xAxis
andseries.yAxis
properties. These are not arrays, as one series can only be associated to one X and one Y axis.
A third way to reference the axis programmatically is by id. Add an id in the axis configuration options, and get the axis by chart.get(id)
.
Configuration options for the axes are given in options.xAxis and options.yAxis .
","title":"Axis","isParent":true,"params":"","paramsDescription":"","demo":"","since":"","deprecated":false},{"name":"Axis--getExtremes","fullname":"Axis.getExtremes","type":"method","returnType":"Object","description":"Get the current extremes for the axis.","title":"getExtremes","isParent":false,"parent":"Axis","params":"()","paramsDescription":"dataMax: The maximum value of the axis' associated series.||dataMin: The minimum value of the axis' associated series.||max: The maximum axis value, either automatic or set manually. If the max
option is not set and maxPadding
is 0, this value will be the same as dataMax
.||min: The minimum axis value, either automatic or set manually. If the min
option is not set and minPadding
is 0, this value will be the same as dataMin
.","demo":"Report extremes by click on a button ","since":"1.2.0","deprecated":false},{"name":"Axis--remove","fullname":"Axis.remove","type":"method","returnType":"","description":"Remove an axis from the chart.","title":"remove","isParent":false,"parent":"Axis","params":"(Boolean redraw)","paramsDescription":"redraw: Boolean \r\nDefaults to true
. Whether to redraw the chart following the remove. ","demo":"Add and remove axes ","since":"3.0","deprecated":false},{"name":"Axis--removePlotBand","fullname":"Axis.removePlotBand","type":"method","returnType":"","description":"Remove a plot band by its id
.","title":"removePlotBand","isParent":false,"parent":"Axis","params":"(String id)","paramsDescription":"id: String The plot band's id
as given in the original configuration object or in the addPlotBand method.","demo":"Remove plot band by id , Toggle the plot band from a button ","since":"1.2.0","deprecated":false},{"name":"Axis--removePlotLine","fullname":"Axis.removePlotLine","type":"method","returnType":"","description":"Remove a plot line by its id
.","title":"removePlotLine","isParent":false,"parent":"Axis","params":"(String id)","paramsDescription":"id: String The plot line's id
as given in the original configuration object or in the addPlotLine method.","demo":"Remove plot line by id ,toggle the plot line from a button ","since":"1.2.0","deprecated":false},{"name":"Axis--setCategories","fullname":"Axis.setCategories","type":"method","description":"Set new categories for the axis.","title":"setCategories","isParent":false,"parent":"Axis","params":"(Array cateories, [Boolean redraw])","paramsDescription":"categories: Array The new category names.||redraw: Boolean Defaults to true
. Whether to redraw the axis or wait for an explicit call to chart.redraw()
.","demo":"Set categories by click on a button ","since":"1.2.0"},{"name":"Axis--setExtremes","fullname":"Axis.setExtremes","type":"method","returnType":"","description":"Set the minimum and maximum of the axes after render time. If the startOnTick
and endOnTick
options are true, the minimum and maximum values are rounded off to the nearest tick. To prevent this, these options can be set to false before calling setExtremes. Also, setExtremes
will not allow a range lower than the minRange option, which by default is the range of five points.","title":"setExtremes","isParent":false,"parent":"Axis","params":"(Number min, Number max, [Boolean redraw], [Mixed animation])","paramsDescription":"min: Number The new minimum value||max: Number The new maximum value||redraw: Boolean Defaults to true
. Whether to redraw the chart or wait for an explicit call to chart.redraw()
.||animation: Mixed Defaults to true. When true, the resize will be animated with default animation options. The animation can also be a configuration object with properties duration
and easing
.","demo":"Set extremes from button ,Set extremes on datetime axis ,setting extremes off ticks ","since":"1.2.0","deprecated":false},{"name":"Axis--toPixels","fullname":"Axis.toPixels","type":"method","returnType":"Number","description":"Translates a value in terms of axis units in to pixels within the chart.","title":"toPixels","isParent":false,"parent":"Axis","params":"(Number value, [Boolean paneCoordinates])","paramsDescription":"value: Number \r\nA value in terms of axis units.||\r\n\r\npaneCoordinates: Boolean \r\nWhether to return the pixel coordinate relative to the chart or just the axis/pane itself.","demo":"","since":"3.0","deprecated":false},{"name":"Axis--toValue","fullname":"Axis.toValue","type":"method","returnType":"Number","description":"Translate a pixel position along the axis to a value in terms of axis units.","title":"toValue","isParent":false,"parent":"Axis","params":"(Number pixel, [Boolean paneCoordinates])","paramsDescription":"pixel: Number \r\nA pixel position along the axis.||\r\n\r\npaneCoordinates: Boolean \r\nWhether the input pixel position is relative to the chart or just the axis/pane itself.","demo":"","since":"3.0","deprecated":false},{"name":"Axis--update","fullname":"Axis.update","type":"method","returnType":"","description":"Update an axis object with a new set of options. The options are merged with the existing options, so only new or altered options need to be specified.","title":"update","isParent":false,"parent":"Axis","params":"(Object options, [Boolean redraw])","paramsDescription":"options: Object \r\nThe new options that will be merged in with existing options on the axis.||\r\n\r\nredraw: Boolean \r\nDefaults to true
. Whether to redraw the chart after the new options are set. ","demo":"Axis update demo ","since":"3.0","deprecated":false},{"name":"Chart","fullname":"Chart","returnType":"","description":"The chart object is the JavaScript object representing a single chart in the web page.The pointer to your chart object is returned when a chart is created using the Highcharts.Chart()
constructor:
var chart1 = new Highcharts.Chart(options); ","title":"Chart","isParent":true,"params":"","paramsDescription":"","demo":"","since":"","deprecated":false},{"name":"Chart--addAxis","fullname":"Chart.addAxis","type":"method","returnType":"","description":"Add an axis to the chart after render time. Note that this method should never be used when adding data synchronously at chart render time, as it adds expense to the calculations and rendering. When adding data at the same time as the chart is initiated, add the axis as a configuration option instead.","title":"addAxis","isParent":false,"parent":"Chart","params":"(Object options, [Boolean isX], [Boolean redraw], [Mixed animation])","paramsDescription":"options: Object \r\nThe Axis options, as documented under xAxis and yAxis .||\r\n\r\nisX: Boolean \r\nWhether it is an X axis or Y axis.||\r\n\r\nredraw: Boolean \r\nDefaults to true
. Whether to redraw the chart after the series is added. See the redraw()
method below.||\r\n\r\nanimation: Mixed \r\nDefaults to true. When true, the series' updating will be animated with default animation options. The animation can also be a configuration object with properties duration
and easing
.","demo":"Add and remove axes ","since":"3.0","deprecated":false},{"name":"Chart--addSeries","fullname":"Chart.addSeries","type":"method","returnType":"Series","description":"Add a series to the chart after render time. Note that this method should never be used when adding data synchronously at chart render time, as it adds expense to the calculations and rendering. When adding data at the same time as the chart is initiated, add the series as a configuration option instead.","title":"addSeries","isParent":false,"parent":"Chart","params":"(Object options, [Boolean redraw], [Mixed animation])","paramsDescription":"options: Object \r\nThe series options, as documented under plotOptions.series and under the plotOptions for each series type.||\r\n\r\nredraw: Boolean \r\nDefaults to true
. Whether to redraw the chart after the series is added. See the redraw()
method below.||\r\n\r\nanimation: Mixed \r\nDefaults to true. When true, the series' updating will be animated with default animation options. The animation can also be a configuration object with properties duration
and easing
.","demo":"Add a series from a button ","since":"1.2.0","deprecated":false},{"name":"Chart--exportChart","fullname":"Chart.exportChart","type":"method","returnType":"","description":"Exporting module required. Submit an SVG version of the chart to a server along with some parameters for conversion.","title":"exportChart","isParent":false,"parent":"Chart","params":"(Object options, Object chartOptions)","paramsDescription":"options: Object Exporting options. Out of the exporting options, the following options can be given as parameters to the exportChart method. All options default to the values given in the exporting config options. \r\nfilename
: the filename for the export without extension, \r\nurl
: the URL for the server module to do the conversion, \r\nwidth
: the width of the PNG or JPEG image generated on the server, \r\ntype
: the MIME type of the converted image, \r\nsourceWidth
: the width of the source (in-page) chart, \r\nsourceHeight
: the height of the source chart.||\r\n\r\nchartOptions: Object Additional chart options for the exported chart. For example a different background color can be added here.","demo":"Export with no options ,PDF type and custom filename , different chart background in export ","since":"2.0","deprecated":false},{"name":"Chart--get","fullname":"Chart.get","type":"method","returnType":"Axis|Series|Point","description":"Get an axis, series or point by its id
as given in the configuration options.","title":"get","isParent":false,"parent":"Chart","params":"(String id)","paramsDescription":"id: String The id of the axis, series or point to get.","demo":"Get series by id ","since":"1.2.0"},{"name":"Chart--getSVG","fullname":"Chart.getSVG","type":"method","returnType":"String","description":"Exporting module required. Get an SVG string representing the chart.","title":"getSVG","isParent":false,"parent":"Chart","params":"(Object additionalOptions)","paramsDescription":"additionalOptions: Object Chart options to add to the exported chart in addition to the options given for the original chart. For example if series.lineWidth should be greater in the exported chart than in the original, or the chart should have a different background color, this is added here.","demo":"View the SVG from a button ","since":"2.0","deprecated":false},{"name":"Chart--getSelectedPoints","fullname":"Chart.getSelectedPoints","type":"method","returnType":"Array","description":"Returns an array of all currently selected points in the chart. Points can be selected either programmatically by the point.select()
method or by clicking.","title":"getSelectedPoints","isParent":false,"parent":"Chart","params":"()","paramsDescription":"An array of the selected points.","demo":"Get selected points ","since":"1.2.0","deprecated":false},{"name":"Chart--destroy","fullname":"Chart.destroy","type":"method","returnType":"","description":"Removes the chart and purges memory. This method should be called before writing a new chart into the same container. It is called internally on window unload to prevent leaks.","title":"destroy","isParent":false,"parent":"Chart","params":"()","paramsDescription":"","demo":"Destroy the chart from a button ","since":"1.2.2","deprecated":false},{"name":"Chart--options","fullname":"Chart.options","type":"property","returnType":"Object","description":"The options structure for the chart.","title":"options","isParent":false,"parent":"Chart","params":"","paramsDescription":"","demo":"","since":"1.2.0","deprecated":false},{"name":"Chart--xAxis","fullname":"Chart.xAxis","type":"property","returnType":"Array","description":"An array of the chart's x axes. If only one x axis, it is referenced by chart.xAxis[0]
.","title":"xAxis","isParent":false,"parent":"Chart","params":"","paramsDescription":"","demo":"","since":"1.2.0","deprecated":false},{"name":"Chart--yAxis","fullname":"Chart.yAxis","type":"property","returnType":"Array","description":"An array of the chart's y axes. If only one y axis, it is referenced by chart.yAxis[0]
.","title":"yAxis","isParent":false,"parent":"Chart","params":"","paramsDescription":"","demo":"","since":"1.2.0","deprecated":false},{"name":"Chart--container","fullname":"Chart.container","type":"property","returnType":"Object","description":"A reference to the containing HTML element, dynamically inserted into the element given in chart.renderTo
.","title":"container","isParent":false,"parent":"Chart","params":"","paramsDescription":"","demo":"","since":"1.2.5","deprecated":false},{"name":"Point--series","fullname":"Point.series","type":"property","returnType":"Series","description":"The series object associated with the point.","title":"series","isParent":false,"parent":"Point","params":"","paramsDescription":"","demo":"","since":"1.2.0","deprecated":false},{"name":"Chart--print","fullname":"Chart.print","type":"method","returnType":"","description":"Exporting module required. Clears away other elements in the page and prints the chart as it is displayed. By default, when the exporting module is enabled, a button at the upper left calls this method.","title":"print","isParent":false,"parent":"Chart","params":"()","paramsDescription":"","demo":"Print from a HTML button ","since":"2.0","deprecated":false},{"name":"Chart--redraw","fullname":"Chart.redraw","type":"method","returnType":"","description":"Redraw the chart after changes have been done to the data or axis extremes. All methods for updating axes, series or points have a parameter for redrawing the chart. This is true
by default. But in many cases you want to do more than one operation on the chart before redrawing, for example add a number of points. In those cases it is a waste of resources to redraw the chart for each new point added. So you add the points and call chart.redraw()
after.","title":"redraw","isParent":false,"parent":"Chart","params":"()","paramsDescription":"","demo":"","since":"1.2.0","deprecated":false},{"name":"Chart--setSize","fullname":"Chart.setSize","type":"method","returnType":"","description":"Resize the chart to a given width and height.","title":"setSize","isParent":false,"parent":"Chart","params":"(Number width, Number height, [Mixed animation])","paramsDescription":"width: Number The new pixel width of the chart.||height: Number The new pixel height of the chart.||animation: Mixed Defaults to true. When true, the resize will be animated with default animation options. The animation can also be a configuration object with properties duration
and easing
.","demo":"Test resizing from buttons , add a jQuery UI resizable ","since":"","deprecated":false},{"name":"Chart--showLoading","fullname":"Chart.showLoading","type":"method","returnType":"null","description":"Dim the chart's plot area and show a loading label text. Options for the loading screen are defined at options.loading . A custom text can be given as a parameter for loading.","title":"showLoading","isParent":false,"parent":"Chart","params":"(String str)","paramsDescription":"","demo":"Show and hide loading from a button ,apply different text labels. ","since":"2.0.5","deprecated":false},{"name":"Chart--updatePosition","fullname":"Chart.updatePosition","type":"method","returnType":"","description":"This method is deprecated as of 2.0.1. Updating the chart position after a move operation is no longer necessary.","title":"updatePosition","isParent":false,"parent":"Chart","params":"()","paramsDescription":"","demo":"","since":"1.2.5","deprecated":true},{"name":"Element","fullname":"Element","returnType":"","description":"The Element class is a JavaScript wrapper for SVG elements used in the rendering layer of Highchart. Combined with the Renderer object, these elements allows freeform annotation in the charts or even in your HTML pages without creating a chart at all.
","title":"Element","isParent":true,"params":"","paramsDescription":"","demo":"","since":"","deprecated":false},{"name":"Element--add","fullname":"Element.add","type":"method","returnType":"Element","description":"Add the element to the renderer canvas.","title":"add","isParent":false,"parent":"Element","params":"[(Object parent)]","paramsDescription":"parent: Object The element can be added to a g
(group) element.","demo":"Elements added to a group ","since":"2.0"},{"name":"Element--animate","fullname":"Element.animate","type":"method","returnType":"Element","description":"Apply numeric attributes to the SVG/VML element by animation. See Element.attr() for more information on setting attributes.","title":"animate","isParent":false,"parent":"Element","params":"(Object attributes[, Object animation])","paramsDescription":"attributes: Object A set of attributes to apply.||animation: Object Optional animation parameters that are passed over to jQuery or other framework. Valid properties depend on the library, but options like duration
, easing
and complete
are supported by jQuery.","demo":"Setting some attributes by animation ","since":"2.0","deprecated":false},{"name":"Element--css","fullname":"Element.css","type":"method","returnType":"Element","description":"Apply some CSS properties to the element","title":"css","isParent":false,"parent":"Element","params":"(Object hash)","paramsDescription":"hash: Object The object literal of CSS properties to apply. Properties should be hyphenated, not camelCased.","demo":"Styled text ","since":"2.0"},{"name":"Element--on","fullname":"Element.on","type":"method","returnType":"Element","description":"Apply an event handler to the element","title":"on","isParent":false,"parent":"Element","params":"(String eventType, Function handler)","paramsDescription":"eventType: String The event type to attach, for example 'click', 'mouseover', 'touch'.||handler: Function The event handler function.","demo":"A clickable rectangle .","since":"2.0"},{"name":"Element--toFront","fullname":"Element.toFront","type":"method","returnType":"Element","description":"Bring the element to the front. Alternatively, a zIndex attribute can be given.","title":"toFront","isParent":false,"parent":"Element","paramsDescription":"The element object","demo":"Click an element to bring it to front .","since":"2.0"},{"name":"Highcharts","fullname":"Highcharts","returnType":"","description":"The namespace under which all other Highcharts variables are assembled is called Highcharts
.
var chart1 = new Highcharts.Chart(options); ","title":"Highcharts","isParent":true,"params":"","paramsDescription":"","demo":"","since":"","deprecated":false},{"name":"Highcharts--Chart","fullname":"Highcharts.Chart","type":"method","returnType":"Chart","description":"This is the constructor for creating a new chart object.","title":"Chart","isParent":false,"parent":"Highcharts","params":"(Object options, Function callback)","paramsDescription":"options: Object The chart options, as documented under the heading \"The options object\"in the left menu.||callback: Function A function to execute when the chart object is finished loading and rendering. In most cases the chart is built in one thread, but in Internet Explorer version 8 or less the chart is sometimes initiated before the document is ready, and in these cases the chart
object will not be finished directly after callingnew Highcharts.Chart()
. As a consequence, code that relies on the newly built Chart object should always run in the callback. Defining a chart.event.load
handler is equivalent.","demo":"","since":"","deprecated":false},{"name":"Highcharts--charts","fullname":"Highcharts.charts","type":"Array","returnType":"Array","description":"An array containing the current chart objects in the page. A chart's position in the array is preserved throughout the page's lifetime. When a chart is destroyed, the array item becomes undefined
.","title":"charts","isParent":false,"parent":"Highcharts","params":"","paramsDescription":"","demo":"","since":"2.3.4","deprecated":false},{"name":"Highcharts--dateFormat","fullname":"Highcharts.dateFormat","type":"method","returnType":"String","description":"Formats a JavaScript date timestamp (milliseconds since Jan 1st 1970) into a human readable date string. The format is a subset of the formats for PHP's strftime function . Additional formats can be given in the Highcharts.dateFormats hook, see below.","title":"dateFormat","isParent":false,"parent":"Highcharts","params":"(String format, [Number time], [Boolean capitalize])","paramsDescription":"format: String A string containing some of the formats above.||time: Number The JavaScript time to format.||capitalize: Boolean Whether to capitalize words in the return string.","demo":"","since":"","deprecated":false},{"name":"Highcharts--dateFormats","fullname":"Highcharts.dateFormats","type":"Object","returnType":"","description":"A hook for defining additional date format specifiers. New specifiers are defined as key-value pairs by using the specifier as key, and a function which takes the timestamp as value. This function returns the formatted portion of the date.","title":"dateFormats","isParent":false,"parent":"Highcharts","params":"","paramsDescription":"","demo":"Adding support for week number ","since":"3.0","deprecated":false},{"name":"Highcharts--setOptions","fullname":"Highcharts.setOptions","type":"method","returnType":"Object","description":"Sets the options globally for all charts created after this has been called. Takes an options JavaScript object structure as the argument. These options are merged with the default options and the result is returned.","title":"setOptions","isParent":false,"parent":"Highcharts","params":"(Object options)","paramsDescription":"options: Object The chart configuration object.","demo":"Setting a global option ,applying a general theme "},{"name":"Point","fullname":"Point","returnType":"","description":"The Point object is the JavaScript representation of each data point
The object can be accessed in a number of ways. In all point event handlers the point object is this
. In the series
object all the points are accessed by the series.data
array.
Another way to reference the point programmatically is by id. Add an id in the point configuration options, and get the point object by chart.get(id)
.
","title":"Point","isParent":true,"params":"","paramsDescription":"","demo":"","since":"","deprecated":false},{"name":"Point--percentage","fullname":"Point.percentage","type":"property","returnType":"Number","description":"The percentage for points in a stacked series or pies.","title":"percentage","isParent":false,"parent":"Point","since":"1.2.0"},{"name":"Point--remove","fullname":"Point.remove","type":"method","returnType":"","description":"Remove the point from the series.","title":"remove","isParent":false,"parent":"Point","params":"([Boolean redraw], [Mixed animation])","paramsDescription":"redraw: Boolean Defaults to true
. Whether to redraw the chart after the point is removed.If doing more operations on the chart, it is a good idea to set redraw to false and call chart.redraw()
after.||animation: Mixed Defaults to true. When true, the graph's updating will be animated with default animation options. The animation can also be a configuration object with properties duration
and easing
.","demo":"Remove point and confirm ,Remove pie slice ","since":"1.2.0","deprecated":false},{"name":"Point--selected","fullname":"Point.selected","type":"property","returnType":"Boolean","description":"Whether the point is selected or not.","title":"selected","isParent":false,"parent":"Point","since":"1.2.0"},{"name":"Point--slice","fullname":"Point.slice","type":"method","returnType":"","description":"Slice out or set back in a pie chart slice. This is the default way of Highcharts to visualize that a pie point is selected.","title":"slice","isParent":false,"parent":"Point","params":"([Boolean sliced], [Boolean redraw], [Mixed animation])","paramsDescription":"sliced: Boolean When true
, the point is sliced out. When false
, the point is set in. When null
or undefined
, the sliced state is toggled.||redraw: Boolean Defaults to true
. Whether to redraw the chart after the point is altered.||animation: Mixed Defaults to true. When true, the move will be animated with default animation options. The animation can also be a configuration object with properties duration
and easing
.","demo":"Slice and unslice a point from a button ","since":"1.2.0","deprecated":false},{"name":"Point--update","fullname":"Point.update","type":"method","returnType":"","description":"Update the point with new values.","title":"update","isParent":false,"parent":"Point","params":"([Mixed options], [Boolean redraw], [Mixed animation])","paramsDescription":"options: Number|Array|Object The point options. If options is a single number, the point will be given that number as the y value.If it is an array, it will be interpreted as x and y values respectively. If it is an object, advanced options as outlined under series.data are applied.||redraw: Boolean Defaults to true
. Whether to redraw the chart after the point is updated.If doing more operations on the chart, it is a good idea to set redraw to false and call chart.redraw()
after.||animation: Mixed Defaults to true. When true, the update will be animated with default animation options. The animation can also be a configuration object with properties duration
and easing
.","demo":"Update column value ,update pie slice ","since":"1.2.0","deprecated":false},{"name":"Point--x","fullname":"Point.x","type":"property","returnType":"Number","description":"The x value for the point.","title":"x","isParent":false,"parent":"Point","since":"1.2.0"},{"name":"Point--y","fullname":"Point.y","type":"property","returnType":"Number","description":"The y value for the point.","title":"y","isParent":false,"parent":"Point","since":"1.2.0"},{"name":"Renderer","fullname":"Renderer","returnType":"","description":"Allows direct access to the Highcharts rendering layer in order to draw primitive shapes like circles, rectangles,paths or text directly on a chart, or independent from any chart. The Renderer represents a wrapper object for SVGin modern browsers and VML in IE < 8.
An existing chart's renderer can be accessed through chart.renderer
. To create a renderer independent from a chart, use var renderer = new Highcharts.Renderer(parentNode, width, height);
where parentNode is the HTML element where you want to add it.
The Renderer's methods are chained wherever possible, so you can initiate an element then call for example attr
and css
and add
on that element in one statement.
","title":"Renderer","isParent":true,"params":"","paramsDescription":"","demo":"","since":"","deprecated":false},{"name":"Renderer--arc","fullname":"Renderer.arc","type":"method","returnType":"Element","description":"Draw an arc on the renderer canvas.","title":"arc","isParent":false,"parent":"Renderer","params":"(Number centerX, Number centerY, Number outerRadius, Number innerRadius, Number start, Number end)","paramsDescription":"centerX: Number The x position of the arc's center in the SVG element.||centerY: Number The y position of the arc's center in the SVG element.||outerRadius: Number The outer radius of the arc.||innerRadius: Number The inner radius of the arc.||start: Number The starting angle of the arc in radians, where 0 is to the right and -Math.PI/2 is up.||end: Number The ending angle of the arc in radians, where 0 is to the right and -Math.PI/2 is up.","demo":"Drawing an arc ","since":"2.0"},{"name":"Renderer--circle","fullname":"Renderer.circle","type":"method","returnType":"Element","description":"Draw circle on the renderer canvas.","title":"circle","isParent":false,"parent":"Renderer","params":"(Number centerX, Number centerY, Number radius)","paramsDescription":"centerX: Number The x position of the circle's center in the SVG element.||centerY: Number The y position of the circle's center in the SVG element.||radius: Number The radius of the circle.","demo":"Drawing a circle ","since":"2.0"},{"name":"Renderer--g","fullname":"Renderer.g","type":"method","returnType":"Element","description":"Add an SVG/VML group.","title":"g","isParent":false,"parent":"Renderer","params":"(String name)","paramsDescription":"name: String The name of the group. This will be used in the class name, which will be \"highcharts-\"+ name
. Other Element objects are added to the group by using the group as the first parameter in .add() for the wrappers.","demo":"Show and hide grouped objects ","since":"2.0","deprecated":false},{"name":"Renderer--image","fullname":"Renderer.image","type":"method","returnType":"Element","description":"Add an image from an external resource.","title":"image","isParent":false,"parent":"Renderer","params":"(String source, Number x, Number y, Number width, Number height)","paramsDescription":"source: String The URL of the image.||x: String The x position of the image's upper left corner.||y: String The y position of the image's upper left corner.||width: String The width of the image.||height: String The height of the image.","demo":"Add an image in a chart ,add an image independent from chart ","since":"2.0"},{"name":"Renderer--path","fullname":"Renderer.path","type":"method","returnType":"Element","description":"Add a path based on SVG's path commands . In SVG capable browsers all path commands are supported, but in VML only a subset is supported: absolute moveTo (M), absolute lineTo (L), absolute curveTo (C) and close (Z).","title":"path","isParent":false,"parent":"Renderer","params":"(Array path)","paramsDescription":"path: Array An SVG path split up in array form.","demo":"Draw a path in a chart ,draw a path independent from a chart ","since":"2.0","deprecated":false},{"name":"Renderer--rect","fullname":"Renderer.rect","type":"method","returnType":"Element","description":"Add a rectangle.","title":"rect","isParent":false,"parent":"Renderer","params":"(Number x, Number y, Number width, Number height, Number cornerRadius)","paramsDescription":"x: Number The x position of the rectangle's upper left corner.||y: Number The y position of the rectangle's upper left corner.||width: Number The width of the rectangle.||height: Number The height of the rectangle.||cornerRadius: Number The corner radius of all the rectangle's corners.","demo":"Draw a rectangle in a chart ,draw a rectangle independent from a chart ","since":"2.0"},{"name":"Renderer--text","fullname":"Renderer.text","type":"method","returnType":"Element","description":"Draw text. The text can contain a subset of HTML, like spans and anchors and some basic text styling of these. For more advanced features like border and background, use label instead.","title":"text","isParent":false,"parent":"Renderer","params":"(String str, Number x, Number y)","paramsDescription":"str: String The text or HTML to draw||x: Number The x position of the text's lower left corner.||y: Number The y position of the text's lower left corner.","demo":"Annotate the chart freely ; annotate with a border and in response to the data ; formatted text .","since":"2.0","deprecated":false},{"name":"Series","fullname":"Series","returnType":"","description":"The Series object is the JavaScript representation of each line, area series, pie etc.
The object can be accessed in a number of ways. All series and point event handlers give a reference to the series object. The chart
object has a series
property that is a collection of all the chart's series. The point
objects also have the same reference.
Another way to reference the series programmatically is by id. Add an id in the series configuration options, and get the series object by chart.get(id)
.
Configuration options for the series are given in three levels. Options for all series in a chart are given in the plotOptions.series object. Then options for all series of a specific type are given in the plotOptions of that type, for example plotOptions.line. Next, options for one single series are given in the series array .
","title":"Series","isParent":true,"params":"","paramsDescription":"","demo":"","since":"","deprecated":false},{"name":"Series--addPoint","fullname":"Series.addPoint","type":"method","returnType":"","description":"Add a point to the series after render time. The point can be added at the end, or by giving it an X value, to the start or in the middle of the series.","title":"addPoint","isParent":false,"parent":"Series","params":"(Object options, [Boolean redraw], [Boolean shift], [Mixed animation])","paramsDescription":"options: Number|Array|Object The point options. If options is a single number, a point with that y value is appended to the series.If it is an array, it will be interpreted as x and y values respectively. If it is an object, advanced options as outlined under series.data are applied.||\r\nredraw: Boolean Defaults to true
. Whether to redraw the chart after the point is added. When adding more than one point, it is highly recommended that the redraw
option be set to false, and instead chart.redraw()
is explicitly called after the adding of points is finished.||\r\nshift: Boolean Defaults to false
. When shift is true, one point is shifted off the start of the series as one is appended to the end. Use this option for live charts monitoring a value over time.||animation: Mixed Defaults to true. When true, the graph will be animated with default animation options. The animation can also be a configuration object with properties duration
and easing
.","demo":"Append point ,append and shift ,both x and y values given ,append pie slice ","since":"1.2.0","deprecated":false},{"name":"Series--hide","fullname":"Series.hide","type":"method","description":"Hides the series if visible. If the chart.ignoreHiddenSeries
option is true,the chart is redrawn without this series.","title":"hide","isParent":false,"parent":"Series","params":"()","demo":"Toggle visibility from a button ","since":"1.2.0"},{"name":"Series--name","fullname":"Series.name","type":"property","returnType":"String","description":"The series' name as given in the options.","title":"name","isParent":false,"parent":"Series","since":"1.2.0"},{"name":"Series--options","fullname":"Series.options","type":"property","returnType":"Object","description":"Read only. The series' options.","title":"options","isParent":false,"parent":"Series","since":"1.2.0"},{"name":"Series--select","fullname":"Series.select","type":"method","returnType":"","description":"Select or unselect the series. This means its selected
property is set,the checkbox in the legend is toggled and when selected, the series is returned in the chart.getSelectedSeries()
method.","title":"select","isParent":false,"parent":"Series","params":"([Boolean selected|null])","paramsDescription":"selected: Boolean|null When true
, the series is selected. When false
it is unselected. When null
or undefined
, the series' selection state is toggled.","demo":"Select a series from a button ","since":"1.2.0","deprecated":false},{"name":"Series--selected","fullname":"Series.selected","type":"property","returnType":"Boolean","description":"Read only. The series' selected state as set by series.select()
.","title":"selected","isParent":false,"parent":"Series","since":"1.2.0"},{"name":"Series--setVisible","fullname":"Series.setVisible","type":"method","returnType":"","description":"A utility function to show or hide the series with an optional redraw.","title":"setVisible","isParent":false,"parent":"Series","params":"(Boolean visible, [Boolean redraw])","paramsDescription":"visible: Boolean Whether to show or hide the series. If undefined, the visibility is toggled.||redraw: Boolean Defaults to true
. Whether to redraw the chart after the series is altered.If doing more operations on the chart, it is a good idea to set redraw to false and call chart.redraw()
after.","demo":"","since":"","deprecated":false},{"name":"Series--show","fullname":"Series.show","type":"method","description":"Shows the series if hidden.","title":"show","isParent":false,"parent":"Series","params":"()","demo":"Toggle visibility from a button ","since":"1.2.0"},{"name":"Series--type","fullname":"Series.type","type":"property","returnType":"String","description":"Read only. The series' type, like \"line\", \"area\" etc.","title":"type","isParent":false,"parent":"Series","since":"1.2.0"},{"name":"Series--update","fullname":"Series.update","type":"method","returnType":"","description":"Update the series with a new set of options. For a clean and precise handling of new options, all methods and elements from the series is removed, and it is initiated from scratch. Therefore, this method is more performance expensive than some other utility methods like setData
or setVisible
.","title":"update","isParent":false,"parent":"Series","params":"(Object options, [Boolean redraw])","paramsDescription":"options: Boolean \r\nNew options that will be merged into the series' existing options.\r\n\r\n||\r\n\r\nredraw: Boolean \r\nDefaults to true
. Whether to redraw the chart after the series is altered. If doing more operations on the chart, it is a good idea to set redraw to false and call chart.redraw()
after.","demo":"Updating series options ","since":"3.0","deprecated":false},{"name":"Series--visible","fullname":"Series.visible","type":"property","returnType":"Boolean","description":"Read only. The series' visibility state as set by series.show()
, series.hide()
, or the initial configuration.","title":"visible","isParent":false,"parent":"Series","since":"1.2.0"},{"name":"Chart--addSeriesAsDrilldown","fullname":"Chart.addSeriesAsDrilldown","type":"method","returnType":"","description":"Add a series to the chart as drilldown from a specific point in the parent series. This method is used for async drilldown, when clicking a point in a series should result in loading and displaying a more high-resolution series. When not async, the setup is simpler using the drilldown.series options structure.","title":"addSeriesAsDrilldown","isParent":false,"parent":"Chart","params":"(Object point, Object seriesOptions)","paramsDescription":"point: Object \r\nThe existing Point object from which the drilldown will start.||\r\n\r\nseriesOptions: Object \r\nThe series options, as documented under plotOptions.series and under the plotOptions for each series type.","demo":"Async drilldown ","since":"3.0.8","deprecated":false},{"name":"Chart--drillUp","fullname":"Chart.drillUp","type":"method","returnType":"","description":"When the chart is drilled down to a child series, calling chart.drillUp()
will drill up to the parent series.","title":"drillUp","isParent":false,"parent":"Chart","params":"()","paramsDescription":"","demo":"","since":"3.0.8","deprecated":false},{"name":"Chart--setTitle","fullname":"Chart.setTitle","type":"method","returnType":"","description":"Set a new title or subtitle for the chart","title":"setTitle","isParent":false,"parent":"Chart","params":"(Object title, object subtitle, Boolean redraw)","paramsDescription":"title: Object A configuration object for the new title as defined at #title .||\r\nsubtitle: Object A configuration object for the new subtitle as defined at #subtitle .||\r\nredraw: Boolean Whether to redraw the chart. Defaults to true.","demo":"Set title text and styles ","since":"2.1.0","deprecated":false},{"name":"Series--setData","fullname":"Series.setData","type":"method","returnType":"","description":"Apply a new set of data to the series and optionally redraw it. Note that this method throws away all points and creates new ones. For updating the values of existing points, use Point.update() instead.","title":"setData","isParent":false,"parent":"Series","params":"(Array<Mixed> data, [Boolean redraw], [Mixed animation], [Boolean updatePoints])","paramsDescription":"data: Array<Number>|Array<Array>|Array<Object> Takes an array of data in the same format as given at options.series => data.||\r\nredraw: Boolean Defaults to true
. Whether to redraw the chart after the series is altered.If doing more operations on the chart, it is a good idea to set redraw to false and call chart.redraw()
after.||\r\nanimation: Mixed When the updated data is the same length as the existing data, points will be updated by default, and animation visualizes how the points are changed. Set false to disable animation, or a configuration object to set duration or easing.||\r\nupdatePoints: Boolean When the updated data is the same length as the existing data, points will be updated instead of replace. This option prevents this, and makes setData behave like it did prior to Highcharts 3.0.10.","demo":"Set new data from a button ,set data in a pie ","since":"1.2.0","deprecated":false},{"name":"Element--attr","fullname":"Element.attr","type":"method","returnType":"Element","description":"Apply attributes to the SVG/VML elements. These attributes for the most parts correspond to SVG, but some are specific to Highcharts, like zIndex
and rotation
.
\r\n\r\nIn order to set the rotation center for rotation
, set x and y to 0 and use translateX
and translateY
attributes to position the element instead.
\r\n\r\nAttributes frequently used in Highcharts are fill
, stroke
, stroke-width
.
","title":"attr","isParent":false,"parent":"Element","params":"Object hash","paramsDescription":"hash: Object A set of attributes to apply.","demo":"Setting some attributes ","since":"2.0","deprecated":false},{"name":"Axis--setTitle","fullname":"Axis.setTitle","type":"method","returnType":"","description":"Update the title of the axis after render time.","title":"setTitle","isParent":false,"parent":"Axis","params":"(Object title, [Boolean redraw])","paramsDescription":"title: Object The new title options on the same format as given in xAxis.title .||redraw: Boolean Whether to redraw the chart now or hold until the next chart.redraw()","demo":"Set a new Y axis title ","since":"2.2","deprecated":false},{"name":"Point--select","fullname":"Point.select","type":"method","returnType":"","description":"Select or unselect the point.","title":"select","isParent":false,"parent":"Point","params":"([Boolean select], [Boolean accumulate])","paramsDescription":"select: Boolean When true
, the point is selected. When false
, the point is unselected. When null
or undefined
, the selection state is toggled.||accumulate: Boolean When true
, the selection is added to other selected points. When false
, other selected points are deselected. Internally in Highcharts,selected points are accumulated on Control, Shift or Cmd clicking the point.","demo":"Select a point from a button ","since":"1.2.0","deprecated":false},{"name":"Series--remove","fullname":"Series.remove","type":"method","returnType":"","description":"Remove the series from the chart.","title":"remove","isParent":false,"parent":"Series","params":"([Boolean redraw])","paramsDescription":"redraw: Boolean Defaults to true
. Whether to redraw the chart after the series is removed.If doing more operations on the chart, it is a good idea to set redraw to false and call chart.redraw()
after.","demo":"Remove first series from a button ","since":"1.2.0","deprecated":false},{"name":"Chart--getSelectedSeries","fullname":"Chart.getSelectedSeries","type":"method","returnType":"Array","description":"Returns an array of all currently selected series in the chart. Series can be selected either programmatically by the series.select()
method or by checking the checkbox next to the legend item if series.showCheckBox
is true.","title":"getSelectedSeries","isParent":false,"parent":"Chart","params":"()","paramsDescription":"An array of the selected Series items.","demo":"Get selected series ","since":"1.2.0","deprecated":false},{"name":"Point--category","fullname":"Point.category","type":"property","returnType":"String|Number","description":"For categorized axes this property holds the category name for the point. For other axis it holds the x value.","title":"category","isParent":false,"parent":"Point","params":"","paramsDescription":"","demo":"","since":"1.2.0","deprecated":false},{"name":"Chart--hideLoading","fullname":"Chart.hideLoading","type":"method","returnType":"","description":"Hide the loading screen. Options for the loading screen are defined at options.loading .","title":"hideLoading","isParent":false,"parent":"Chart","params":"()","paramsDescription":"","demo":"Show and hide loading from a button ","since":"1.2.0","deprecated":false},{"name":"Axis--addPlotLine","fullname":"Axis.addPlotLine","type":"method","returnType":"","description":"Add a plot line after render time.","title":"addPlotLine","isParent":false,"parent":"Axis","params":"(Object options)","paramsDescription":"options: Object A configuration object consisting of the same members as options.xAxis.plotLines ","demo":"Toggle the plot line from a button ","since":"1.2.0","deprecated":false},{"name":"Axis--addPlotBand","fullname":"Axis.addPlotBand","type":"method","returnType":"","description":"Add a plot band after render time.","title":"addPlotBand","isParent":false,"parent":"Axis","params":"(Object options)","paramsDescription":"options: Object A configuration object consisting of the same members as options.xAxis.plotBands ","demo":"Toggle the plot band from a button ","since":"1.2.0","deprecated":false},{"name":"Chart--series","fullname":"Chart.series","type":"property","returnType":"Array","description":"An array of all the chart's series.","title":"series","isParent":false,"parent":"Chart","params":"","paramsDescription":"","demo":"","since":"1.2.0","deprecated":false},{"name":"Element--destroy","fullname":"Element.destroy","type":"method","returnType":"","description":"Destroy the element and free up memory","title":"destroy","isParent":false,"parent":"Element","params":"","paramsDescription":"","demo":"","since":"2.0","deprecated":false},{"name":"Point--total","fullname":"Point.total","type":"Number","returnType":"Number","description":"The total of a stack for stacked series, or pie in pie charts.","title":"total","isParent":false,"parent":"Point","params":"","paramsDescription":"","demo":"","since":"","deprecated":false},{"name":"Chart--reflow","fullname":"Chart.reflow","type":"method","returnType":"","description":"Reflows the chart to its container. By default, the chart reflows automatically to its container following a window.resize
event, as per the chart.reflow option. However, there are no reliable events for div resize, so if the container is resized without a window resize event, this must be called explicitly. ","title":"reflow","isParent":false,"parent":"Chart","params":"()","paramsDescription":"","demo":"Resize div and reflow , pop up and reflow ","since":"","deprecated":false},{"name":"Element--getBBox","fullname":"Element.getBBox","type":"method","returnType":"Object","description":"Get the bounding box of the element","title":"getBBox","isParent":false,"parent":"Element","params":"","paramsDescription":"A hash object containing x, y, width and height values for the element.","demo":"Draw a rectangle based on a text's bounding box .","since":"2.0","deprecated":false},{"name":"Series--chart","fullname":"Series.chart","type":"property","returnType":"Chart","description":"Read only. The chart that the series belongs to.","title":"chart","isParent":false,"parent":"Series","params":"","paramsDescription":"","demo":"","since":"1.2.0","deprecated":false},{"name":"Series--data","fullname":"Series.data","type":"property","returnType":"Array","description":"Read only. An array with the series' data point objects.","title":"data","isParent":false,"parent":"Series","params":"","paramsDescription":"","demo":"","since":"1.2.0","deprecated":false},{"name":"Series--xAxis","fullname":"Series.xAxis","type":"property","returnType":"Axis","description":"Read only. The unique xAxis object associated with the series.","title":"xAxis","isParent":false,"parent":"Series","params":"","paramsDescription":"","demo":"","since":"1.2.0","deprecated":false},{"name":"Series--yAxis","fullname":"Series.yAxis","type":"property","returnType":"Axis","description":"Read only. The unique yAxis object associated with the series.","title":"yAxis","isParent":false,"parent":"Series","params":"","paramsDescription":"","demo":"","since":"1.2.0","deprecated":false},{"name":"Series--removePoint","fullname":"Series.removePoint","type":"method","returnType":"","description":"Remove a point from the series. Unlike the Point.remove method, this can also be done on a point that is not instanciated because it is outside the view or subject to data grouping.","title":"removePoint","isParent":false,"parent":"Series","params":"(Object index, [Boolean redraw], [Mixed animation])","paramsDescription":"index: Number The index of the point in the data array.||\r\nredraw: Boolean Defaults to true
. Whether to redraw the chart after the point is added. When adding more than one point, it is highly recommended that the redraw
option be set to false, and instead chart.redraw()
is explicitly called after the adding of points is finished.||\r\nanimation: Mixed Defaults to true. When true, the graph will be animated with default animation options. The animation can also be a configuration object with properties duration
and easing
.","demo":"Remove cropped point ","since":"4.1.0","deprecated":false},{"name":"Highcharts--numberFormat","fullname":"Highcharts.numberFormat","type":"method","returnType":"String","description":"Formats a JavaScript number with grouped thousands, a fixed amount of decimals and an optional decimal point. It is a port of PHP's function with the same name. See PHP number_format for a full explanation of the parameters.","title":"numberFormat","isParent":false,"parent":"Highcharts","params":"(Number number, [Number decimals], [String decimalPoint], [String thousandsSep])","paramsDescription":"number: Number The raw number to format.||decimals: Number The desired number of decimals.||decimalPoint: String The decimal point. Defaults to \".\" or to the string specified globally in options.lang.decimalPoint.||thousandsSep: String The thousands separator. Defaults to \" \" or to the string specified globally in options.lang.thousandsSep.","demo":"Custom number format ","since":"","deprecated":false},{"name":"Renderer--label","fullname":"Renderer.label","type":"method","returnType":"Element","description":"Draw a label, which is an extended text
element with support for border and background. Highcharts creates a g
element with a text
and a path
or rect
inside, to make it behave somewhat like a HTML div
. Border and background are set through stroke
, stroke-width
and fill
attributes using the attr method. This must be done before calling add .","title":"label","isParent":false,"parent":"Renderer","params":"(String str, Number x, Number y, String shape, Number anchorX, Number anchorY, Boolean useHTML, Boolean baseline, String className)","paramsDescription":"str: String \r\nThe text or HTML to draw||\r\n\r\nx: Number \r\nThe x position of the label's left side.||\r\n\r\ny: Number \r\nThe y position of the label's top side or baseline, depending on the baseline
parameter.||\r\n\r\nshape: String \r\nThe shape of the label's border/background, if any. Defaults to rect
.||\r\n\r\nanchorX: Number \r\nIf the shape has a pointer, like the chevron on a callout shape, anchorX is the x position to point to.||\r\n\r\nanchorY: Number \r\nIf the shape has a pointer, like the chevron on a callout shape, anchorY is the y position to point to.||\r\n\r\nuseHTML: Boolean \r\nUse HTML to render the text of the label.||\r\n\r\nbaseline: Boolean \r\nWhether the label should be vertically aligned by the text baseline, which makes it behave like the text
element, or by the top left side, which makes it behave like a HTML div
.||\r\n\r\nclassName: String \r\nA class name for the g
element surrounding the label.\r\n\r\n","demo":"A label on the chart ","since":"","deprecated":false}];
+offline.highcharts.option = [{"name":"global--Date","fullname":"global.Date","title":"Date","parent":"global","isParent":false,"returnType":"Object","since":"4.0.4","description":"A custom Date
class for advanced date handling. For example, JDate can be hooked in to handle Jalali dates.","deprecated":false},{"name":"global--VMLRadialGradientURL","fullname":"global.VMLRadialGradientURL","title":"VMLRadialGradientURL","parent":"global","isParent":false,"returnType":"String","defaults":"http://code.highcharts.com/{version}/gfx/vml-radial-gradient.png","since":"2.3.0","description":"Path to the pattern image required by VML browsers in order to draw radial gradients.","demo":"","seeAlso":"","deprecated":false},{"name":"drilldown--activeAxisLabelStyle","fullname":"drilldown.activeAxisLabelStyle","title":"activeAxisLabelStyle","parent":"drilldown","isParent":false,"returnType":"CSSObject","since":"3.0.8","description":"Additional styles to apply to the X axis label for a point that has drilldown data. By default it is underlined and blue to invite to interaction. Defaults to:\r\nactiveAxisLabelStyle: {\r\n\tcursor: 'pointer',\r\n\tcolor: '#0d233a',\r\n\tfontWeight: 'bold',\r\n\ttextDecoration: 'underline'\t\t\t\r\n} ","demo":"Label styles ","deprecated":false},{"name":"legend-navigation--activeColor","fullname":"legend.navigation.activeColor","title":"activeColor","parent":"legend-navigation","isParent":false,"returnType":"Color","defaults":"#3E576F","since":"2.2.4","description":"The color for the active up or down arrow in the legend page navigation.","demo":"\n\t\t\t\tLegend page navigation demonstrated "},{"name":"drilldown--activeDataLabelStyle","fullname":"drilldown.activeDataLabelStyle","title":"activeDataLabelStyle","parent":"drilldown","isParent":false,"returnType":"CSSObject","since":"3.0.8","description":"Additional styles to apply to the data label of a point that has drilldown data. By default it is underlined and blue to invite to interaction. Defaults to:\r\nactiveAxisLabelStyle: {\r\n\tcursor: 'pointer',\r\n\tcolor: '#0d233a',\r\n\tfontWeight: 'bold',\r\n\ttextDecoration: 'underline'\t\t\t\r\n} ","demo":"Label styles ","deprecated":false},{"name":"chart-events--addSeries","fullname":"chart.events.addSeries","title":"addSeries","parent":"chart-events","isParent":false,"returnType":"Function","context":"Chart","since":"1.2.0","description":"Fires when a series is added to the chart after load time, using the addSeries
method. One parameter, event
, is passed to the function. This contains common event information based on jQuery or MooTools depending on which library is used as the base for Highcharts. Through event.options
you can access the series options that was passed to the addSeries
method. Returning false prevents the series from being added.","demo":"Alert on add series ","deprecated":false},{"name":"series -events--afterAnimate","fullname":"series .events.afterAnimate","title":"afterAnimate","parent":"series -events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"plotOptions-spline-events--afterAnimate","fullname":"plotOptions.spline.events.afterAnimate","title":"afterAnimate","parent":"plotOptions-spline-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"plotOptions-errorbar-events--afterAnimate","fullname":"plotOptions.errorbar.events.afterAnimate","title":"afterAnimate","parent":"plotOptions-errorbar-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"plotOptions-waterfall-events--afterAnimate","fullname":"plotOptions.waterfall.events.afterAnimate","title":"afterAnimate","parent":"plotOptions-waterfall-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"series-events--afterAnimate","fullname":"series.events.afterAnimate","title":"afterAnimate","parent":"series-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"plotOptions-areasplinerange-events--afterAnimate","fullname":"plotOptions.areasplinerange.events.afterAnimate","title":"afterAnimate","parent":"plotOptions-areasplinerange-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"series-events--afterAnimate","fullname":"series.events.afterAnimate","title":"afterAnimate","parent":"series-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"plotOptions-area-events--afterAnimate","fullname":"plotOptions.area.events.afterAnimate","title":"afterAnimate","parent":"plotOptions-area-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"plotOptions-series-events--afterAnimate","fullname":"plotOptions.series.events.afterAnimate","title":"afterAnimate","parent":"plotOptions-series-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"plotOptions-line-events--afterAnimate","fullname":"plotOptions.line.events.afterAnimate","title":"afterAnimate","parent":"plotOptions-line-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"series-events--afterAnimate","fullname":"series.events.afterAnimate","title":"afterAnimate","parent":"series-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"series-events--afterAnimate","fullname":"series.events.afterAnimate","title":"afterAnimate","parent":"series-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"plotOptions-column-events--afterAnimate","fullname":"plotOptions.column.events.afterAnimate","title":"afterAnimate","parent":"plotOptions-column-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"series-events--afterAnimate","fullname":"series.events.afterAnimate","title":"afterAnimate","parent":"series-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"plotOptions-gauge-events--afterAnimate","fullname":"plotOptions.gauge.events.afterAnimate","title":"afterAnimate","parent":"plotOptions-gauge-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"plotOptions-solidgauge-events--afterAnimate","fullname":"plotOptions.solidgauge.events.afterAnimate","title":"afterAnimate","parent":"plotOptions-solidgauge-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"plotOptions-treemap-events--afterAnimate","fullname":"plotOptions.treemap.events.afterAnimate","title":"afterAnimate","parent":"plotOptions-treemap-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"series-events--afterAnimate","fullname":"series.events.afterAnimate","title":"afterAnimate","parent":"series-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"series-events--afterAnimate","fullname":"series.events.afterAnimate","title":"afterAnimate","parent":"series-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"plotOptions-bubble-events--afterAnimate","fullname":"plotOptions.bubble.events.afterAnimate","title":"afterAnimate","parent":"plotOptions-bubble-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"series-events--afterAnimate","fullname":"series.events.afterAnimate","title":"afterAnimate","parent":"series-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"plotOptions-pyramid-events--afterAnimate","fullname":"plotOptions.pyramid.events.afterAnimate","title":"afterAnimate","parent":"plotOptions-pyramid-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"series-events--afterAnimate","fullname":"series.events.afterAnimate","title":"afterAnimate","parent":"series-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"series-events--afterAnimate","fullname":"series.events.afterAnimate","title":"afterAnimate","parent":"series-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"plotOptions-boxplot-events--afterAnimate","fullname":"plotOptions.boxplot.events.afterAnimate","title":"afterAnimate","parent":"plotOptions-boxplot-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"series-events--afterAnimate","fullname":"series.events.afterAnimate","title":"afterAnimate","parent":"series-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"plotOptions-funnel-events--afterAnimate","fullname":"plotOptions.funnel.events.afterAnimate","title":"afterAnimate","parent":"plotOptions-funnel-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"plotOptions-pie-events--afterAnimate","fullname":"plotOptions.pie.events.afterAnimate","title":"afterAnimate","parent":"plotOptions-pie-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"series-events--afterAnimate","fullname":"series.events.afterAnimate","title":"afterAnimate","parent":"series-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"series-events--afterAnimate","fullname":"series.events.afterAnimate","title":"afterAnimate","parent":"series-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"plotOptions-arearange-events--afterAnimate","fullname":"plotOptions.arearange.events.afterAnimate","title":"afterAnimate","parent":"plotOptions-arearange-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"series-events--afterAnimate","fullname":"series.events.afterAnimate","title":"afterAnimate","parent":"series-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"plotOptions-columnrange-events--afterAnimate","fullname":"plotOptions.columnrange.events.afterAnimate","title":"afterAnimate","parent":"plotOptions-columnrange-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"plotOptions-scatter-events--afterAnimate","fullname":"plotOptions.scatter.events.afterAnimate","title":"afterAnimate","parent":"plotOptions-scatter-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"plotOptions-polygon-events--afterAnimate","fullname":"plotOptions.polygon.events.afterAnimate","title":"afterAnimate","parent":"plotOptions-polygon-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"series-events--afterAnimate","fullname":"series.events.afterAnimate","title":"afterAnimate","parent":"series-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"plotOptions-areaspline-events--afterAnimate","fullname":"plotOptions.areaspline.events.afterAnimate","title":"afterAnimate","parent":"plotOptions-areaspline-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"plotOptions-bar-events--afterAnimate","fullname":"plotOptions.bar.events.afterAnimate","title":"afterAnimate","parent":"plotOptions-bar-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"series-events--afterAnimate","fullname":"series.events.afterAnimate","title":"afterAnimate","parent":"series-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"series-events--afterAnimate","fullname":"series.events.afterAnimate","title":"afterAnimate","parent":"series-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"series-events--afterAnimate","fullname":"series.events.afterAnimate","title":"afterAnimate","parent":"series-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"series-events--afterAnimate","fullname":"series.events.afterAnimate","title":"afterAnimate","parent":"series-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"series-events--afterAnimate","fullname":"series.events.afterAnimate","title":"afterAnimate","parent":"series-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"plotOptions-heatmap-events--afterAnimate","fullname":"plotOptions.heatmap.events.afterAnimate","title":"afterAnimate","parent":"plotOptions-heatmap-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"series-events--afterAnimate","fullname":"series.events.afterAnimate","title":"afterAnimate","parent":"series-events","isParent":false,"returnType":"Function","context":"Series","since":"4.0","description":"Fires after the series has finished its initial animation, or in case animation is disabled, immediately as the series is displayed.","demo":"Show label after animate ","deprecated":false},{"name":"yAxis-events--afterBreaks","fullname":"yAxis.events.afterBreaks","title":"afterBreaks","parent":"yAxis-events","isParent":false,"returnType":"Function","since":"4.1.0","description":"An event fired after the breaks have rendered.","demo":"afterBreak Event ","seeAlso":"breaks ","deprecated":false},{"name":"xAxis-events--afterBreaks","fullname":"xAxis.events.afterBreaks","title":"afterBreaks","parent":"xAxis-events","isParent":false,"returnType":"Function","since":"4.1.0","description":"An event fired after the breaks have rendered.","demo":"afterBreak Event ","seeAlso":"breaks ","deprecated":false},{"name":"chart-events--afterPrint","fullname":"chart.events.afterPrint","title":"afterPrint","parent":"chart-events","isParent":false,"returnType":"Function","context":"Chart","defaults":"","values":"","since":"4.1.0","description":"Fires after a chart is printed through the context menu item or the Chart.print
method. Requires the exporting module.","demo":"Rescale the chart to print ","seeAlso":"","deprecated":false},{"name":"xAxis-events--afterSetExtremes","fullname":"xAxis.events.afterSetExtremes","title":"afterSetExtremes","parent":"xAxis-events","isParent":false,"returnType":"Function","context":"Axis","since":"2.3","description":"As opposed to the setExtremes
event, this event fires after the final min and max values are computed and corrected for minRange
.","deprecated":false},{"name":"yAxis-events--afterSetExtremes","fullname":"yAxis.events.afterSetExtremes","title":"afterSetExtremes","parent":"yAxis-events","isParent":false,"returnType":"Function","context":"Axis","since":"2.3","description":"As opposed to the setExtremes
event, this event fires after the final min and max values are computed and corrected for minRange
.","deprecated":false},{"name":"plotOptions-areaspline-dataLabels--align","fullname":"plotOptions.areaspline.dataLabels.align","title":"align","parent":"plotOptions-areaspline-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"xAxis-plotLines-label--align","fullname":"xAxis.plotLines.label.align","title":"align","parent":"xAxis-plotLines-label","isParent":false,"returnType":"String","defaults":"left","since":"2.1","description":"Horizontal alignment of the label. Can be one of \"left\", \"center\" or \"right\".","demo":"Aligned to the right ","deprecated":false},{"name":"plotOptions-treemap-dataLabels--align","fullname":"plotOptions.treemap.dataLabels.align","title":"align","parent":"plotOptions-treemap-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"xAxis-plotBands-label--align","fullname":"xAxis.plotBands.label.align","title":"align","parent":"xAxis-plotBands-label","isParent":false,"returnType":"String","defaults":"center","since":"2.1","description":"Horizontal alignment of the label. Can be one of \"left\", \"center\" or \"right\".","demo":"Aligned to the right "},{"name":"plotOptions-bar-dataLabels--align","fullname":"plotOptions.bar.dataLabels.align","title":"align","parent":"plotOptions-bar-dataLabels","isParent":false,"returnType":"String","defaults":"left","description":"Alignment of the data label relative to the data point.","demo":"Data labels inside the bar "},{"name":"yAxis-plotLines-label--align","fullname":"yAxis.plotLines.label.align","title":"align","parent":"yAxis-plotLines-label","isParent":false,"returnType":"String","defaults":"left","since":"2.1","description":"Horizontal alignment of the label. Can be one of \"left\", \"center\" or \"right\".","demo":"Aligned to the right ","deprecated":false},{"name":"series-dataLabels--align","fullname":"series.dataLabels.align","title":"align","parent":"series-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"yAxis-plotBands-label--align","fullname":"yAxis.plotBands.label.align","title":"align","parent":"yAxis-plotBands-label","isParent":false,"returnType":"String","defaults":"center","since":"2.1","description":"Horizontal alignment of the label. Can be one of \"left\", \"center\" or \"right\".","demo":"Aligned to the right "},{"name":"series-dataLabels--align","fullname":"series.dataLabels.align","title":"align","parent":"series-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"plotOptions-gauge-dataLabels--align","fullname":"plotOptions.gauge.dataLabels.align","title":"align","parent":"plotOptions-gauge-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"subtitle--align","fullname":"subtitle.align","title":"align","parent":"subtitle","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","since":"2.0","description":"The horizontal alignment of the subtitle. Can be one of \"left\", \"center\" and \"right\".","demo":"Footnote at right of plot area "},{"name":"series-dataLabels--align","fullname":"series.dataLabels.align","title":"align","parent":"series-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"plotOptions-areasplinerange-dataLabels--align","fullname":"plotOptions.areasplinerange.dataLabels.align","title":"align","parent":"plotOptions-areasplinerange-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"xAxis-labels--align","fullname":"xAxis.labels.align","title":"align","parent":"xAxis-labels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"What part of the string the given position is anchored to. Can be one of \"left\"
, \"center\"
or \"right\"
. Defaults to an intelligent guess based on which side of the chart the axis is on and the rotation of the label.","demo":"\"left\" , \r\n\t\t\t\"right\" on X axis","deprecated":false},{"name":"plotOptions-spline-dataLabels--align","fullname":"plotOptions.spline.dataLabels.align","title":"align","parent":"plotOptions-spline-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"plotOptions-line-dataLabels--align","fullname":"plotOptions.line.dataLabels.align","title":"align","parent":"plotOptions-line-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"yAxis-labels--align","fullname":"yAxis.labels.align","title":"align","parent":"yAxis-labels","isParent":false,"returnType":"String","defaults":"right","description":"What part of the string the given position is anchored to. \n\t\tCan be one of \"left\"
, \"center\"
or \"right\"
.","demo":"\"left\" on Y axis"},{"name":"yAxis-stackLabels--align","fullname":"yAxis.stackLabels.align","title":"align","parent":"yAxis-stackLabels","isParent":false,"returnType":"String","values":"[\"left\", \"center\", \"right\"]","since":"2.1.5","description":"Defines the horizontal alignment of the stack total label. Can be one of \"left\"
, \"center\"
or \"right\"
. The default value is calculated at runtime and depends on orientation and whether the stack is positive or negative.","demo":"aligned to the left ,\n\t\t\taligned in center ,\n\t\t\taligned to the right "},{"name":"series-dataLabels--align","fullname":"series.dataLabels.align","title":"align","parent":"series-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"series -dataLabels--align","fullname":"series .dataLabels.align","title":"align","parent":"series -dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"plotOptions-waterfall-dataLabels--align","fullname":"plotOptions.waterfall.dataLabels.align","title":"align","parent":"plotOptions-waterfall-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"series-dataLabels--align","fullname":"series.dataLabels.align","title":"align","parent":"series-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"series-dataLabels--align","fullname":"series.dataLabels.align","title":"align","parent":"series-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"plotOptions-column-dataLabels--align","fullname":"plotOptions.column.dataLabels.align","title":"align","parent":"plotOptions-column-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"plotOptions-columnrange-dataLabels--align","fullname":"plotOptions.columnrange.dataLabels.align","title":"align","parent":"plotOptions-columnrange-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"plotOptions-heatmap-dataLabels--align","fullname":"plotOptions.heatmap.dataLabels.align","title":"align","parent":"plotOptions-heatmap-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"plotOptions-bubble-dataLabels--align","fullname":"plotOptions.bubble.dataLabels.align","title":"align","parent":"plotOptions-bubble-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"series-dataLabels--align","fullname":"series.dataLabels.align","title":"align","parent":"series-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"exporting-buttons-contextButton--align","fullname":"exporting.buttons.contextButton.align","title":"align","parent":"exporting-buttons-contextButton","isParent":false,"returnType":"String","defaults":"right","values":"[\"left\", \"center\", \"right\"]","since":"2.0","description":"Alignment for the buttons.","demo":"Center aligned "},{"name":"series-dataLabels--align","fullname":"series.dataLabels.align","title":"align","parent":"series-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"series-dataLabels--align","fullname":"series.dataLabels.align","title":"align","parent":"series-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"navigation-buttonOptions--align","fullname":"navigation.buttonOptions.align","title":"align","parent":"navigation-buttonOptions","isParent":false,"returnType":"String","defaults":"right","values":"[\"left\", \"center\", \"right\"]","since":"2.0","description":"Alignment for the buttons.","demo":"Center aligned "},{"name":"series-dataLabels--align","fullname":"series.dataLabels.align","title":"align","parent":"series-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"series-dataLabels--align","fullname":"series.dataLabels.align","title":"align","parent":"series-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"series-dataLabels--align","fullname":"series.dataLabels.align","title":"align","parent":"series-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"plotOptions-series-dataLabels--align","fullname":"plotOptions.series.dataLabels.align","title":"align","parent":"plotOptions-series-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"plotOptions-solidgauge-dataLabels--align","fullname":"plotOptions.solidgauge.dataLabels.align","title":"align","parent":"plotOptions-solidgauge-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"legend--align","fullname":"legend.align","title":"align","parent":"legend","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","since":"2.0","description":"The horizontal alignment of the legend box within the chart area. Valid values are \"left\"
, \"center\"
and \"right\"
.","demo":"Legend at the right of the chart ","deprecated":false},{"name":"plotOptions-area-dataLabels--align","fullname":"plotOptions.area.dataLabels.align","title":"align","parent":"plotOptions-area-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"plotOptions-scatter-dataLabels--align","fullname":"plotOptions.scatter.dataLabels.align","title":"align","parent":"plotOptions-scatter-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"title--align","fullname":"title.align","title":"align","parent":"title","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","since":"2.0","description":"The horizontal alignment of the title. Can be one of \"left\", \"center\" and \"right\".","demo":"Aligned to the plot area (x = 70px \n\t\t\t= margin left - spacing left) "},{"name":"plotOptions-polygon-dataLabels--align","fullname":"plotOptions.polygon.dataLabels.align","title":"align","parent":"plotOptions-polygon-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"xAxis-title--align","fullname":"xAxis.title.align","title":"align","parent":"xAxis-title","isParent":false,"returnType":"String","defaults":"middle","values":"[\"low\", \"middle\", \"high\"]","description":"Alignment of the title relative to the axis values. Possible values\r\n are \"low\", \"middle\" or \"high\".","demo":"X axis title aligned \"low\" ,\r\n\t\t\t\"middle\" by default , \r\n\t\t\t\"high\" , \r\n\t\t\tplace the Y axis title on top of the axis ","deprecated":false},{"name":"series-dataLabels--align","fullname":"series.dataLabels.align","title":"align","parent":"series-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"series-dataLabels--align","fullname":"series.dataLabels.align","title":"align","parent":"series-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"series-dataLabels--align","fullname":"series.dataLabels.align","title":"align","parent":"series-dataLabels","isParent":false,"returnType":"String","defaults":"left","description":"Alignment of the data label relative to the data point.","demo":"Data labels inside the bar "},{"name":"plotOptions-arearange-dataLabels--align","fullname":"plotOptions.arearange.dataLabels.align","title":"align","parent":"plotOptions-arearange-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"series-dataLabels--align","fullname":"series.dataLabels.align","title":"align","parent":"series-dataLabels","isParent":false,"returnType":"String","defaults":"center","values":"[\"left\", \"center\", \"right\"]","description":"The alignment of the data label compared to the point. If right
, the right side of the label should be touching the point. For points with an extent, like columns, the alignments also dictates how to align it inside the box, as given with the inside option. Can be one of \"left\", \"center\" or \"right\".","demo":"Left aligned ","deprecated":false},{"name":"yAxis-title--align","fullname":"yAxis.title.align","title":"align","parent":"yAxis-title","isParent":false,"returnType":"String","defaults":"middle","values":"[\"low\", \"middle\", \"high\"]","description":"Alignment of the title relative to the axis values. Possible values\r\n are \"low\", \"middle\" or \"high\".","demo":"X axis title aligned \"low\" ,\r\n\t\t\t\"middle\" by default , \r\n\t\t\t\"high\" , \r\n\t\t\tplace the Y axis title on top of the axis ","deprecated":false},{"name":"chart--alignTicks","fullname":"chart.alignTicks","title":"alignTicks","parent":"chart","isParent":false,"returnType":"Boolean","defaults":"true","description":"When using multiple axis, the ticks of two or more opposite axes will automatically be aligned by adding ticks to the axis or axes with the least ticks. This can be prevented by setting alignTicks
to false. If the grid lines look messy, it's a good idea to hide them for the secondary axis by setting gridLineWidth
to 0.","demo":"True by default , \n\t\t\tfalse ."},{"name":"xAxis--allowDecimals","fullname":"xAxis.allowDecimals","title":"allowDecimals","parent":"xAxis","isParent":false,"returnType":"Boolean","defaults":"true","since":"2.0","description":"Whether to allow decimals in this axis' ticks. When counting integers, like\r persons or hits on a web page, decimals must be avoided in the axis tick\r labels.","demo":"True by default (unwanted for this\r\n\t\t\ttype of data), \r\n\t\t\tfalse ","seeAlso":"minTickInterval ","deprecated":false},{"name":"yAxis--allowDecimals","fullname":"yAxis.allowDecimals","title":"allowDecimals","parent":"yAxis","isParent":false,"returnType":"Boolean","defaults":"true","since":"2.0","description":"Whether to allow decimals in this axis' ticks. When counting integers, like\r persons or hits on a web page, decimals must be avoided in the axis tick\r labels.","demo":"True by default (unwanted for this\r\n\t\t\ttype of data), \r\n\t\t\tfalse ","seeAlso":"minTickInterval ","deprecated":false},{"name":"series--allowDrillToNode","fullname":"series.allowDrillToNode","title":"allowDrillToNode","parent":"series","isParent":false,"returnType":"Boolean","defaults":"false","values":"[\"false\", \"true\"]","since":"4.1.0","description":"When enabled the user can click on a point which is a parent and zoom in on its children.","demo":"Enabled ","deprecated":false},{"name":"plotOptions-treemap--allowDrillToNode","fullname":"plotOptions.treemap.allowDrillToNode","title":"allowDrillToNode","parent":"plotOptions-treemap","isParent":false,"returnType":"Boolean","defaults":"false","values":"[\"false\", \"true\"]","since":"4.1.0","description":"When enabled the user can click on a point which is a parent and zoom in on its children.","demo":"Enabled ","deprecated":false},{"name":"plotOptions-columnrange-dataLabels--allowOverlap","fullname":"plotOptions.columnrange.dataLabels.allowOverlap","title":"allowOverlap","parent":"plotOptions-columnrange-dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"series-dataLabels--allowOverlap","fullname":"series.dataLabels.allowOverlap","title":"allowOverlap","parent":"series-dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"series-dataLabels--allowOverlap","fullname":"series.dataLabels.allowOverlap","title":"allowOverlap","parent":"series-dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"series-dataLabels--allowOverlap","fullname":"series.dataLabels.allowOverlap","title":"allowOverlap","parent":"series-dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"plotOptions-bar-dataLabels--allowOverlap","fullname":"plotOptions.bar.dataLabels.allowOverlap","title":"allowOverlap","parent":"plotOptions-bar-dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"series-dataLabels--allowOverlap","fullname":"series.dataLabels.allowOverlap","title":"allowOverlap","parent":"series-dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"plotOptions-gauge-dataLabels--allowOverlap","fullname":"plotOptions.gauge.dataLabels.allowOverlap","title":"allowOverlap","parent":"plotOptions-gauge-dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"plotOptions-line-dataLabels--allowOverlap","fullname":"plotOptions.line.dataLabels.allowOverlap","title":"allowOverlap","parent":"plotOptions-line-dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"series-dataLabels--allowOverlap","fullname":"series.dataLabels.allowOverlap","title":"allowOverlap","parent":"series-dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"plotOptions-waterfall-dataLabels--allowOverlap","fullname":"plotOptions.waterfall.dataLabels.allowOverlap","title":"allowOverlap","parent":"plotOptions-waterfall-dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"series-dataLabels--allowOverlap","fullname":"series.dataLabels.allowOverlap","title":"allowOverlap","parent":"series-dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"series-dataLabels--allowOverlap","fullname":"series.dataLabels.allowOverlap","title":"allowOverlap","parent":"series-dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"plotOptions-treemap-dataLabels--allowOverlap","fullname":"plotOptions.treemap.dataLabels.allowOverlap","title":"allowOverlap","parent":"plotOptions-treemap-dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"series-dataLabels--allowOverlap","fullname":"series.dataLabels.allowOverlap","title":"allowOverlap","parent":"series-dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"series-dataLabels--allowOverlap","fullname":"series.dataLabels.allowOverlap","title":"allowOverlap","parent":"series-dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"plotOptions-column-dataLabels--allowOverlap","fullname":"plotOptions.column.dataLabels.allowOverlap","title":"allowOverlap","parent":"plotOptions-column-dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"series-dataLabels--allowOverlap","fullname":"series.dataLabels.allowOverlap","title":"allowOverlap","parent":"series-dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"series -dataLabels--allowOverlap","fullname":"series .dataLabels.allowOverlap","title":"allowOverlap","parent":"series -dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"series-dataLabels--allowOverlap","fullname":"series.dataLabels.allowOverlap","title":"allowOverlap","parent":"series-dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"plotOptions-area-dataLabels--allowOverlap","fullname":"plotOptions.area.dataLabels.allowOverlap","title":"allowOverlap","parent":"plotOptions-area-dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"plotOptions-solidgauge-dataLabels--allowOverlap","fullname":"plotOptions.solidgauge.dataLabels.allowOverlap","title":"allowOverlap","parent":"plotOptions-solidgauge-dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"plotOptions-arearange-dataLabels--allowOverlap","fullname":"plotOptions.arearange.dataLabels.allowOverlap","title":"allowOverlap","parent":"plotOptions-arearange-dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"series-dataLabels--allowOverlap","fullname":"series.dataLabels.allowOverlap","title":"allowOverlap","parent":"series-dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"plotOptions-bubble-dataLabels--allowOverlap","fullname":"plotOptions.bubble.dataLabels.allowOverlap","title":"allowOverlap","parent":"plotOptions-bubble-dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"plotOptions-spline-dataLabels--allowOverlap","fullname":"plotOptions.spline.dataLabels.allowOverlap","title":"allowOverlap","parent":"plotOptions-spline-dataLabels","isParent":false,"returnType":"Boolean","defaults":"false","since":"4.1.0","description":"Whether to allow data labels to overlap. To make the labels less sensitive for overlapping, the dataLabels.padding can be set to 0.","demo":"Don't allow overlap ","deprecated":false},{"name":"series-dataLabels--allowOverlap","fullname":"series.dataLabels.allowOverlap","title":"allowOverlap","parent":"series