summaryrefslogtreecommitdiffstats
path: root/WebContent/VAADIN
diff options
context:
space:
mode:
authorJouni Koivuviita <jouni@vaadin.com>2014-04-11 17:17:07 +0300
committerJouni Koivuviita <jouni@vaadin.com>2014-04-11 17:17:07 +0300
commitf50ad371bce71ecd235d0b26d19dbf6c3a4d157f (patch)
tree3c3d0961f06e97043c3ac4833dd986d24642752f /WebContent/VAADIN
parentf374bc72f5fe3535600551a14eb3df2d97889ba2 (diff)
downloadvaadin-framework-f50ad371bce71ecd235d0b26d19dbf6c3a4d157f.tar.gz
vaadin-framework-f50ad371bce71ecd235d0b26d19dbf6c3a4d157f.zip
Initial commit of Valo (from original repo at 60e2fa9ea119d24bb2421d3671a8cb87d6754e8b
Diffstat (limited to 'WebContent/VAADIN')
-rw-r--r--WebContent/VAADIN/themes/valo/_debug.scss306
-rw-r--r--WebContent/VAADIN/themes/valo/_valo.scss68
-rwxr-xr-xWebContent/VAADIN/themes/valo/components/_absolutelayout.scss22
-rw-r--r--WebContent/VAADIN/themes/valo/components/_accordion.scss75
-rw-r--r--WebContent/VAADIN/themes/valo/components/_all.scss212
-rw-r--r--WebContent/VAADIN/themes/valo/components/_button.scss262
-rw-r--r--WebContent/VAADIN/themes/valo/components/_calendar.scss546
-rw-r--r--WebContent/VAADIN/themes/valo/components/_checkbox.scss105
-rw-r--r--WebContent/VAADIN/themes/valo/components/_colorpicker.scss200
-rw-r--r--WebContent/VAADIN/themes/valo/components/_combobox.scss286
-rw-r--r--WebContent/VAADIN/themes/valo/components/_csslayout.scss52
-rw-r--r--WebContent/VAADIN/themes/valo/components/_customcomponent.scss3
-rw-r--r--WebContent/VAADIN/themes/valo/components/_customlayout.scss3
-rw-r--r--WebContent/VAADIN/themes/valo/components/_datefield.scss404
-rw-r--r--WebContent/VAADIN/themes/valo/components/_dragwrapper.scss5
-rw-r--r--WebContent/VAADIN/themes/valo/components/_escalator.scss109
-rw-r--r--WebContent/VAADIN/themes/valo/components/_form.scss15
-rw-r--r--WebContent/VAADIN/themes/valo/components/_formlayout.scss147
-rw-r--r--WebContent/VAADIN/themes/valo/components/_grid.scss5
-rw-r--r--WebContent/VAADIN/themes/valo/components/_gridlayout.scss48
-rw-r--r--WebContent/VAADIN/themes/valo/components/_label.scss120
-rw-r--r--WebContent/VAADIN/themes/valo/components/_link.scss46
-rw-r--r--WebContent/VAADIN/themes/valo/components/_loginform.scss3
-rw-r--r--WebContent/VAADIN/themes/valo/components/_menubar.scss222
-rw-r--r--WebContent/VAADIN/themes/valo/components/_nativebutton.scss5
-rw-r--r--WebContent/VAADIN/themes/valo/components/_nativeselect.scss36
-rw-r--r--WebContent/VAADIN/themes/valo/components/_optiongroup.scss41
-rw-r--r--WebContent/VAADIN/themes/valo/components/_orderedlayout.scss185
-rw-r--r--WebContent/VAADIN/themes/valo/components/_panel.scss119
-rw-r--r--WebContent/VAADIN/themes/valo/components/_popupview.scss3
-rw-r--r--WebContent/VAADIN/themes/valo/components/_progressbar.scss36
-rw-r--r--WebContent/VAADIN/themes/valo/components/_richtextarea.scss6
-rw-r--r--WebContent/VAADIN/themes/valo/components/_slider.scss147
-rw-r--r--WebContent/VAADIN/themes/valo/components/_splitpanel.scss177
-rw-r--r--WebContent/VAADIN/themes/valo/components/_table.scss496
-rw-r--r--WebContent/VAADIN/themes/valo/components/_tabsheet.scss335
-rw-r--r--WebContent/VAADIN/themes/valo/components/_textarea.scss29
-rw-r--r--WebContent/VAADIN/themes/valo/components/_textfield.scss219
-rw-r--r--WebContent/VAADIN/themes/valo/components/_tree.scss253
-rw-r--r--WebContent/VAADIN/themes/valo/components/_treetable.scss27
-rw-r--r--WebContent/VAADIN/themes/valo/components/_twincolselect.scss90
-rw-r--r--WebContent/VAADIN/themes/valo/components/_upload.scss5
-rw-r--r--WebContent/VAADIN/themes/valo/components/_widget.scss26
-rw-r--r--WebContent/VAADIN/themes/valo/components/_window.scss273
-rw-r--r--WebContent/VAADIN/themes/valo/components/img/colorpicker/gradient.pngbin0 -> 24998 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/components/img/colorpicker/gradient2.pngbin0 -> 14708 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/components/img/colorpicker/slider_hue_bg.pngbin0 -> 396 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/_fonts.scss41
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/font-awesome/fontawesome-webfont.eotbin0 -> 38205 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/font-awesome/fontawesome-webfont.svg414
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/font-awesome/fontawesome-webfont.ttfbin0 -> 80652 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/font-awesome/fontawesome-webfont.woffbin0 -> 44432 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/lato/_lato.scss155
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-black-webfont.eotbin0 -> 27865 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-black-webfont.ttfbin0 -> 57204 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-black-webfont.woffbin0 -> 31240 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-blackitalic-webfont.eotbin0 -> 26502 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-blackitalic-webfont.ttfbin0 -> 49292 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-blackitalic-webfont.woffbin0 -> 29036 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-bold-webfont.eotbin0 -> 28827 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-bold-webfont.ttfbin0 -> 58340 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-bold-webfont.woffbin0 -> 32396 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-bolditalic-webfont.eotbin0 -> 27447 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-bolditalic-webfont.ttfbin0 -> 52000 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-bolditalic-webfont.woffbin0 -> 30148 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-hairline-webfont.eotbin0 -> 26459 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-hairline-webfont.ttfbin0 -> 55640 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-hairline-webfont.woffbin0 -> 29808 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-hairlineitalic-webfont.eotbin0 -> 26208 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-hairlineitalic-webfont.ttfbin0 -> 48500 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-hairlineitalic-webfont.woffbin0 -> 28960 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-italic-webfont.eotbin0 -> 27194 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-italic-webfont.ttfbin0 -> 50284 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-italic-webfont.woffbin0 -> 29988 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-light-webfont.eotbin0 -> 27421 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-light-webfont.ttfbin0 -> 56688 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-light-webfont.woffbin0 -> 31020 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-lightitalic-webfont.eotbin0 -> 21397 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-lightitalic-webfont.ttfbin0 -> 40872 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-lightitalic-webfont.woffbin0 -> 24124 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-regular-webfont.eotbin0 -> 28224 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-regular-webfont.ttfbin0 -> 57524 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lato/lato-regular-webfont.woffbin0 -> 31808 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/lora/_lora.scss71
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lora/lora-bold-webfont.eotbin0 -> 56151 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lora/lora-bold-webfont.ttfbin0 -> 147968 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lora/lora-bold-webfont.woffbin0 -> 54236 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lora/lora-bolditalic-webfont.eotbin0 -> 63409 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lora/lora-bolditalic-webfont.ttfbin0 -> 167640 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lora/lora-bolditalic-webfont.woffbin0 -> 63716 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lora/lora-italic-webfont.eotbin0 -> 62668 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lora/lora-italic-webfont.ttfbin0 -> 163292 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lora/lora-italic-webfont.woffbin0 -> 63736 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lora/lora-regular-webfont.eotbin0 -> 51370 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lora/lora-regular-webfont.ttfbin0 -> 129368 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/lora/lora-regular-webfont.woffbin0 -> 50044 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Bold-webfont.eotbin0 -> 19544 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Bold-webfont.ttfbin0 -> 38452 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Bold-webfont.woffbin0 -> 22432 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-BoldItalic-webfont.eotbin0 -> 20133 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-BoldItalic-webfont.ttfbin0 -> 39076 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-BoldItalic-webfont.woffbin0 -> 23048 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-ExtraBold-webfont.eotbin0 -> 20855 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-ExtraBold-webfont.ttfbin0 -> 42024 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-ExtraBold-webfont.woffbin0 -> 23764 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-ExtraBoldItalic-webfont.eotbin0 -> 21576 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-ExtraBoldItalic-webfont.ttfbin0 -> 43420 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-ExtraBoldItalic-webfont.woffbin0 -> 24568 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Italic-webfont.eotbin0 -> 20265 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Italic-webfont.ttfbin0 -> 38412 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Italic-webfont.woffbin0 -> 23188 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Light-webfont.eotbin0 -> 19514 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Light-webfont.ttfbin0 -> 37336 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Light-webfont.woffbin0 -> 22248 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-LightItalic-webfont.eotbin0 -> 20535 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-LightItalic-webfont.ttfbin0 -> 39956 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-LightItalic-webfont.woffbin0 -> 23400 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Regular-webfont.eotbin0 -> 19836 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Regular-webfont.ttfbin0 -> 38232 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Regular-webfont.woffbin0 -> 22660 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Semibold-webfont.eotbin0 -> 20028 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Semibold-webfont.ttfbin0 -> 39476 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Semibold-webfont.woffbin0 -> 22908 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-SemiboldItalic-webfont.eotbin0 -> 20962 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-SemiboldItalic-webfont.ttfbin0 -> 40252 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-SemiboldItalic-webfont.woffbin0 -> 23764 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/open-sans/_open-sans.scss155
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Black-webfont.eotbin0 -> 20698 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Black-webfont.ttfbin0 -> 44652 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Black-webfont.woffbin0 -> 24484 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-BlackItalic-webfont.eotbin0 -> 23849 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-BlackItalic-webfont.ttfbin0 -> 51536 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-BlackItalic-webfont.woffbin0 -> 27892 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Bold-webfont.eotbin0 -> 20966 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Bold-webfont.ttfbin0 -> 45008 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Bold-webfont.woffbin0 -> 24808 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-BoldItalic-webfont.eotbin0 -> 24778 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-BoldItalic-webfont.ttfbin0 -> 53400 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-BoldItalic-webfont.woffbin0 -> 28824 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Italic-webfont.eotbin0 -> 25062 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Italic-webfont.ttfbin0 -> 54124 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Italic-webfont.woffbin0 -> 29080 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Light-webfont.eotbin0 -> 20940 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Light-webfont.ttfbin0 -> 45880 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Light-webfont.woffbin0 -> 24576 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-LightItalic-webfont.eotbin0 -> 25458 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-LightItalic-webfont.ttfbin0 -> 56008 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-LightItalic-webfont.woffbin0 -> 29480 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Medium-webfont.eotbin0 -> 21364 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Medium-webfont.ttfbin0 -> 45304 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Medium-webfont.woffbin0 -> 25048 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-MediumItalic-webfont.eotbin0 -> 24908 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-MediumItalic-webfont.ttfbin0 -> 53884 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-MediumItalic-webfont.woffbin0 -> 28860 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Regular-webfont.eotbin0 -> 21320 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Regular-webfont.ttfbin0 -> 45376 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Regular-webfont.woffbin0 -> 25020 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Thin-webfont.eotbin0 -> 21659 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Thin-webfont.ttfbin0 -> 47700 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Thin-webfont.woffbin0 -> 24944 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-ThinItalic-webfont.eotbin0 -> 26645 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-ThinItalic-webfont.ttfbin0 -> 60668 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/Roboto-ThinItalic-webfont.woffbin0 -> 30468 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Bold-webfont.eotbin0 -> 21457 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Bold-webfont.ttfbin0 -> 45452 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Bold-webfont.woffbin0 -> 25144 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-BoldItalic-webfont.eotbin0 -> 25204 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-BoldItalic-webfont.ttfbin0 -> 53660 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-BoldItalic-webfont.woffbin0 -> 29136 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Italic-webfont.eotbin0 -> 25217 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Italic-webfont.ttfbin0 -> 54528 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Italic-webfont.woffbin0 -> 29104 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Light-webfont.eotbin0 -> 21661 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Light-webfont.ttfbin0 -> 47108 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Light-webfont.woffbin0 -> 25204 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-LightItalic-webfont.eotbin0 -> 25892 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-LightItalic-webfont.ttfbin0 -> 56592 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-LightItalic-webfont.woffbin0 -> 29796 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Regular-webfont.eotbin0 -> 21712 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Regular-webfont.ttfbin0 -> 45668 bytes
-rwxr-xr-xWebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Regular-webfont.woffbin0 -> 25268 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/roboto/_roboto.scss155
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/_source-sans-pro.scss184
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-black.eotbin0 -> 52527 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-black.ttfbin0 -> 164124 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-black.woffbin0 -> 66212 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-blackit.eotbin0 -> 41651 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-blackit.ttfbin0 -> 130104 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-blackit.woffbin0 -> 53060 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-bold.eotbin0 -> 56552 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-bold.ttfbin0 -> 164908 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-bold.woffbin0 -> 69712 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-boldit.eotbin0 -> 44557 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-boldit.ttfbin0 -> 129276 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-boldit.woffbin0 -> 55480 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-extralight.eotbin0 -> 52188 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-extralight.ttfbin0 -> 168504 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-extralight.woffbin0 -> 65820 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-extralightit.eotbin0 -> 41503 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-extralightit.ttfbin0 -> 131120 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-extralightit.woffbin0 -> 53168 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-it.eotbin0 -> 44729 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-it.ttfbin0 -> 128480 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-it.woffbin0 -> 55424 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-light.eotbin0 -> 55523 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-light.ttfbin0 -> 168212 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-light.woffbin0 -> 68732 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-lightit.eotbin0 -> 44371 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-lightit.ttfbin0 -> 130644 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-lightit.woffbin0 -> 55548 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-regular.eotbin0 -> 55826 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-regular.ttfbin0 -> 165504 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-regular.woffbin0 -> 68836 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-semibold.eotbin0 -> 55348 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-semibold.ttfbin0 -> 165344 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-semibold.woffbin0 -> 68392 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-semiboldit.eotbin0 -> 43913 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-semiboldit.ttfbin0 -> 128408 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-semiboldit.woffbin0 -> 54852 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/optional/_common-stylenames.scss156
-rw-r--r--WebContent/VAADIN/themes/valo/shared/_contextmenu.scss15
-rw-r--r--WebContent/VAADIN/themes/valo/shared/_global.scss361
-rw-r--r--WebContent/VAADIN/themes/valo/shared/_loading-indicator.scss116
-rw-r--r--WebContent/VAADIN/themes/valo/shared/_notification.scss297
-rw-r--r--WebContent/VAADIN/themes/valo/shared/_overlay.scss214
-rw-r--r--WebContent/VAADIN/themes/valo/shared/_tooltip.scss67
-rw-r--r--WebContent/VAADIN/themes/valo/shared/_variables.scss140
-rw-r--r--WebContent/VAADIN/themes/valo/shared/img/spinner.gifbin0 -> 21836 bytes
-rw-r--r--WebContent/VAADIN/themes/valo/styles.scss5
-rw-r--r--WebContent/VAADIN/themes/valo/util/_anim.scss63
-rw-r--r--WebContent/VAADIN/themes/valo/util/_bevel-and-shadow.scss63
-rw-r--r--WebContent/VAADIN/themes/valo/util/_blend-modes.scss532
-rw-r--r--WebContent/VAADIN/themes/valo/util/_color.scss111
-rw-r--r--WebContent/VAADIN/themes/valo/util/_css3.scss28
-rw-r--r--WebContent/VAADIN/themes/valo/util/_gradient.scss31
-rw-r--r--WebContent/VAADIN/themes/valo/util/_lists.scss279
-rw-r--r--WebContent/VAADIN/themes/valo/util/_util.scss45
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/_bourbon-deprecated-upcoming.scss13
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/_bourbon.scss69
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/addons/_button.scss273
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/addons/_clearfix.scss23
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/addons/_directional-values.scss114
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/addons/_ellipsis.scss7
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/addons/_font-family.scss5
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/addons/_hide-text.scss10
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/addons/_html5-input-types.scss110
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/addons/_position.scss32
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/addons/_prefixer.scss45
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/addons/_rem.scss33
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/addons/_retina-image.scss31
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/addons/_size.scss44
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/addons/_timing-functions.scss32
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/addons/_triangle.scss45
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/css3/_animation.scss52
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/css3/_appearance.scss3
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/css3/_backface-visibility.scss6
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/css3/_background-image.scss48
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/css3/_background.scss103
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/css3/_border-image.scss56
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/css3/_border-radius.scss22
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/css3/_box-sizing.scss4
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/css3/_calc.scss4
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/css3/_columns.scss47
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/css3/_flex-box.scss321
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/css3/_font-face.scss23
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/css3/_hidpi-media-query.scss10
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/css3/_hyphens.scss4
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/css3/_image-rendering.scss13
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/css3/_inline-block.scss8
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/css3/_keyframes.scss38
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/css3/_linear-gradient.scss38
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/css3/_perspective.scss8
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/css3/_placeholder.scss29
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/css3/_radial-gradient.scss39
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/css3/_transform.scss15
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/css3/_transition.scss34
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/css3/_user-select.scss3
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/functions/_flex-grid.scss39
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/functions/_golden-ratio.scss3
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/functions/_grid-width.scss13
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/functions/_linear-gradient.scss13
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/functions/_modular-scale.scss66
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/functions/_px-to-em.scss13
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/functions/_radial-gradient.scss23
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/functions/_strip-units.scss5
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/functions/_tint-shade.scss9
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/functions/_transition-property-name.scss22
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/functions/_unpack.scss17
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/helpers/_gradient-positions-parser.scss13
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/helpers/_linear-positions-parser.scss61
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/helpers/_radial-arg-parser.scss69
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/helpers/_radial-positions-parser.scss18
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/helpers/_render-gradients.scss26
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/helpers/_shape-size-stripper.scss10
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/settings/_prefixer.scss6
-rw-r--r--WebContent/VAADIN/themes/valo/util/bourbon/settings/_px-to-em.scss1
296 files changed, 11711 insertions, 0 deletions
diff --git a/WebContent/VAADIN/themes/valo/_debug.scss b/WebContent/VAADIN/themes/valo/_debug.scss
new file mode 100644
index 0000000000..f32d03d872
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/_debug.scss
@@ -0,0 +1,306 @@
+// TODO remove this file when debug window styles come directly from GWT module
+$v-include-debug-styles: true !default;
+
+@if $v-include-debug-styles {
+
+ .v-debug-console {
+ background: #fff;
+ opacity: .9;
+ border: 1px solid #000;
+ font-family: sans-serif;
+ }
+ .v-debug-console-caption {
+ background: #000;
+ border-bottom: 1px solid grey;
+ color: white;
+ font-weight: bold;
+ }
+ .v-debug-console-content {
+ font-size: x-small;
+ overflow: auto;
+ white-space: pre;
+ }
+ .v-debug-console-content input {
+ font-size: xx-small;
+ }
+ // Debug style
+ .v-app .invalidlayout,
+ .v-app .invalidlayout * {
+ background: #f99 !important;
+ }
+
+ // NEW debug window
+ $mainbg: #fff;
+ $darkborder: #666;
+ $lightborder: #999;
+ $maincolor: #666;
+ $activecolor: #000;
+
+ @font-face {
+ font-family: 'vdebugfont';
+ src:url('fonts/font.eot');
+ src:url('fonts/font.eot?#iefix') format('embedded-opentype'),
+ url('fonts/font.woff') format('woff'),
+ url('fonts/font.ttf') format('truetype'),
+ url('fonts/font.svg#fontawesome') format('svg');
+ font-weight: normal;
+ font-style: normal;
+ }
+
+ .v-debugwindow [data-icon]:before,
+ .v-debugwindow-menu [data-icon]:before {
+ font-family: 'vdebugfont';
+ content: attr(data-icon);
+ speak: none;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ font-style: normal;
+ vertical-align: text-bottom;
+ }
+
+ .v-debugwindow {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+
+ -moz-opacity: 0.8;
+ -webkit-opacity: 0.8;
+ opacity: 0.8;
+ color: $maincolor;
+
+ font-family: Arial, Helvetica, Tahoma, Verdana, sans-serif;
+ font-size: 13px;
+
+ .v-debugwindow-handle {
+ position: absolute;
+ bottom: 0;
+ background-color: #fff;
+ -moz-opacity: 0;
+ -webkit-opacity: 0;
+ opacity: 0;
+ z-index: 1000;
+ }
+ .v-debugwindow-handle-sw {
+ width: 7px;
+ height: 7px;
+ }
+ .v-debugwindow-handle-se {
+ right: 0;
+ width: 14px;
+ height: 14px;
+ }
+ }
+ .v-debugwindow:hover {
+ -moz-opacity: 1;
+ -webkit-opacity: 1;
+ opacity: 1;
+ }
+ .v-debugwindow * {
+ font-size: inherit !important;
+ }
+
+ .v-debugwindow-size0, .v-debugwindow-menu .v-debugwindow-button-size0 {
+ font-size: 10px;
+ }
+ .v-debugwindow-size1, .v-debugwindow-menu .v-debugwindow-button-size1 {
+ font-size: 13px;
+ }
+ .v-debugwindow-size2, .v-debugwindow-menu .v-debugwindow-button-size2 {
+ font-size: 16px;
+ }
+
+ .v-debugwindow-head {
+ text-align: right;
+ background-color: transparent;
+ }
+
+ .v-debugwindow-tabs {
+ display: inline-block;
+ background-color: $mainbg;
+ }
+
+ .v-debugwindow-tab, .v-debugwindow-controls > * {
+ width: 2em;
+ border: none;
+ margin: 0;
+ line-height: 1.5em;
+ background-color: $mainbg;
+ color: $maincolor;
+ }
+ .v-debugwindow-tab {
+ position: relative;
+ top: 1px;
+ border-width: 1px 0 1px 1px;
+ border-style: solid;
+ border-color: $darkborder;
+ border-radius: 2px 2px 0 0;
+ }
+ .v-debugwindow-tab-selected {
+ color: $maincolor;
+ background-color: $mainbg;
+ border-bottom: 1px solid #fff;
+ }
+
+ .v-debugwindow-controls {
+ position: relative;
+ top: 1px;
+ display: inline-block;
+ background-color: $mainbg;
+ border: 1px solid $darkborder;
+ border-radius: 2px 2px 0 0;
+ }
+
+ .v-debugwindow-section-head {
+ text-align: left;
+ background-color: $mainbg;
+ border: 1px solid $darkborder;
+ border-bottom: 1px solid $lightborder;
+
+ box-shadow: 0px 0px 7px 0 rgba(55,55,55,0.6);
+
+ min-height: 1.5em;
+ line-height: 1.5em;
+
+ padding-left: 5px;
+ }
+
+ .v-debugwindow-button {
+ border: none;
+ background-color: transparent;
+ color: $maincolor;
+ }
+ .v-debugwindow-button:hover {
+ color: $activecolor;
+ text-decoration: underline;
+ }
+ .v-debugwindow-button-active {
+ color: $maincolor;
+ box-shadow: 1px 1px 3px 0 inset;
+ }
+
+ .v-debugwindow-content {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+
+ box-shadow: 0px 0px 7px 0 rgba(55,55,55,0.6);
+
+ background-color: $mainbg;
+ border: 1px solid $darkborder;
+ border-top: none;
+ }
+
+ .v-debugwindow-menu {
+ background-color: $mainbg;
+ padding: 4px;
+ border: 1px solid $lightborder;
+ border-top: none;
+
+ border-radius: 0 0 5px 5px;
+
+ box-shadow: 0px 0px 7px 0 rgba(55,55,55,0.6);
+ }
+ .v-debugwindow-menu-content {
+ min-width: 100px;
+ }
+ .v-debugwindow-menu-content .v-debugwindow-button {
+ line-height: 22px;
+ }
+ .v-debugwindow-menu-content > div > .v-debugwindow-button {
+ width: 33%;
+ }
+
+ // GLOBAL color every other row
+ .v-debugwindow-row {
+ display: table-row;
+ }
+ .v-debugwindow-row:nth-child(odd) {
+ background-color: rgba(0, 61, 255, 0.11);
+ }
+ .v-debugwindow-row > span {
+ display: table-cell;
+ padding: 4px;
+ }
+
+ .v-debugwindow-row.SEVERE {
+ color: #550000;
+ background-color: #FFC5C5;
+ }
+ .v-debugwindow-row.WARNING {
+ background-color: #FFFF99;
+ }
+ .v-debugwindow-row.FINE {
+ color: lighten($maincolor, 5%);
+ }
+ .v-debugwindow-row.FINER {
+ color: lighten($maincolor, 10%);
+ }
+ .v-debugwindow-row.FINEST {
+ color: lighten($maincolor, 15%);
+ }
+ .v-debugwindow-row > span.caption {
+ color: #999;
+ text-align: right;
+ white-space: nowrap;
+ }
+ .v-debugwindow-row > span.value {
+ width: 100%;
+ }
+
+ .v-debugwindow-selector > span.value {
+ width: 100%;
+ }
+
+ .v-debugwindow-selector :hover {
+ background: rgba(255,32,32,0.5);
+ }
+
+ // LOG
+ .v-debugwindow-log {
+ font-family: monospace;
+
+ .v-debugwindow-reset {
+ color: #fff;
+ background-color: #4C92ED;
+ padding: 4px;
+ }
+
+ .v-debugwindow-time {
+ text-align: right;
+ color: #999;
+ }
+ .v-debugwindow-message {
+ white-space: nowrap;
+ width: 100%
+ }
+ .v-debugwindow-message:hover {
+ white-space: normal;
+ word-wrap: break-word;
+ }
+ .v-debugwindow-message em {
+ background-color: #C4E6F8;
+ }
+ }
+
+ // HIERARCHY
+ .v-debugwindow-hierarchy {
+ .v-debugwindow-info {
+ padding: 1em;
+ }
+ }
+
+
+ // NETWORK
+ .v-debugwindow-network {
+ .v-debugwindow-row {
+ display: block !important;
+ }
+ .v-debugwindow-row > span {
+ display: inline;
+ }
+ }
+
+}
diff --git a/WebContent/VAADIN/themes/valo/_valo.scss b/WebContent/VAADIN/themes/valo/_valo.scss
new file mode 100644
index 0000000000..41bed8cd5f
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/_valo.scss
@@ -0,0 +1,68 @@
+// TODO remove once debug window styles are bundled to the GWT module
+@import "_debug.scss";
+
+
+// Import global variables
+@import "shared/variables";
+
+
+// Import all utility mixins and functions
+@import "util/lists";
+@import "util/css3";
+@import "util/bourbon/bourbon";
+@import "util/color";
+@import "util/anim";
+@import "util/gradient";
+@import "util/bevel-and-shadow";
+@import "util/util";
+
+
+// Import custom font mixins
+@import "fonts/fonts";
+
+
+// Include custom font faces if they are used by the theme
+@if contains($v-font-family, "Open Sans") {
+ @include font-open-sans($light: true, $regular: true, $medium: true);
+}
+@if contains($v-font-family, "Source Sans Pro") {
+ @include font-source-sans-pro($light: true, $regular: true, $medium: true);
+}
+@if contains($v-font-family, "Roboto") {
+ @include font-roboto($light: true, $regular: true, $medium: true);
+}
+@if contains($v-font-family, "Lato") {
+ @include font-lato($light: true, $regular: true, $bold: true);
+}
+@if contains($v-font-family, "Lora") {
+ @include font-lora($regular: true, $bold: true);
+}
+
+
+
+// Import global mixins
+@import "shared/global";
+
+
+// Import component specific mixins
+@import "components/all";
+
+
+// Import common additional style names for components (optional)
+@import "optional/common-stylenames";
+
+
+// Include global styles directly, without a theme name prefix (this is done only once)
+@include v-valo-global;
+
+
+// The main theme mixin
+@mixin v-valo {
+ @include v-valo-common;
+ @include v-valo-components;
+ @include v-valo-notification;
+
+ @if $v-valo-include-common-stylenames {
+ @include v-valo-common-stylenames;
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/components/_absolutelayout.scss b/WebContent/VAADIN/themes/valo/components/_absolutelayout.scss
new file mode 100755
index 0000000000..68ab9a3cf0
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_absolutelayout.scss
@@ -0,0 +1,22 @@
+@mixin v-valo-absolutelayout ($primary-stylename: v-absolutelayout) {
+
+ .#{$primary-stylename}-wrapper {
+ position: absolute;
+ }
+
+ .#{$primary-stylename}-margin,
+ .#{$primary-stylename}-canvas {
+ @include box-sizing(border-box);
+ }
+
+ .#{$primary-stylename}.v-has-height > div,
+ .#{$primary-stylename}.v-has-height .#{$primary-stylename}-margin {
+ height: 100%;
+ }
+
+ .#{$primary-stylename}.v-has-height > div,
+ .#{$primary-stylename}.v-has-width .#{$primary-stylename}-margin {
+ width: 100%;
+ }
+
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/components/_accordion.scss b/WebContent/VAADIN/themes/valo/components/_accordion.scss
new file mode 100644
index 0000000000..6c624d0968
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_accordion.scss
@@ -0,0 +1,75 @@
+$v-accordion-content-shadow-style: join(inset, $v-shadow-style) !default;
+$v-accordion-content-shadow-depth: $v-shadow-depth/2 !default;
+
+
+@mixin v-valo-accordion ($primary-stylename: v-accordion) {
+ .#{$primary-stylename} {
+ @include v-valo-panel-style;
+ @include v-valo-gradient($color: $v-app-background-color, $depth: $v-gradient-depth/2);
+ overflow: hidden;
+ }
+
+ .#{$primary-stylename}-item {
+ position: relative;
+ overflow: hidden;
+
+ @if $v-border-radius > 0 {
+ $_br: $v-border-radius - $v-border-width;
+ &:first-child {
+ border-radius: $_br $_br 0 0;
+ }
+ &:last-child {
+ border-radius: 0 0 $_br $_br;
+ }
+ }
+ }
+
+ .#{$primary-stylename}-item-caption .v-caption {
+ @include v-valo-panel-caption-style;
+ display: block;
+ background: transparent;
+ border-bottom-color: v-valo-panel-border-color($background-color: v-valo-panel-background-color());
+ cursor: pointer;
+ @include user-select(none);;
+
+ &:hover:before,
+ &:active:before {
+ content: "";
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ }
+
+ @if $v-hover-styles-enabled {
+ &:hover:before {
+ @include v-valo-button-hover-style;
+ border: none;
+ }
+ }
+
+ &:active:before {
+ @include v-valo-button-active-style;
+ }
+ }
+
+ .#{$primary-stylename}-item:last-child:not(.#{$primary-stylename}-item-open) .v-caption {
+ border-bottom: none;
+ }
+
+ .#{$primary-stylename}-item-content {
+ position: absolute;
+ width: 100%;
+ bottom: 0;
+ right: 0;
+ box-shadow: v-valo-shadow($shadow-style: $v-accordion-content-shadow-style, $shadow-depth: $v-accordion-content-shadow-depth);
+ background-color: v-valo-panel-background-color();
+ @include box-sizing(border-box);
+ @include v-valo-panel-adjust-content-margins;
+ }
+
+ .#{$primary-stylename}-item-open + .#{$primary-stylename}-item {
+ border-top: $v-panel-border-width solid v-valo-panel-border-color($background-color: v-valo-panel-background-color());
+ }
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/components/_all.scss b/WebContent/VAADIN/themes/valo/components/_all.scss
new file mode 100644
index 0000000000..f8db4db5d5
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_all.scss
@@ -0,0 +1,212 @@
+@import "absolutelayout";
+@import "accordion";
+@import "button";
+@import "calendar";
+@import "checkbox";
+@import "colorpicker";
+@import "combobox";
+@import "csslayout";
+@import "customcomponent";
+@import "customlayout";
+@import "datefield";
+@import "dragwrapper";
+@import "form";
+@import "formlayout";
+@import "grid";
+@import "gridlayout";
+@import "label";
+@import "link";
+@import "loginform";
+@import "menubar";
+@import "nativebutton";
+@import "nativeselect";
+@import "optiongroup";
+@import "orderedlayout";
+@import "panel";
+@import "popupview";
+@import "progressbar";
+@import "richtextarea";
+@import "slider";
+@import "splitpanel";
+@import "table";
+@import "tabsheet";
+@import "textfield";
+@import "textarea";
+@import "tree";
+@import "treetable";
+@import "twincolselect";
+@import "upload";
+@import "widget";
+@import "window";
+@import "dragwrapper";
+
+
+@mixin v-valo-components {
+
+ @if v-is-included(absolutelayout) {
+ @include v-valo-absolutelayout;
+ }
+
+ @if v-is-included(orderedlayout) {
+ @include v-valo-orderedlayout;
+ }
+
+ @if v-is-included(button) {
+ @include v-valo-button;
+ }
+
+ @if v-is-included(checkbox) or v-is-included(optiongroup) {
+ @include v-valo-checkbox;
+ }
+
+ @if v-is-included(combobox) {
+ @include v-valo-combobox;
+ }
+
+ @if v-is-included(csslayout) {
+ @include v-valo-csslayout;
+ }
+
+ @if v-is-included(customcomponent) {
+ @include v-valo-customcomponent;
+ }
+
+ @if v-is-included(customlayout) {
+ @include v-valo-customlayout;
+ }
+
+ @if v-is-included(form) {
+ @include v-valo-form;
+ }
+
+ @if v-is-included(formlayout) {
+ @include v-valo-formlayout;
+ }
+
+ @if v-is-included(grid) {
+ @include v-valo-grid(v-escalator);
+ }
+
+ @if v-is-included(textfield) {
+ @include v-valo-textfield;
+ }
+
+ @if v-is-included(textarea) {
+ @include v-valo-textarea;
+ }
+
+ @if v-is-included(datefield) {
+ @include v-valo-datefield;
+ @include v-valo-inline-datefield;
+ }
+
+ @if v-is-included(orderedlayout) {
+ @include v-valo-orderedlayout;
+ }
+
+ @if v-is-included(gridlayout) {
+ @include v-valo-gridlayout;
+ }
+
+ @if v-is-included(menubar) {
+ @include v-valo-menubar;
+ }
+
+ @if v-is-included(optiongroup) {
+ @include v-valo-optiongroup;
+ }
+
+ @if v-is-included(link) {
+ @include v-valo-link;
+ }
+
+ @if v-is-included(window) {
+ @include v-valo-window;
+ }
+
+ @if v-is-included(tree) {
+ @include v-valo-tree;
+ }
+
+ @if v-is-included(table) or v-is-included(treetable) {
+ @include v-valo-table;
+ }
+
+ @if v-is-included(treetable) {
+ @include v-valo-treetable;
+ }
+
+ @if v-is-included(splitpanel) {
+ @include v-valo-splitpanel;
+ }
+
+ @if v-is-included(progressbar) or v-is-included(progressindicator) {
+ @include v-valo-progressbar;
+ @include v-valo-progressbar(v-progressindicator);
+ }
+
+ @if v-is-included(slider) {
+ @include v-valo-slider;
+ }
+
+ @if v-is-included(tabsheet) {
+ @include v-valo-tabsheet;
+ }
+
+ @if v-is-included(colorpicker) {
+ @include v-valo-colorpicker;
+ }
+
+ @if v-is-included(panel) {
+ @include v-valo-panel;
+ }
+
+ @if v-is-included(accordion) {
+ @include v-valo-accordion;
+ }
+
+ @if v-is-included(twincolselect) {
+ @include v-valo-twincolselect;
+ }
+
+ @if v-is-included(nativeselect) {
+ @include v-valo-nativeselect;
+ }
+
+ @if v-is-included(calendar) {
+ @include v-valo-calendar;
+ }
+
+ @if v-is-included(label) {
+ @include v-valo-label;
+ }
+
+ @if v-is-included(dragwrapper) {
+ @include v-valo-dragwrapper;
+ }
+
+ @if v-is-included(loginform) {
+ @include v-valo-loginform;
+ }
+
+ @if v-is-included(nativebutton) {
+ @include v-valo-nativebutton;
+ }
+
+ @if v-is-included(nativeselect) {
+ @include v-valo-nativeselect;
+ }
+
+ @if v-is-included(popupview) {
+ @include v-valo-popupview;
+ }
+
+ @if v-is-included(richtextarea) {
+ @include v-valo-richtextarea;
+ }
+
+ @if v-is-included(upload) {
+ @include v-valo-upload;
+ }
+
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/components/_button.scss b/WebContent/VAADIN/themes/valo/components/_button.scss
new file mode 100644
index 0000000000..878203b878
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_button.scss
@@ -0,0 +1,262 @@
+// @category Button
+
+// Values default to global values (evaluated when the mixins are called)
+$v-button-background-color: null !default;
+$v-button-bevel-style: null !default;
+$v-button-bevel-depth: null !default;
+$v-button-gradient-style: null !default;
+$v-button-gradient-depth: null !default;
+$v-button-shadow-style: null !default;
+$v-button-shadow-depth: null !default;
+$v-button-border-radius: $v-border-radius !default;
+$v-button-unit-size: null !default;
+
+$v-button-font-weight: max(400, $v-font-weight + 100) !default;
+$v-button-cursor: pointer !default;
+$v-button-hover-style-enabled: $v-hover-styles-enabled !default;
+$v-button-border-width: $v-border-width !default;
+$v-button-disabled-opacity: $v-disabled-opacity !default;
+
+
+
+// The main mixin for Valo buttons
+// @mixin v-valo-button
+// @param $primary-stylename {String} the primary stylename to use for the output. Defaults to <code>v-button</code>
+@mixin v-valo-button ($primary-stylename: v-button) {
+ .#{$primary-stylename} {
+ @include v-valo-button-common-properties;
+ @include v-valo-button-style;
+ }
+}
+
+
+
+
+
+@mixin v-valo-button-common-properties {
+ @include v-valo-tappable;
+ cursor: $v-button-cursor;
+ font-weight: $v-button-font-weight;
+ position: relative;
+ text-align: center;
+ white-space: nowrap;
+
+ // Generated element for :hover, :focus and :active styles
+ &:after {
+ content: "";
+ position: absolute;
+ top: -$v-button-border-width;
+ right: -$v-button-border-width;
+ bottom: -$v-button-border-width;
+ left: -$v-button-border-width;
+ border-radius: inherit;
+ border: inherit;
+ border-width: 0;
+ @if $v-animations-enabled {
+ @include transition(box-shadow 180ms, border 180ms);
+ }
+ }
+
+ &.v-disabled {
+ @include opacity($v-button-disabled-opacity);
+
+ &:after {
+ display: none;
+ }
+ }
+
+ @include v-valo-button-vertical-centering;
+}
+
+@mixin v-valo-button-vertical-centering {
+ // Vertical centering of icon and caption, independent of the height of the button
+ @include vertical-align-guide($to-align: div, $pseudo-element: before);
+
+ // WebKit handles line-heights and vertical-alignments somewhat differently, so we need to adjust
+ .v-sa &:before {
+ height: 110%;
+ }
+
+ // Firefox needs a bit of adjusting as well
+ .v-ff &:before {
+ height: 105%;
+ }
+
+ // ...and so does IE. Who knew?
+ .v-ie &:before {
+ margin-top: 4px;
+ }
+}
+
+
+
+
+
+@mixin v-valo-button-size ($unit-size, $border-radius) {
+ height: $unit-size;
+
+ $padding-width: ceil($unit-size/2.4);
+ $padding-width: $padding-width + ceil($border-radius/3);
+ padding: 0 $padding-width;
+
+ .v-icon {
+ margin: 0 ceil($padding-width/-5);
+ }
+
+ .v-icon + span:not(:empty) {
+ margin-left: ceil($padding-width/1.5);
+ }
+}
+
+
+
+@function v-valo-button-border-color ($bevel-style: $v-bevel-style, $bevel-depth: $v-bevel-depth,
+ $background-color: $v-button-background-color) {
+
+ $background-color: $background-color or $v-app-background-color;
+ $border-color: if(color-luminance($background-color) < color-luminance($v-app-background-color), $background-color, $v-app-background-color);
+ $border-color: blend-darken($border-color, scale-color($border-color, $lightness: max(-50%, -$bevel-depth/2)));
+ $border-color: scale-color($border-color, $saturation: -$bevel-depth/2);
+ @if contains($bevel-style, shade, true) {
+ $border-color: $border-color $border-color blend-multiply(transparentize(#000, max(0.8, 1-$bevel-depth/200%)), $border-color);
+ }
+
+ @return $border-color;
+}
+
+
+
+
+@mixin v-valo-button-style ($gradient-style: $v-button-gradient-style, $gradient-depth: $v-button-gradient-depth,
+ $bevel-style: $v-button-bevel-style, $bevel-depth: $v-button-bevel-depth,
+ $unit-size: $v-button-unit-size, $border-radius: $v-button-border-radius,
+ $background-color: $v-button-background-color) {
+
+ // Set up variable defaults
+ $background-color: $background-color or $v-app-background-color;
+ $gradient-style: $gradient-style or $v-gradient-style;
+ $gradient-depth: $gradient-depth or $v-gradient-depth;
+ $bevel-style: $bevel-style or $v-bevel-style;
+ $bevel-depth: $bevel-depth or $v-bevel-depth;
+ $unit-size: $unit-size or $v-unit-size;
+
+ @include v-valo-button-size($unit-size, $border-radius);
+
+ border-radius: $border-radius;
+ border: $v-button-border-width solid;
+ border-color: v-valo-button-border-color($bevel-style, $bevel-depth, $background-color);
+
+ @include v-valo-gradient($background-color, $gradient-style, $gradient-depth);
+ color: v-valo-font-color($background-color, 0.9);
+
+ box-shadow: v-valo-button-box-shadow($background-color, $bevel-style, $bevel-depth, $gradient-style, $gradient-depth);
+ text-shadow: v-valo-button-text-shadow($background-color, $bevel-depth);
+
+ @if $v-button-hover-style-enabled {
+ &:hover:after {
+ @include v-valo-button-hover-style($background-color: $background-color);
+ }
+ }
+
+ &:focus {
+ outline: none;
+ &:after {
+ @include v-valo-button-focus-style($background-color: $background-color);
+ }
+ }
+
+ &:active:after,
+ &.v-pressed:after {
+ @include v-valo-button-active-style($background-color: $background-color);
+ }
+
+}
+
+
+@mixin v-valo-button-focus-style ($background-color: $v-app-background-color, $border-fallback: inherit) {
+ $focus-color: v-valo-focus-color();
+
+ @if color-luminance($focus-color) + 50 < color-luminance($background-color) {
+ border: $v-button-border-width solid $focus-color;
+ } @else {
+ border: $border-fallback or v-valo-button-border-color($background-color: $background-color);
+ }
+
+ box-shadow: v-valo-focus-box-shadow($color: $focus-color);
+
+ @if $v-animations-enabled {
+ @include transition(none);
+ }
+}
+
+
+
+@mixin v-valo-button-active-style ($background-color: $v-app-background-color) {
+ $bg: scale-color($background-color, $lightness: -50%, $saturation: saturation($v-app-background-color));
+ background-color: rgba($bg, .1);
+
+ .v-ie8 & {
+ background-color: $bg;
+ filter: alpha(opacity=10);
+ }
+}
+
+
+
+@mixin v-valo-button-hover-style ($background-color: $v-app-background-color) {
+ $bg: lighten($background-color, 15%);
+ background-color: rgba($bg, .1);
+ border: inherit;
+
+ @if $v-animations-enabled {
+ @include transition(none);
+ }
+
+ .v-ie8 & {
+ background-color: $bg;
+ filter: alpha(opacity=20);
+ }
+}
+
+
+
+
+@mixin v-valo-button-borderless-style {
+ border: none;
+ box-shadow: none;
+ background: transparent;
+ color: inherit;
+}
+
+
+@mixin v-valo-button-icon-align-right-style ($primary-stylename: v-button) {
+ .#{$primary-stylename}-wrap {
+ display: inline-block;
+ }
+
+ .v-icon {
+ float: right;
+ $padding-width: ceil($v-unit-size/2.4);
+ margin-left: $padding-width + ceil($padding-width/-5);
+
+ + span:not(:empty) {
+ margin-left: 0;
+ }
+ }
+}
+
+
+
+@function v-valo-button-box-shadow($background-color, $bevel-style: $v-bevel-style, $bevel-depth: $v-bevel-depth, $gradient-style: $v-gradient-style, $gradient-depth: $v-gradient-depth) {
+ @return v-valo-bevel($background-color, $bevel-style, $bevel-depth, $gradient-style, $gradient-depth), v-valo-shadow();
+}
+
+
+
+@function v-valo-button-text-shadow($background-color, $bevel-depth: $v-bevel-depth) {
+ @if is-dark-color($background-color) {
+ @return 0 -1px 0 transparentize(darken($background-color, $bevel-depth), 1-($bevel-depth/100%));
+ } @else {
+ @return 0 1px 0 transparentize(lighten($background-color, $bevel-depth), 1-($bevel-depth/100%));
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/components/_calendar.scss b/WebContent/VAADIN/themes/valo/components/_calendar.scss
new file mode 100644
index 0000000000..6429a2f163
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_calendar.scss
@@ -0,0 +1,546 @@
+$v-calendar-event-colors: dodgerblue, seagreen, darkgoldenrod, firebrick, slateblue !default;
+
+
+@mixin v-valo-calendar-global ($primary-stylename: v-calendar) {
+ .#{$primary-stylename}-month-day-scrollable {
+ overflow-y: scroll;
+ }
+
+ .#{$primary-stylename}-week-wrapper {
+ position: relative;
+ overflow: hidden;
+ }
+
+ .#{$primary-stylename}-current-time {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ height: 1px;
+ background: red;
+ z-index: 2;
+ }
+
+ .#{$primary-stylename}-event-resizetop,
+ .#{$primary-stylename}-event-resizebottom {
+ position: absolute;
+ height: 5%;
+ min-height: 3px;
+ width: 100%;
+ z-index: 1;
+ }
+
+ .#{$primary-stylename}-event-resizetop {
+ cursor: row-resize;
+ top: 0;
+ }
+
+ .#{$primary-stylename}-event-resizebottom {
+ cursor: row-resize;
+ bottom: 0;
+ }
+
+
+ // What a truckload of magic numbers!
+ // TODO Try to find out what these actually do, and how to make them dissappear
+
+ .#{$primary-stylename}-header-month td:first-child {
+ padding-left: 20px;
+ // Same as VCalendar.MONTHLY_WEEKTOOLBARWIDTH - .#{$primary-stylename}-week-numbers border
+ }
+
+ .#{$primary-stylename}-week-numbers {
+ //border-right: 1px solid;
+ }
+
+ .#{$primary-stylename}-month-sizedheight .#{$primary-stylename}-month-day {
+ height: 100px;
+ }
+
+ .#{$primary-stylename}-month-sizedwidth .#{$primary-stylename}-month-day {
+ width: 100px;
+ }
+
+ .#{$primary-stylename}-header-month-Hsized .#{$primary-stylename}-header-day {
+ width: 101px;
+ }
+
+ .#{$primary-stylename}-header-month-Hsized td:first-child {
+ padding-left: 21px;
+ }
+
+ .#{$primary-stylename}-header-day-Hsized {
+ width: 200px;
+ }
+
+ .#{$primary-stylename}-week-numbers-Vsized .#{$primary-stylename}-week-number {
+ height: 100px;
+ line-height: 100px;
+ }
+
+ .#{$primary-stylename}-week-wrapper-Vsized {
+ height: 400px;
+ overflow-x: hidden !important;
+ }
+
+ .#{$primary-stylename}-times-Vsized .#{$primary-stylename}-time {
+ height: 38px;
+ }
+
+ .#{$primary-stylename}-times-Hsized .#{$primary-stylename}-time {
+ width: 42px;
+ }
+
+ .#{$primary-stylename}-day-times-Vsized .v-datecellslot,
+ .#{$primary-stylename}-day-times-Vsized .v-datecellslot-even {
+ height: 18px;
+ }
+
+ .#{$primary-stylename}-day-times-Hsized,
+ .#{$primary-stylename}-day-times-Hsized .v-datecellslot,
+ .#{$primary-stylename}-day-times-Hsized .v-datecellslot-even {
+ width: 200px;
+ }
+}
+
+
+
+
+
+
+
+
+@mixin v-valo-calendar ($primary-stylename: v-calendar) {
+
+
+ .#{$primary-stylename}-header-day {
+ font-weight: $v-font-weight + 100;
+ text-align: center;
+ padding: round($v-unit-size/5) 0;
+ }
+
+ // Prev/next week buttons
+ .#{$primary-stylename}-header-week .#{$primary-stylename}-back,
+ .#{$primary-stylename}-header-week .#{$primary-stylename}-next {
+ @include appearance(none);
+ background: transparent;
+ border: none;
+ padding: 0;
+ margin: 0;
+ cursor: pointer;
+ outline: none;
+ color: inherit;
+ @include opacity(.5);
+
+ &:focus {
+ outline: none;
+ }
+
+ &:hover {
+ @include opacity(1);
+ }
+
+ &:active {
+ @include opacity(.5);
+ }
+ }
+
+ .#{$primary-stylename}-header-week .#{$primary-stylename}-back {
+ @include v-valo-calendar-prev-style;
+ }
+
+ .#{$primary-stylename}-header-week .#{$primary-stylename}-next {
+ @include v-valo-calendar-next-style;
+ }
+
+
+
+
+
+
+
+
+ // Month grid
+
+ .#{$primary-stylename}-month {
+ outline: none;
+ overflow: hidden;
+
+ td {
+ vertical-align: top;
+ }
+ }
+
+ .#{$primary-stylename}-week-number {
+ cursor: pointer;
+ width: 20px; // Same as VCalendar.MONTHLY_WEEKTOOLBARWIDTH
+ text-align: center;
+ font-size: 0.8em;
+ @include opacity(.5);
+
+ &:hover {
+ @include opacity(1);
+ }
+ }
+
+ .#{$primary-stylename}-month-day {
+ outline: none;
+ @include box-sizing(border-box);
+ line-height: 1.2;
+ }
+
+ .#{$primary-stylename}-month tr:not(:first-child) .#{$primary-stylename}-month-day {
+ //width: auto !important;
+ }
+
+ .#{$primary-stylename}-bottom-spacer,
+ .#{$primary-stylename}-spacer,
+ .#{$primary-stylename}-bottom-spacer-empty {
+ height: round($v-font-size * 1.2);
+ margin-bottom: round($v-unit-size/12);
+ }
+
+ .#{$primary-stylename}-bottom-spacer {
+ font-size: 0.8em;
+ padding: 0 round($v-unit-size/8);
+ cursor: pointer;
+
+ &:hover {
+ color: v-valo-focus-color();
+ }
+ }
+
+ .#{$primary-stylename}-day-number {
+ line-height: round($v-unit-size/1.5);
+ font-size: $v-font-size;
+ text-align: right;
+ margin: 0 round($v-unit-size/8);
+ white-space: nowrap;
+ border-top: 1px solid darken($v-app-background-color, 3%);
+ cursor: pointer;
+
+ &:hover {
+ color: v-valo-focus-color();
+ }
+ }
+
+ .#{$primary-stylename}-month-day-today {
+ background: blend-normal(rgba(v-valo-focus-color(), .05), $v-app-background-color);
+
+ .#{$primary-stylename}-day-number {
+ font-weight: $v-font-weight + 100;
+ color: v-valo-focus-color();
+ border-top: 2px solid v-valo-focus-color();
+ line-height: round($v-unit-size/1.5) - 1px;
+ margin: 0;
+ padding: 0 round($v-unit-size/8);
+ }
+ }
+
+ .#{$primary-stylename}-month-day-selected {
+ background-color: blend-normal(rgba(v-valo-selection-color(), .1), $v-app-background-color);
+ }
+
+ .#{$primary-stylename}-month-day-dragemphasis {
+ background-color: #a8a8a8;
+ }
+
+ .#{$primary-stylename}-month-day-scrollable {
+ overflow-y: scroll;
+ }
+
+
+
+
+
+
+
+
+
+
+
+ // Week/day view
+
+ $_times-column-width: 50px; // Seems to be a fixed number
+
+ .#{$primary-stylename}-weekly-longevents {
+ margin-left: $_times-column-width; // Seems to be a fixed number
+ border-bottom: round($v-unit-size/12) solid darken($v-app-background-color, 10%);
+
+ .#{$primary-stylename}-event-all-day {
+ height: round($v-font-size * 0.85 * 1.6);
+ line-height: 1.6;
+ margin-bottom: round($v-unit-size/12);
+ }
+ }
+
+ .#{$primary-stylename}-header-week td {
+ vertical-align: middle !important;
+
+ //&:first-child {
+ // width: round($v-unit-size*1.5);
+ //}
+ }
+
+ .#{$primary-stylename}-header-week .#{$primary-stylename}-header-day {
+ cursor: pointer;
+ }
+
+ .#{$primary-stylename}-times {
+ width: $_times-column-width;
+ font-size: 0.77em;
+ line-height: 1;
+ white-space: nowrap;
+ }
+
+ .#{$primary-stylename}-time {
+ text-align: right;
+ padding-right: round($v-unit-size/4);
+ margin-top: round($v-font-size*0.8/-2);
+ padding-bottom: round($v-font-size*0.8/2);
+ }
+
+ .#{$primary-stylename}-day-times,
+ .#{$primary-stylename}-day-times-today {
+ outline: none;
+ //@include box-sizing(border-box);
+ //padding: 0 round($v-unit-size/8);
+ border-right: 1px solid transparent;
+
+ &:focus {
+ outline: none;
+ }
+ }
+
+ $v-valo-calendar-time-divider-color: darken($v-app-background-color, 5%);
+
+ .#{$primary-stylename} .v-datecellslot,
+ .#{$primary-stylename} .v-datecellslot-even {
+ border-top: 1px solid $v-valo-calendar-time-divider-color;
+
+ &:first-child {
+ border-top-color: transparent;
+ }
+ }
+
+ .#{$primary-stylename} .v-datecellslot {
+ border-top-style: dotted;
+ }
+
+ .#{$primary-stylename} .v-datecellslot,
+ .#{$primary-stylename} .v-datecellslot-even {
+ margin-right: round($v-unit-size/8);
+ }
+
+ .#{$primary-stylename}-current-time {
+ background: v-valo-focus-color();
+ line-height: 1px;
+ pointer-events: none;
+ @include opacity(.5);
+
+ &:before {
+ content: "\2022";
+ color: v-valo-focus-color();
+ font-size: 22px;
+ margin-left: -0.07em;
+ }
+ }
+
+ .#{$primary-stylename} .v-daterange {
+ position: relative;
+
+ &:before {
+ content: "";
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: -1px;
+ left: 0;
+ background: v-valo-selection-color();
+ @include opacity(.5);
+ @if $v-border-radius > 0 {
+ border-radius: $v-border-radius $v-border-radius 0 0;
+ }
+ }
+
+ + .v-daterange {
+ border-color: transparent;
+
+ &:before {
+ @if $v-border-radius > 0 {
+ border-radius: 0;
+ }
+ }
+ }
+ }
+
+
+
+
+ // Event styles
+
+ .#{$primary-stylename}-event {
+ font-size: 0.85em;
+ overflow: hidden;
+ cursor: pointer;
+ outline: none;
+ border-radius: $v-border-radius;
+
+ &:focus {
+ outline: none;
+ }
+ }
+
+ .#{$primary-stylename}-event-month {
+ padding: 0 round($v-unit-size/8);
+ @include box-sizing(border-box);
+ margin-bottom: round($v-unit-size/12);
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ height: round($v-font-size * 1.2);
+ line-height: round($v-font-size * 1.2);
+
+ .#{$primary-stylename}-event-time {
+ float: right;
+ font-size: 0.9em;
+ line-height: round($v-font-size * 1.2);
+ @include opacity(.5);
+ }
+
+ &:before {
+ content: "\25cf";
+ margin-right: .2em;
+ }
+ }
+
+ .#{$primary-stylename}-event-all-day {
+ padding: 0 round($v-unit-size/8);
+ @include box-sizing(border-box);
+ height: round($v-font-size * 1.2);
+ line-height: round($v-font-size * 1.2);
+ border-radius: 0;
+ margin-left: -1px;
+ white-space: nowrap;
+
+ &:before {
+ content: "";
+ }
+ }
+
+ .#{$primary-stylename}-event-start {
+ overflow: visible;
+ margin-left: 0;
+
+ &.#{$primary-stylename}-event-continued-to,
+ &.#{$primary-stylename}-event-end {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+ }
+
+ @if $v-border-radius > 0 {
+ .#{$primary-stylename}-event-start {
+ border-top-left-radius: $v-border-radius;
+ border-bottom-left-radius: $v-border-radius;
+ margin-left: round($v-unit-size/8);
+ }
+ .#{$primary-stylename}-event-end {
+ border-top-right-radius: $v-border-radius;
+ border-bottom-right-radius: $v-border-radius;
+ margin-right: round($v-unit-size/8);
+ }
+ }
+
+ .#{$primary-stylename}-event-caption {
+ font-weight: $v-font-weight + 200;
+ line-height: 1.2;
+ padding: round($v-unit-size/8) 0;
+ position: absolute;
+ overflow: hidden;
+ right: round($v-unit-size/4);
+ left: round($v-unit-size/8);
+ bottom: 0;
+ top: 0;
+
+ span {
+ font-weight: $v-font-weight;
+ white-space: nowrap;
+ }
+ }
+
+ .#{$primary-stylename}-week-wrapper .#{$primary-stylename}-event {
+ overflow: visible;
+
+ // Event is being dragged
+ &[style*=" left:"] .#{$primary-stylename}-event-content {
+ //box-shadow: v-valo-shadow();
+ }
+ }
+
+ .#{$primary-stylename}-week-wrapper .#{$primary-stylename}-event-caption {
+
+ }
+
+ .#{$primary-stylename}-week-wrapper .#{$primary-stylename}-event-content {
+ margin-top: -1px;
+ border-radius: $v-border-radius + 1px;
+ border: 1px solid $v-app-background-color;
+ padding-top: 3px;
+ margin-right: round($v-unit-size/8);
+ //margin-left: round($v-unit-size/8);
+ }
+
+
+
+
+
+
+
+ // Custom event colors
+
+ @for $i from 1 through length($v-calendar-event-colors) {
+ $color: nth($v-calendar-event-colors, $i);
+ $bg: blend-normal(rgba($color, .2), $v-app-background-color);
+
+ // First color is considered the default color (and stylename 'color1' will equal to that)
+ $stylename: if($i == 1, '', '[class*="color#{$i}"]');
+
+ .#{$primary-stylename}-event-month#{$stylename}:before {
+ color: $color;
+ }
+
+ .#{$primary-stylename}-event-all-day#{$stylename} {
+ background-color: $bg;
+ background-color: rgba($bg, .8);
+ color: $color;
+ }
+
+ .#{$primary-stylename}-week-wrapper .#{$primary-stylename}-event#{$stylename} {
+ color: $color;
+
+ .#{$primary-stylename}-event-content {
+ background-color: $bg;
+ background-color: rgba($bg, .8);
+ }
+ }
+ }
+
+
+
+ .#{$primary-stylename}.v-disabled * {
+ cursor: default;
+ }
+
+}
+
+
+@mixin v-valo-calendar-prev-style {
+ &:before {
+ @include v-valo-tabsheet-scroller-prev-icon-style;
+ }
+}
+
+@mixin v-valo-calendar-next-style {
+ &:before {
+ @include v-valo-tabsheet-scroller-next-icon-style;
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/components/_checkbox.scss b/WebContent/VAADIN/themes/valo/components/_checkbox.scss
new file mode 100644
index 0000000000..1fc34dd823
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_checkbox.scss
@@ -0,0 +1,105 @@
+@mixin v-valo-checkbox ($primary-stylename: v-checkbox) {
+
+ .#{$primary-stylename},
+ .v-radiobutton {
+ @include v-valo-checkbox-style;
+ }
+
+}
+
+
+@mixin v-valo-checkbox-icon-style {
+ content: "\f00c";
+ font-family: FontAwesome;
+}
+
+
+@mixin v-valo-checkbox-style ($background-color: $v-button-background-color, $unit-size: $v-unit-size) {
+ $background-color: $background-color or $v-app-background-color;
+
+ position: relative;
+ line-height: round($unit-size/2);
+ white-space: nowrap;
+
+ &.v-has-width label {
+ white-space: normal;
+ }
+
+ :root & {
+ padding-left: round($unit-size/1.5);
+
+ label {
+ @include v-valo-tappable;
+ }
+ }
+
+ :root & > input {
+ position: absolute;
+ clip: rect(0,0,0,0);
+ left: .2em;
+ top: .2em;
+ z-index: 0;
+ margin: 0;
+
+ &:focus ~ label:before {
+ @include v-valo-button-focus-style($background-color: $background-color, $border-fallback: null);
+ box-shadow: v-valo-button-box-shadow($background-color), v-valo-focus-box-shadow();
+ }
+
+ & ~ label:before,
+ & ~ label:after {
+ content: "";
+ display: inline-block;
+ @include box-sizing(border-box);
+ width: round($unit-size/2);
+ height: round($unit-size/2);
+ position: absolute;
+ top: 0;
+ left: 0;
+ border-radius: min(round($unit-size/6), $v-border-radius);
+ font-size: round($v-font-size * 0.8 * ($unit-size/$v-unit-size));
+ text-align: center;
+ }
+
+ & ~ label:before {
+ @include v-valo-button-style($background-color: $background-color, $unit-size: $unit-size);
+ padding: 0;
+ height: round($unit-size/2);
+ }
+
+ & ~ label:after {
+ @include v-valo-checkbox-icon-style;
+ color: transparent;
+ @if $v-animations-enabled {
+ @include transition(color 100ms);
+ }
+ }
+
+ &:active ~ label:after {
+ @include v-valo-button-active-style($background-color: $background-color);
+ }
+
+ &:checked ~ label:after {
+ color: v-valo-selection-color($context: $background-color);
+ }
+
+ &[disabled] {
+ ~ label:before,
+ ~ label:after {
+ @include opacity($v-disabled-opacity);
+ }
+
+ &:active ~ label:after {
+ background: transparent;
+ }
+ }
+
+ }
+
+ & > .v-icon,
+ & > label .v-icon {
+ margin: 0 round($unit-size/6) 0 round($unit-size/12);
+ min-width: 1em;
+ }
+
+}
diff --git a/WebContent/VAADIN/themes/valo/components/_colorpicker.scss b/WebContent/VAADIN/themes/valo/components/_colorpicker.scss
new file mode 100644
index 0000000000..10ba39e16c
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_colorpicker.scss
@@ -0,0 +1,200 @@
+@mixin v-valo-colorpicker-global ($primary-stylename: v-colorpicker) {
+ $v-valo-colorpicker-pathPrefix: null;
+ @if $v-relative-paths == false {
+ $v-valo-colorpicker-pathPrefix: "../valo/components/img/colorpicker/";
+ }
+
+ .#{$primary-stylename}-popup.v-window {
+ min-width: 220px !important;
+ }
+
+ .#{$primary-stylename}-gradient-clicklayer {
+ @include opacity(0);
+ }
+
+ .rgb-gradient .#{$primary-stylename}-gradient-background {
+ background: url(#{$v-valo-colorpicker-pathPrefix}gradient2.png);
+ }
+
+ .hsv-gradient .#{$primary-stylename}-gradient-foreground {
+ background: url(#{$v-valo-colorpicker-pathPrefix}gradient.png);
+ }
+
+ .#{$primary-stylename}-gradient-lowerbox {
+ border-right: 1px solid rgba(122,122,122,.5);
+ border-top: 1px solid rgba(122,122,122,.5);
+ }
+
+ .#{$primary-stylename}-gradient-higherbox {
+ border-left: 1px solid rgba(122,122,122,.5);
+ border-bottom: 1px solid rgba(122,122,122,.5);
+ }
+
+ .#{$primary-stylename}-popup .v-slider.v-slider-red:before {
+ background-color: red;
+ }
+
+ .#{$primary-stylename}-popup .v-slider.v-slider-green:before {
+ background-color: green;
+ }
+
+ .#{$primary-stylename}-popup .v-slider.v-slider-blue:before {
+ background-color: blue;
+ }
+
+ .#{$primary-stylename}-popup .v-slider.hue-slider:before {
+ background: url(#{$v-valo-colorpicker-pathPrefix}slider_hue_bg.png);
+ }
+
+ .#{$primary-stylename}-popup .v-textfield-dark {
+ color: #fff;
+ }
+
+ .#{$primary-stylename}-popup .v-textfield-light {
+ color: #000;
+ }
+
+ // TODO magic numbers
+ .#{$primary-stylename}-grid {
+ height: 319px;
+ }
+
+ .#{$primary-stylename}-popup .colorselect td {
+ line-height: 15px;
+ }
+}
+
+
+
+
+
+
+@mixin v-valo-colorpicker ($primary-stylename: v-colorpicker) {
+
+ .#{$primary-stylename}-popup.v-window {
+ min-width: 220px !important;
+ }
+
+ .#{$primary-stylename}-popup {
+ .v-tabsheet-tabs {
+ padding: 0 round($v-unit-size/4);
+ }
+
+ [class$="sliders"] {
+ padding: round($v-unit-size/3);
+
+ .v-widget {
+ width: 100% !important;
+ vertical-align: middle;
+ }
+
+ .v-has-caption {
+ white-space: nowrap;
+ padding-left: $v-font-size * 3;
+ }
+
+ .v-caption {
+ display: inline-block;
+ margin-left: $v-font-size * -3;
+ width: $v-font-size * 3;
+ }
+
+ // Saturation caption needs more space
+ .v-slot-hue-slider + .v-slot {
+ .v-has-caption {
+ padding-left: $v-font-size * 5;
+ }
+
+ .v-caption {
+ margin-left: $v-font-size * -5;
+ width: $v-font-size * 5;
+ }
+ }
+ }
+
+ .v-slider-red .v-slider-base:after {
+ background: red;
+ border: none;
+ box-shadow: none;
+ }
+
+ .v-slider-green .v-slider-base:after {
+ background: green;
+ border: none;
+ box-shadow: none;
+ }
+
+ .v-slider-blue .v-slider-base:after {
+ background: blue;
+ border: none;
+ box-shadow: none;
+ }
+
+ .v-margin-bottom {
+ padding-bottom: 0;
+ }
+
+ .resize-button {
+ width: 100% !important;
+ height: auto !important;
+ text-align: center;
+ outline: none;
+
+ &:before {
+ font-family: FontAwesome;
+ content: "\F141";
+ }
+ }
+
+ .resize-button-caption {
+ display: none;
+ }
+
+ .v-horizontallayout {
+ height: auto !important;
+ padding: round($v-unit-size/4) 0;
+ background-color: $v-app-background-color;
+ border-top: $v-border-width solid scale-color($v-app-background-color, $lightness: -5%);
+
+ .v-expand {
+ overflow: visible;
+ }
+
+ .v-button {
+ width: 80% !important;
+ }
+ }
+ }
+
+ .#{$primary-stylename}-preview {
+ width: auto !important;
+ height: auto !important;
+ padding: round($v-unit-size/4);
+ }
+
+ .#{$primary-stylename}-preview-textfield {
+ height: auto !important;
+ text-align: center;
+ border: none;
+ }
+
+ .#{$primary-stylename} {
+ width: auto !important;
+ }
+
+ .#{$primary-stylename}-button-color {
+ position: absolute;
+ top: round($v-unit-size/6);
+ right: round($v-unit-size/6);
+ bottom: round($v-unit-size/6);
+ left: round($v-unit-size/6);
+ border-radius: $v-border-radius - 1px;
+ border: 1px solid hsla(0, 0%, 0%, .5);
+ max-width: $v-unit-size - round($v-unit-size/3) - 2px;
+
+ + .v-button-caption:not(:empty) {
+ margin-left: round($v-unit-size/2);
+ }
+ }
+
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/components/_combobox.scss b/WebContent/VAADIN/themes/valo/components/_combobox.scss
new file mode 100644
index 0000000000..ef0542830a
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_combobox.scss
@@ -0,0 +1,286 @@
+$v-combobox-hover-style-enabled: $v-hover-styles-enabled !default;
+
+
+
+
+@mixin v-valo-combobox ($primary-stylename: v-filterselect) {
+
+ .#{$primary-stylename} {
+ position: relative;
+ width: $v-default-field-width;
+ @include v-valo-combobox-style($primary-stylename: $primary-stylename);
+ white-space: nowrap;
+
+ .v-icon {
+ position: absolute;
+ }
+ }
+
+ .#{$primary-stylename}-suggestpopup {
+ @include v-valo-combobox-popup-style;
+ }
+
+}
+
+
+
+
+
+
+@mixin v-valo-combobox-style ($bevel-style: $v-textfield-bevel-style, $bevel-depth: $v-textfield-bevel-depth,
+ $shadow-style: $v-textfield-shadow-style, $shadow-depth: $v-textfield-shadow-depth,
+ $unit-size: $v-textfield-unit-size, $border-radius: $v-textfield-border-radius,
+ $background-color: $v-textfield-background-color, $primary-stylename: v-filterselect) {
+
+ $background-color: $background-color or v-valo-textfield-background-color($v-app-background-color);
+ $bevel-style: $bevel-style or $v-bevel-style;
+ $bevel-depth: $bevel-depth or $v-bevel-depth;
+ $unit-size: $unit-size or $v-unit-size;
+ $border-radius: $border-radius or $v-border-radius;
+
+ .#{$primary-stylename}-input {
+ @include v-valo-combobox-input-style($bevel-style: $bevel-style, $bevel-depth: $bevel-depth, $unit-size: $unit-size,
+ $shadow-style: $shadow-style, $shadow-depth: $shadow-depth,
+ $border-radius: $border-radius, $background-color: $background-color);
+ }
+
+ .v-icon {
+ max-height: $unit-size;
+ $padding-width: ceil($unit-size/6);
+ @if $border-radius {
+ $padding-width: $padding-width + ceil($border-radius/3);
+ }
+ margin-left: $padding-width;
+
+ + .#{$primary-stylename}-input {
+ padding-left: $padding-width + $unit-size;
+ }
+ }
+
+ &.#{$primary-stylename}-prompt > .#{$primary-stylename}-input {
+ @include v-valo-textfield-prompt-style(v-valo-textfield-background-color($background-color));
+ }
+
+ .#{$primary-stylename}-button {
+ @include v-valo-combobox-button-style($unit-size: $unit-size, $bevel-style: $bevel-style, $bevel-depth: $bevel-depth,
+ $background-color: $background-color);
+ }
+
+ &.v-disabled {
+ @include opacity($v-textfield-disabled-opacity);
+ & .#{$primary-stylename}-button {
+ cursor: default;
+ pointer-events: none;
+ &:active:after {
+ display: none;
+ }
+ }
+ }
+
+ &.v-readonly {
+ .#{$primary-stylename}-input {
+ @include v-valo-textfield-readonly-style;
+ }
+
+ .#{$primary-stylename}-button {
+ cursor: default;
+ pointer-events: none;
+ &:active:after {
+ display: none;
+ }
+ }
+ }
+}
+
+
+
+
+
+@include keyframes(v-valo-combobox-show-status) {
+ 0% {
+ opacity: 0;
+ @include transform( translatey(-100%) );
+ }
+}
+
+
+
+
+@mixin v-valo-combobox-input-style ($bevel-style: $v-textfield-bevel-style, $bevel-depth: $v-textfield-bevel-depth,
+ $shadow-style: $v-textfield-shadow-style, $shadow-depth: $v-textfield-shadow-depth,
+ $unit-size: $v-textfield-unit-size, $border-radius: $v-textfield-border-radius,
+ $background-color: $v-textfield-background-color) {
+ @include box-sizing(border-box);
+ @include v-valo-textfield-style($bevel-style: $bevel-style, $bevel-depth: $bevel-depth,
+ $shadow-style: $shadow-style, $shadow-depth: $shadow-depth,
+ $unit-size: $unit-size, $border-radius: $border-radius,
+ $background-color: $background-color) ;
+ width: 100%;
+ height: 100%;
+ padding-right: $unit-size * 1.2;
+}
+
+
+
+
+
+
+
+@mixin v-valo-combobox-button-style ($unit-size: $v-unit-size, $bevel-style: $v-bevel-style, $bevel-depth: $v-bevel-depth,
+ $background-color: $v-textfield-background-color) {
+ @include v-valo-tappable;
+ position: absolute;
+ top: $v-textfield-border-width;
+ right: $v-textfield-border-width;
+ bottom: $v-textfield-border-width;
+ width: $unit-size;
+ cursor: pointer;
+ border-left: $v-textfield-border-width solid blend-darken(black($bevel-depth/200%), $background-color);
+
+ @if $v-border-radius > 0 {
+ border-radius: 0 $v-border-radius $v-border-radius 0;
+ }
+
+ &:before {
+ @include v-valo-combobox-button-icon-style($background-color);
+ color: mix($background-color, v-valo-font-color($background-color));
+ @if $v-animations-enabled {
+ @include transition(color 140ms);
+ }
+ position: absolute;
+ width: $unit-size;
+ text-align: center;
+ top: 50%;
+ line-height: 1;
+ margin-top: -.47em;
+ }
+
+ @if $v-combobox-hover-style-enabled {
+ &:hover:before {
+ color: v-valo-font-color($background-color);
+ }
+ }
+
+ &:active:after {
+ content: "";
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ border-radius: inherit;
+ @include v-valo-button-active-style($background-color);
+ }
+}
+
+
+
+@mixin v-valo-combobox-button-icon-style ($background-color) {
+ font-family: FontAwesome;
+ content: "\f078";
+ color: v-valo-font-color($background-color);
+}
+
+
+
+
+@mixin v-valo-combobox-popup-style ($background-color: null) {
+
+ .v-filterselect-suggestmenu {
+ @include v-valo-selection-overlay-style($background-color: $background-color);
+ box-sizing: border-box;
+ position: relative;
+ z-index: 1;
+ }
+
+ margin-top: ceil($v-unit-size/8) !important;
+
+ table,
+ tbody,
+ tr,
+ td {
+ display: block;
+ }
+
+ .gwt-MenuItem {
+ @include v-valo-selection-item-style;
+ }
+
+ .gwt-MenuItem-selected {
+ @include v-valo-selection-item-selected-style($parent-background-color: $background-color);
+ }
+
+ .v-filterselect-status {
+ position: absolute;
+ right: $v-border-radius;
+ $bg: $background-color or $v-app-background-color;
+ $bg: scale-color($bg, $lightness: -15%);
+ background: transparentize($bg, .1);
+ color: v-valo-font-color($bg);
+ border-radius: 0 0 $v-border-radius $v-border-radius;
+ height: ceil($v-unit-size*0.6);
+ bottom: -(ceil($v-unit-size*0.6));
+ font-size: ceil($v-font-size*0.73);
+ line-height: ceil($v-unit-size*0.6);
+ padding: 0 ceil($v-unit-size/7);
+ cursor: default;
+ pointer-events: none;
+
+ @if $v-animations-enabled {
+ @include animation(v-valo-combobox-show-status 200ms 80ms backwards);
+ }
+
+ > * {
+ color: v-valo-font-color($bg);
+ text-decoration: none;
+ }
+ }
+
+ div[class*="page"] {
+ position: absolute;
+ z-index: 3;
+ right: 0;
+ @include opacity(.2);
+ cursor: pointer;
+ @include transition( all 200ms );
+ width: ceil($v-unit-size/1.5);
+ height: ceil($v-unit-size/1.5);
+ line-height: ceil($v-unit-size/1.5);
+ text-align: center;
+ font-family: FontAwesome;
+ @include transform( scale(.8) );
+
+ $bg: $background-color or $v-app-background-color;
+ color: v-valo-font-color($bg);
+
+ &:hover {
+ @include opacity(1);
+ }
+
+ span {
+ // Hide text
+ display: none;
+ }
+ }
+
+ &:hover div[class*="page"] {
+ @include transform( scale(1) );
+ }
+
+ div[class*="prev"] {
+ top: 0;
+ @include transform-origin( 100% 0% );
+ &:before {
+ content: "\f0d8";
+ }
+
+ }
+
+ div[class*="next"] {
+ bottom: 0;
+ @include transform-origin( 100% 100% );
+ &:before {
+ content: "\f0d7";
+ }
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/components/_csslayout.scss b/WebContent/VAADIN/themes/valo/components/_csslayout.scss
new file mode 100644
index 0000000000..6537915344
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_csslayout.scss
@@ -0,0 +1,52 @@
+@mixin v-valo-csslayout ($primary-stylename: v-csslayout){
+
+}
+
+
+@mixin v-valo-component-group ($primary-stylename: v-csslayout) {
+ .#{$primary-stylename}-v-component-group {
+ white-space: nowrap;
+ position: relative;
+
+ @if $v-border-radius > 0 {
+ .v-widget ~ .v-widget:not(:last-child) {
+ border-radius: 0;
+ }
+
+ .v-widget:last-child {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+
+ .v-widget:first-child,
+ .v-caption:first-child + .v-widget {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ }
+
+ // Assume most components have borders.
+ // This is just a best-guess, will need fine-tuning if border-widths vary from widget-to-widget
+ .v-widget {
+ vertical-align: middle;
+
+ @if $v-border-width > 0 {
+ margin-left: -$v-border-width;
+ } @else {
+ margin-left: round($v-font-size/8);
+ }
+
+ &:first-child {
+ margin-left: 0;
+ }
+
+ // Focused component should be on top
+ &:focus,
+ [class*="focus"] {
+ position: relative;
+ z-index: 1;
+ }
+ }
+
+ }
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/components/_customcomponent.scss b/WebContent/VAADIN/themes/valo/components/_customcomponent.scss
new file mode 100644
index 0000000000..2a340fc743
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_customcomponent.scss
@@ -0,0 +1,3 @@
+@mixin v-valo-customcomponent ($primary-stylename: v-customcomponent) {
+
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/components/_customlayout.scss b/WebContent/VAADIN/themes/valo/components/_customlayout.scss
new file mode 100644
index 0000000000..9b28672c35
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_customlayout.scss
@@ -0,0 +1,3 @@
+@mixin v-valo-customlayout ($primary-stylename: v-customlayout) {
+
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/components/_datefield.scss b/WebContent/VAADIN/themes/valo/components/_datefield.scss
new file mode 100644
index 0000000000..9e4328cf40
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_datefield.scss
@@ -0,0 +1,404 @@
+$v-datefield-hover-style-enabled: $v-hover-styles-enabled !default;
+
+
+@mixin v-valo-datefield ($primary-stylename: v-datefield) {
+
+ .#{$primary-stylename} {
+ position: relative;
+ width: $v-default-field-width;
+ height: $v-unit-size;
+ @include v-valo-datefield-style($primary-stylename: $primary-stylename);
+ }
+
+ // Different widths for different resolutions
+ .#{$primary-stylename}-full {
+ width: round($v-font-size * 15);
+ }
+
+ .#{$primary-stylename}-day {
+ width: $v-default-field-width;
+ }
+
+ .#{$primary-stylename}-month {
+ width: round($v-font-size * 7.5);
+ }
+
+ .#{$primary-stylename}-year {
+ width: round($v-font-size * 6.5);
+ }
+
+ .v-datefield-popup {
+ @include v-valo-datefield-popup-style;
+ }
+
+ @include v-valo-datefield-calendarpanel-style;
+
+}
+
+
+@mixin v-valo-inline-datefield ($primary-stylename: v-inline-datefield) {
+ @include v-valo-datefield-calendarpanel-style(#{$primary-stylename}-calendarpanel);
+}
+
+
+
+
+
+@mixin v-valo-datefield-style ($bevel-style: $v-textfield-bevel-style, $bevel-depth: $v-textfield-bevel-depth,
+ $unit-size: $v-textfield-unit-size, $border-radius: $v-textfield-border-radius,
+ $background-color: $v-textfield-background-color, $primary-stylename: v-datefield) {
+
+ $background-color: $background-color or v-valo-textfield-background-color($v-app-background-color);
+ $bevel-style: $bevel-style or $v-bevel-style;
+ $bevel-depth: $bevel-depth or $v-bevel-depth;
+ $unit-size: $unit-size or $v-unit-size;
+ $border-radius: $border-radius or $v-border-radius;
+
+ .#{$primary-stylename}-textfield {
+ @include box-sizing(border-box);
+ @include v-valo-textfield-style($bevel-style: $bevel-style, $bevel-depth: $bevel-depth,
+ $unit-size: $unit-size, $border-radius: $border-radius,
+ $background-color: $background-color) ;
+ padding-left: $unit-size * 1.2;
+ width: 100%;
+ height: 100%;
+ }
+
+ &.#{$primary-stylename}-prompt > .#{$primary-stylename}-textfield {
+ @include v-valo-textfield-prompt-style(v-valo-textfield-background-color($background-color));
+ }
+
+ .#{$primary-stylename}-button {
+ @include v-valo-datefield-button-style($unit-size: $unit-size, $bevel-style: $bevel-style, $bevel-depth: $bevel-depth,
+ $background-color: $background-color);
+ }
+
+ &.v-disabled {
+ @include opacity($v-textfield-disabled-opacity);
+
+ .#{$primary-stylename}-button {
+ cursor: default;
+ pointer-events: none;
+ &:active:after {
+ display: none;
+ }
+ }
+ }
+
+ &.v-readonly {
+ .#{$primary-stylename}-textfield {
+ @include v-valo-textfield-readonly-style;
+ }
+
+ .#{$primary-stylename}-button {
+ cursor: default;
+ pointer-events: none;
+ &:active:after {
+ display: none;
+ }
+ }
+ }
+}
+
+
+
+
+@mixin v-valo-datefield-button-style ($unit-size: $v-unit-size, $bevel-style: $v-bevel-style, $bevel-depth: $v-bevel-depth,
+ $background-color: $v-textfield-background-color) {
+ @include v-valo-tappable;
+ -webkit-appearance: none;
+ background: transparent;
+ border: none;
+ padding: 0;
+ position: absolute;
+ top: $v-textfield-border-width;
+ bottom: $v-textfield-border-width;
+ left: $v-textfield-border-width;
+ width: $unit-size;
+ line-height: $unit-size - ($v-textfield-border-width*2);
+ text-align: center;
+ cursor: pointer;
+ font: inherit;
+ border-right: $v-textfield-border-width solid blend-darken(black($bevel-depth/200%), $background-color);
+ outline: none;
+ margin: 0;
+
+ @if $v-border-radius > 0 {
+ $br: max(0, $v-border-radius - $v-textfield-border-width);
+ border-radius: $br 0 0 $br;
+ }
+
+ &:before {
+ @include v-valo-datefield-button-icon-style($background-color);
+ color: mix($background-color, v-valo-font-color($background-color));
+ @if $v-animations-enabled {
+ @include transition(color 140ms);
+ }
+ }
+
+ @if $v-combobox-hover-style-enabled {
+ &:hover:before {
+ color: v-valo-font-color($background-color);
+ }
+ }
+
+ &:active:after {
+ content: "";
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ @include v-valo-button-active-style($background-color);
+ }
+}
+
+
+
+
+@mixin v-valo-datefield-button-icon-style ($background-color) {
+ font-family: FontAwesome;
+ content: "\f073";
+ color: v-valo-font-color($background-color);
+}
+
+
+
+
+@mixin v-valo-datefield-popup-style ($context: $v-app-background-color) {
+ $copy: $v-app-background-color;
+ $v-app-background-color: $context;
+
+ @include v-valo-overlay-style;
+
+ @include user-select(none);
+
+ margin-top: ceil($v-unit-size/8) !important;
+ cursor: default;
+ width: auto;
+
+ table {
+ border-collapse: collapse;
+ border-spacing: 0;
+ }
+
+ td {
+ padding: round($v-unit-size/20);
+ }
+
+ @include v-valo-datefield-calendarpanel-style;
+
+ $v-app-background-color: $copy;
+}
+
+
+@mixin v-valo-datefield-calendarpanel-style ($primary-stylename: v-datefield-calendarpanel) {
+ .#{$primary-stylename} {
+ font-size: $v-font-size;
+ text-align: center;
+
+ &:focus {
+ outline: none;
+ }
+ }
+
+ .#{$primary-stylename}-day {
+ @include v-valo-datefield-calendarpanel-day-style;
+ display: inline-block;
+ @include box-sizing(border-box);
+ cursor: pointer;
+ &:hover {
+ @include v-valo-datefield-calendarpanel-day-hover-style;
+ }
+ }
+
+ .#{$primary-stylename}-day-offmonth {
+ @include v-valo-datefield-calendarpanel-day-offmonth-style;
+ }
+
+ .#{$primary-stylename}-day-today {
+ @include v-valo-datefield-calendarpanel-day-today-style;
+ }
+
+ .#{$primary-stylename}-day.#{$primary-stylename}-day-selected,
+ .#{$primary-stylename}-day.#{$primary-stylename}-day-selected:hover {
+ @include v-valo-datefield-calendarpanel-day-selected-style
+ }
+
+ .#{$primary-stylename}-day.#{$primary-stylename}-day-focused {
+ @include v-valo-datefield-calendarpanel-day-focused-style;
+ }
+
+
+
+ .#{$primary-stylename}-weekdays {
+ height: round($v-unit-size * 0.7);
+ color: mix(v-valo-font-color($v-app-background-color), rgba($v-app-background-color, .7));
+
+ strong {
+ font: inherit;
+ font-size: ceil($v-font-size * 0.86);
+ }
+ }
+
+
+ .#{$primary-stylename}-header {
+ white-space: nowrap;
+ }
+
+ td[class$="year"],
+ td[class$="month"] {
+ //width: round($v-unit-size * 0.5);
+
+ button {
+ @include appearance(none);
+ border: none;
+ background: transparent;
+ padding: 0;
+ margin: 0;
+ cursor: pointer;
+ color: transparent;
+ width: round($v-unit-size * 0.5);
+ height: round($v-unit-size * 0.67);
+ outline: none;
+ position: relative;
+
+ &:before {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ color: mix($v-app-background-color, v-valo-font-color($v-app-background-color));
+ font-size: round($v-font-size * 1.3);
+ line-height: round($v-font-size * 1.5);
+
+ @if $v-animations-enabled {
+ @include transition(color 200ms);
+ }
+ }
+
+ &:hover {
+ @include opacity(1);
+ &:before {
+ color: v-valo-link-font-color();
+ }
+ }
+ }
+ }
+
+ .v-button-prevyear:before {
+ @include v-valo-datefield-calendarpanel-prevyear-icon-style;
+ }
+
+ .v-button-prevmonth:before {
+ @include v-valo-datefield-calendarpanel-prevmonth-icon-style;
+ }
+
+ .v-button-nextyear:before {
+ @include v-valo-datefield-calendarpanel-nextyear-icon-style;
+ }
+
+ .v-button-nextmonth:before {
+ @include v-valo-datefield-calendarpanel-nextmonth-icon-style;
+ }
+
+ td.#{$primary-stylename}-month {
+ width: round($v-unit-size * 3.5);
+ @include v-valo-datefield-calendarpanel-month-style;
+ }
+
+ .v-datefield-year td.v-datefield-calendarpanel-month {
+ width: round($v-unit-size * 2);
+ }
+
+ .v-datefield-calendarpanel-weeknumber,
+ .v-datefield-calendarpanel-weekdays.v-datefield-calendarpanel-weeknumbers td:first-child {
+ width: round($v-unit-size * 0.7);
+ color: mix(v-valo-font-color($v-app-background-color), rgba($v-app-background-color, .7));
+ font-size: ceil($v-font-size * 0.86);
+ display: inline-block;
+ text-align: left;
+ }
+
+ td.v-datefield-calendarpanel-time {
+ width: 100%;
+ font-size: ceil($v-font-size * 0.86);
+
+ .v-label {
+ display: inline-block;
+ margin: 0 0.1em;
+ font-weight: 400;
+ }
+ }
+
+}
+
+
+
+
+@mixin v-valo-datefield-calendarpanel-day-style {
+ width: round($v-unit-size * 0.8);
+ height: round($v-unit-size * 0.7);
+ line-height: round($v-unit-size * 0.7);
+ text-align: center;
+ font-size: ceil($v-font-size * 0.86);
+ background: $v-app-background-color;
+ @if $v-border-radius > 0 {
+ border-radius: ceil($v-border-radius/2);
+ }
+ @if $v-animations-enabled {
+ @include transition(color 200ms);
+ }
+}
+
+@mixin v-valo-datefield-calendarpanel-day-hover-style {
+ color: v-valo-selection-color();
+}
+
+@mixin v-valo-datefield-calendarpanel-day-offmonth-style {
+ color: mix(v-valo-font-color($v-app-background-color), $v-app-background-color);
+ background: transparent;
+}
+
+@mixin v-valo-datefield-calendarpanel-day-today-style {
+ color: v-valo-selection-color();
+ background: blend-overlay(v-valo-selection-color(), $v-app-background-color);
+ font-weight: $v-font-weight + 100;
+}
+
+@mixin v-valo-datefield-calendarpanel-day-selected-style {
+ color: v-valo-font-color(v-valo-selection-color());
+ @include v-valo-gradient(v-valo-selection-color());
+ font-weight: $v-font-weight + 100;
+}
+
+@mixin v-valo-datefield-calendarpanel-day-focused-style {
+ box-shadow: v-valo-focus-box-shadow();
+ position: relative; // Show above other cells
+}
+
+
+@mixin v-valo-datefield-calendarpanel-nextmonth-icon-style {
+ font-family: FontAwesome;
+ content: "\f105";
+}
+
+@mixin v-valo-datefield-calendarpanel-prevmonth-icon-style {
+ font-family: FontAwesome;
+ content: "\f104";
+}
+
+@mixin v-valo-datefield-calendarpanel-nextyear-icon-style {
+ font-family: FontAwesome;
+ content: "\f101";
+}
+
+@mixin v-valo-datefield-calendarpanel-prevyear-icon-style {
+ font-family: FontAwesome;
+ content: "\f100";
+}
+
+@mixin v-valo-datefield-calendarpanel-month-style {
+ color: v-valo-selection-color();
+}
diff --git a/WebContent/VAADIN/themes/valo/components/_dragwrapper.scss b/WebContent/VAADIN/themes/valo/components/_dragwrapper.scss
new file mode 100644
index 0000000000..5a7b34b0f5
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_dragwrapper.scss
@@ -0,0 +1,5 @@
+@mixin v-valo-dragwrapper ($primary-stylename: v-ddwrapper) {
+
+ // TODO
+
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/components/_escalator.scss b/WebContent/VAADIN/themes/valo/components/_escalator.scss
new file mode 100644
index 0000000000..30da7bb501
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_escalator.scss
@@ -0,0 +1,109 @@
+@mixin v-valo-escalator($primaryStyleName : v-escalator) {
+
+$background-color: white;
+$border-color: #aaa;
+
+.#{$primaryStyleName} {
+ position: relative;
+ background-color: $background-color;
+}
+
+.#{$primaryStyleName}-scroller {
+ position: absolute;
+ overflow: auto;
+ z-index: 20;
+}
+
+.#{$primaryStyleName}-scroller-horizontal {
+ left: 0; /* Left position adjusted to align with frozen columns */
+ right: 0;
+ bottom: 0;
+ overflow-y: hidden;
+ -ms-overflow-y: hidden;
+}
+
+.#{$primaryStyleName}-scroller-vertical {
+ right: 0;
+ top: 0; /* this will be overridden by code, but it's a good default behavior */
+ bottom: 0; /* this will be overridden by code, but it's a good default behavior */
+ overflow-x: hidden;
+ -ms-overflow-x: hidden;
+}
+
+.#{$primaryStyleName}-tablewrapper {
+ position: absolute;
+ overflow: hidden;
+}
+
+.#{$primaryStyleName}-tablewrapper > table {
+ border-spacing: 0;
+ table-layout: fixed;
+ width: inherit; /* a decent default fallback */
+}
+
+.#{$primaryStyleName}-header,
+.#{$primaryStyleName}-body,
+.#{$primaryStyleName}-footer {
+ position: absolute;
+ left: 0;
+ width: inherit;
+ z-index: 10;
+}
+
+.#{$primaryStyleName}-header { top: 0; }
+.#{$primaryStyleName}-footer { bottom: 0; }
+
+.#{$primaryStyleName}-body {
+ z-index: 0;
+ top: 0;
+
+ .#{$primaryStyleName}-row {
+ position: absolute;
+ top: 0;
+ left: 0;
+ }
+}
+
+.#{$primaryStyleName}-row {
+ display: block;
+
+ .v-ie8 & {
+ /* IE8 doesn't let table rows be longer than body only with display block. Moar hax. */
+ float: left;
+ clear: left;
+
+ /*
+ * The inline style of margin-top from the <tbody> to offset the header's dimension is,
+ * for some strange reason, inherited into each contained <tr>.
+ * We need to cancel it:
+ */
+ margin-top: 0;
+ }
+
+ > td, > th {
+ /* IE8 likes the bgcolor here instead of on the row */
+ background-color: $background-color;
+ }
+}
+
+
+.#{$primaryStyleName}-row {
+ width: inherit;
+}
+
+.#{$primaryStyleName}-cell {
+ display: block;
+ float: left;
+ border: 1px solid $border-color;
+ padding: 2px;
+ white-space: nowrap;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.#{$primaryStyleName}-cell.frozen {
+ position: relative;
+ z-index: 0;
+}
+
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/components/_form.scss b/WebContent/VAADIN/themes/valo/components/_form.scss
new file mode 100644
index 0000000000..84dee134a9
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_form.scss
@@ -0,0 +1,15 @@
+@mixin v-valo-form ($primary-stylename: v-form) {
+
+ .#{$primary-stylename} fieldset {
+ border: none;
+ padding: 0;
+ margin: 0;
+ height: 100%;
+ }
+
+ .#{$primary-stylename}-content {
+ height: 100%;
+ @include box-sizing(border-box);
+ }
+
+}
diff --git a/WebContent/VAADIN/themes/valo/components/_formlayout.scss b/WebContent/VAADIN/themes/valo/components/_formlayout.scss
new file mode 100644
index 0000000000..f67f55345a
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_formlayout.scss
@@ -0,0 +1,147 @@
+@mixin v-valo-formlayout ($primary-stylename: v-formlayout) {
+
+ @include v-valo-formlayout-spacing;
+ @include v-valo-formlayout-margins;
+
+ .#{$primary-stylename} > table {
+ border-spacing: 0;
+ }
+
+ .#{$primary-stylename}-error-indicator {
+ width: round($v-unit-size/2);
+ }
+
+ .#{$primary-stylename}-captioncell {
+ vertical-align: top;
+ line-height: $v-unit-size - 1px;
+
+ .v-caption {
+ padding-bottom: 0;
+ }
+ }
+
+ .#{$primary-stylename}-contentcell {
+ .v-checkbox {
+ font-weight: $v-font-weight + 100;
+ }
+ }
+
+}
+
+
+@mixin v-valo-formlayout-margins ($primary-stylename: v-formlayout, $all: null, $top: $v-layout-margin-top, $right: $v-layout-margin-right, $bottom: $v-layout-margin-bottom, $left: $v-layout-margin-left) {
+ @if $all != null {
+ $top: $all;
+ $right: $all;
+ $bottom: $all;
+ $left: $all;
+ }
+
+ .#{$primary-stylename}-margin-top > tbody > .#{$primary-stylename}-firstrow {
+ > .#{$primary-stylename}-captioncell,
+ > .#{$primary-stylename}-contentcell,
+ > .#{$primary-stylename}-errorcell {
+ padding-top: $top;
+ }
+ }
+
+ .#{$primary-stylename}-margin-bottom > tbody > .#{$primary-stylename}-lastrow {
+ > .#{$primary-stylename}-captioncell,
+ > .#{$primary-stylename}-contentcell,
+ > .#{$primary-stylename}-errorcell {
+ padding-bottom: $bottom;
+ }
+ }
+
+ .#{$primary-stylename}-margin-left > tbody > .#{$primary-stylename}-row > .#{$primary-stylename}-captioncell {
+ padding-left: $left;
+ }
+
+ .#{$primary-stylename}-margin-right > tbody > .#{$primary-stylename}-row > .#{$primary-stylename}-contentcell {
+ padding-right: $right;
+ }
+}
+
+
+@mixin v-valo-formlayout-spacing ($primary-stylename: v-formlayout, $vertical: $v-layout-spacing-vertical) {
+ .#{$primary-stylename}-spacing > tbody > .#{$primary-stylename}-row {
+ > .#{$primary-stylename}-captioncell,
+ > .#{$primary-stylename}-contentcell,
+ > .#{$primary-stylename}-errorcell {
+ padding-top: $vertical;
+ }
+ }
+}
+
+
+
+
+
+@mixin v-valo-formlayout-light-style ($primary-stylename: v-formlayout, $row-height: $v-unit-size) {
+ > table > tbody > .#{$primary-stylename}-row {
+ > .#{$primary-stylename}-captioncell,
+ > .#{$primary-stylename}-contentcell,
+ > .#{$primary-stylename}-errorcell {
+ padding-top: 0;
+ height: $row-height; // Effectively min-height
+ }
+ }
+
+ > table > tbody > .#{$primary-stylename}-row td {
+ border-bottom: $v-border-width solid darken($v-app-background-color, 5%);
+ }
+
+ > table > tbody > .#{$primary-stylename}-lastrow td {
+ border-bottom: none;
+ }
+
+ > table > tbody > .#{$primary-stylename}-row > .#{$primary-stylename}-captioncell {
+ @include opacity(.7);
+ text-align: right;
+ padding-left: ceil($v-unit-size/3);
+ line-height: $row-height;
+ }
+
+ .v-textfield,
+ .v-textarea,
+ .v-filterselect,
+ .v-datefield,
+ .v-filterselect-input,
+ .v-datefield-textfield {
+ width: 100%;
+ }
+
+ .v-textfield,
+ .v-textarea,
+ .v-filterselect-input,
+ .v-datefield-textfield {
+ background: transparent;
+ border: none;
+ box-shadow: none;
+ border-radius: 0;
+ @include v-valo-textfield-size($row-height, 0);
+ }
+
+ .v-textarea {
+ height: auto;
+ }
+
+ .v-filterselect-button,
+ .v-datefield-button {
+ border: none;
+
+ &:active:after {
+ display: none;
+ }
+ }
+
+ .v-datefield-button {
+ right: 0;
+ left: auto;
+ }
+
+ .v-checkbox {
+ margin-left: ceil($v-unit-size/6);
+ }
+}
+
diff --git a/WebContent/VAADIN/themes/valo/components/_grid.scss b/WebContent/VAADIN/themes/valo/components/_grid.scss
new file mode 100644
index 0000000000..62462642b4
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_grid.scss
@@ -0,0 +1,5 @@
+@import "escalator";
+
+@mixin v-valo-grid($primary-styleName : v-grid) {
+ @include v-valo-escalator($primary-styleName);
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/components/_gridlayout.scss b/WebContent/VAADIN/themes/valo/components/_gridlayout.scss
new file mode 100644
index 0000000000..df964600e9
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_gridlayout.scss
@@ -0,0 +1,48 @@
+@mixin v-valo-gridlayout-global ($primary-stylename: v-gridlayout) {
+ .#{$primary-stylename} {
+ position: relative;
+ line-height: 0;
+ }
+ .#{$primary-stylename}-slot {
+ position: absolute;
+ line-height: $v-line-height;
+ }
+ .#{$primary-stylename}-spacing-on {
+ overflow: hidden;
+ }
+ .#{$primary-stylename}-spacing,
+ .#{$primary-stylename}-spacing-off {
+ padding-left: 0;
+ padding-top: 0;
+ }
+ .#{$primary-stylename}-spacing-off {
+ overflow: hidden;
+ }
+}
+
+
+@mixin v-valo-gridlayout($primary-stylename : v-gridlayout) {
+
+ .#{$primary-stylename}-margin-top {
+ padding-top: $v-layout-margin-top;
+ }
+
+ .#{$primary-stylename}-margin-bottom {
+ padding-bottom: $v-layout-margin-bottom;
+ }
+
+ .#{$primary-stylename}-margin-left {
+ padding-left: $v-layout-margin-left;
+ }
+
+ .#{$primary-stylename}-margin-right {
+ padding-right: $v-layout-margin-right;
+ }
+
+ .#{$primary-stylename}-spacing-on {
+ padding-left: $v-layout-spacing-horizontal;
+ padding-top: $v-layout-spacing-vertical;
+ }
+
+
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/components/_label.scss b/WebContent/VAADIN/themes/valo/components/_label.scss
new file mode 100644
index 0000000000..8bce4da3f7
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_label.scss
@@ -0,0 +1,120 @@
+$v-font-weight--header: $v-font-weight - 100 !default;
+$v-line-height--header: 1.1 !default;
+$v-font-family--header: null !default;
+
+$v-font-size--h1: 2.4em !default;
+$v-font-size--h2: 1.6em !default;
+$v-font-size--h3: 1.2em !default;
+$v-font-size--large: 1.2em !default;
+$v-font-size--small: 0.87em !default;
+
+$v-font-family--h1: $v-font-family--header !default;
+$v-font-family--h2: $v-font-family--header !default;
+$v-font-family--h3: $v-font-family--header !default;
+
+$v-letter-spacing--h1: -0.03em !default;
+$v-letter-spacing--h2: -0.02em !default;
+$v-letter-spacing--h3: 0 !default;
+$v-letter-spacing--h4: 0.05em !default;
+
+
+@mixin v-valo-label ($primary-stylename: v-label) {
+
+ .#{$primary-stylename}-undef-w {
+ white-space: nowrap;
+ }
+
+ h1, .h1,
+ h2, .h2,
+ h3, .h3 {
+ line-height: $v-line-height--header;
+ font-weight: $v-font-weight--header;
+ color: v-valo-header-color($v-app-background-color);
+ }
+
+ h1, .h1 {
+ font-size: $v-font-size--h1;
+ margin-top: 1.4em;
+ margin-bottom: 1em;
+ font-family: $v-font-family--h1;
+ letter-spacing: $v-letter-spacing--h1;
+ }
+
+ h2, .h2 {
+ font-size: $v-font-size--h2;
+ font-family: $v-font-family--h2;
+ margin-top: 1.6em;
+ margin-bottom: 0.77em;
+ letter-spacing: $v-letter-spacing--h2;
+ }
+
+ h3, .h3 {
+ font-size: $v-font-size--h3;
+ font-family: $v-font-family--h3;
+ margin-top: 1.8em;
+ margin-bottom: 0.77em;
+ letter-spacing: $v-letter-spacing--h3;
+ }
+
+ h4, .h4 {
+ line-height: $v-line-height--header;
+ font-weight: $v-font-weight + 200;
+ font-size: $v-font-size--small;
+ color: v-valo-header-color($v-app-background-color, $contrast: 0.12);
+ text-transform: uppercase;
+ letter-spacing: $v-letter-spacing--h4;
+ margin-top: 2.4em;
+ margin-bottom: 0.8em;
+ }
+
+ .v-csslayout {
+ > h1,
+ > h2,
+ > h3,
+ > h4
+ > .h1,
+ > .h2,
+ > .h3
+ > .h4 {
+ &:first-child {
+ margin-top: $v-font-size;
+ }
+ }
+ }
+
+ .v-verticallayout > .v-slot:first-child,
+ .v-verticallayout > div > .v-slot:first-child {
+ h1, .h1,
+ h2, .h2,
+ h3, .h3
+ h4, .h4 {
+ margin-top: $v-font-size;
+ }
+ }
+
+ h1, .h1,
+ h2, .h2,
+ h3, .h3,
+ h4, .h4 {
+ &.no-margin {
+ margin: 0 !important;
+ }
+ }
+
+ .#{$primary-stylename}-large {
+ font-size: $v-font-size--large;
+ }
+
+ .#{$primary-stylename}-small {
+ font-size: $v-font-size--small;
+ }
+
+ .#{$primary-stylename}-bold {
+ font-weight: $v-font-weight + 200;
+ }
+
+ .#{$primary-stylename}-light {
+ font-weight: $v-font-weight - 100;
+ }
+
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/components/_link.scss b/WebContent/VAADIN/themes/valo/components/_link.scss
new file mode 100644
index 0000000000..e02a64f678
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_link.scss
@@ -0,0 +1,46 @@
+$v-link-font-color: null !default;
+$v-link-text-decoration: underline !default;
+$v-link-cursor: pointer !default;
+
+
+@mixin v-valo-link ($primary-stylename: v-link) {
+ .#{$primary-stylename} {
+ @include v-valo-link-style;
+
+ a {
+ cursor: inherit;
+ color: inherit;
+ text-decoration: inherit;
+ @if $v-animations-enabled {
+ @include transition(inherit);
+ }
+ }
+
+ .v-icon {
+ cursor: inherit;
+ }
+ }
+}
+
+
+@mixin v-valo-link-style {
+ cursor: $v-link-cursor;
+ color: v-valo-link-font-color();
+ text-decoration: $v-link-text-decoration;
+ font-weight: inherit;
+
+ @if $v-animations-enabled {
+ @include transition(color 140ms);
+ }
+
+ &:hover {
+ color: lighten(v-valo-link-font-color(), 10%);
+ }
+}
+
+
+
+@function v-valo-link-font-color ($color: null, $context: null) {
+ $link-color: $color or $v-link-font-color or v-valo-focus-color($color: $color, $context: $context);
+ @return $link-color;
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/components/_loginform.scss b/WebContent/VAADIN/themes/valo/components/_loginform.scss
new file mode 100644
index 0000000000..f52289d606
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_loginform.scss
@@ -0,0 +1,3 @@
+@mixin v-valo-loginform ($primary-stylename: v-loginform) {
+
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/components/_menubar.scss b/WebContent/VAADIN/themes/valo/components/_menubar.scss
new file mode 100644
index 0000000000..86f5fe42cc
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_menubar.scss
@@ -0,0 +1,222 @@
+@mixin v-valo-menubar ($primary-stylename: v-menubar) {
+
+ $copy: $v-button-hover-style-enabled;
+ $v-button-hover-style-enabled: false;
+
+ .#{$primary-stylename} {
+ @include v-valo-button-common-properties;
+ @include v-valo-button-style;
+ padding: 0;
+ text-align: left;
+ }
+
+ $v-button-hover-style-enabled: $copy;
+
+ .#{$primary-stylename}:active:after {
+ background: transparent;
+ }
+
+ .#{$primary-stylename} > .#{$primary-stylename}-menuitem {
+ @include v-valo-menubar-menuitem-style;
+ }
+
+ .#{$primary-stylename} > .#{$primary-stylename}-menuitem-checked {
+ @include v-valo-menubar-menuitem-checked-style;
+ }
+
+ .v-disabled > .#{$primary-stylename}-menuitem:before {
+ display: none;
+ }
+
+ .#{$primary-stylename} > .#{$primary-stylename}-menuitem-selected {
+ @include v-valo-gradient($color: v-valo-selection-color());
+ box-shadow: v-valo-button-box-shadow($background-color: v-valo-selection-color());
+ text-shadow: v-valo-button-text-shadow($background-color: v-valo-selection-color());
+ color: v-valo-font-color(v-valo-selection-color());
+ $bc: v-valo-button-border-color($background-color: v-valo-selection-color());
+ border-color: $bc;
+
+ + .#{$primary-stylename}-menuitem {
+ border-color: $bc;
+ }
+
+ &:hover:before {
+ background: none;
+ }
+ }
+
+ .#{$primary-stylename} .#{$primary-stylename}-submenu-indicator {
+ display: none;
+ }
+
+ .#{$primary-stylename}-popup {
+ @include v-valo-menubar-popup-style($primary-stylename);
+ //margin-top: -$v-selection-overlay-padding-vertical !important;
+ //margin-left: $v-selection-overlay-padding-horizontal !important;
+ }
+
+}
+
+
+
+
+@mixin v-valo-menubar-menuitem-style {
+ position: relative;
+ z-index: 1;
+ display: inline-block;
+ @include v-valo-button-size($v-unit-size, $v-border-radius);
+ height: $v-unit-size - $v-button-border-width*2;
+ border-left: $v-button-border-width solid;
+ border-color: inherit;
+ vertical-align: top;
+ line-height: $v-unit-size - $v-button-border-width*2 - 1px;
+ @include user-select(none);;
+
+ $br: $v-button-border-radius - $v-button-border-width;
+ &:first-child {
+ border-left: none;
+ border-radius: $br 0 0 $br;
+ }
+
+ &:last-child {
+ border-radius: 0 $br $br 0;
+ }
+
+ &:first-child:last-child {
+ border-radius: $br;
+ }
+
+ &:before {
+ content: "";
+ content: "";
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ }
+
+ @if $v-button-hover-style-enabled {
+ &:hover:before {
+ @include v-valo-button-hover-style;
+ border: none;
+ }
+ }
+
+ &:active:before {
+ @include v-valo-button-active-style;
+ }
+
+ $margin-width: ceil($v-unit-size/2.4/5);
+ .v-icon {
+ margin: 0 $margin-width 0 #{-$margin-width};
+ }
+
+ &[class*="-icon-only"] .v-icon {
+ margin: 0 #{-$margin-width};
+ }
+}
+
+
+
+
+
+@mixin v-valo-menubar-popup-style ($primary-stylename: v-menubar, $context: $v-app-background-color) {
+
+ $copy: $v-app-background-color;
+ $v-app-background-color: $context;
+
+ @include v-valo-selection-overlay-style;
+
+ margin: ceil($v-unit-size/8) 0 0 1px !important;
+
+ .#{$primary-stylename}-submenu {
+ outline: none;
+ }
+
+ .#{$primary-stylename}-menuitem {
+ display: block;
+ @include v-valo-selection-item-style;
+ padding-left: $v-selection-item-height + round($v-selection-item-padding-horizontal/2); // Make room for checkable icon
+ padding-right: $v-unit-size;
+ position: relative;
+ }
+
+ .#{$primary-stylename}-submenu-indicator {
+ display: none;
+
+ + .#{$primary-stylename}-menuitem-caption:after {
+ position: absolute;
+ right: $v-selection-item-padding-horizontal;
+ @include v-valo-menubar-submenu-indicator-style;
+ }
+ }
+
+ .#{$primary-stylename}-menuitem-selected {
+ @include v-valo-selection-item-selected-style;
+ }
+
+ .#{$primary-stylename}-separator {
+ display: block;
+ margin: $v-selection-overlay-padding-vertical 0;
+ height: 0;
+ overflow: hidden;
+ border-bottom: 1px solid darken(v-valo-overlay-background-color(), 5%);
+ }
+
+ [class*="checked"] .#{$primary-stylename}-menuitem-caption:before {
+ @include v-valo-menubar-checked-icon-style;
+ position: absolute;
+ left: $v-selection-item-padding-horizontal;
+ }
+
+ [class*="unchecked"] .#{$primary-stylename}-menuitem-caption:before {
+ content: "";
+ }
+
+ [class*="disabled"] {
+ cursor: default;
+ @include opacity($v-disabled-opacity);
+ }
+
+ $v-app-background-color: $copy;
+}
+
+
+
+@mixin v-valo-menubar-submenu-indicator-style {
+ font-family: FontAwesome;
+ content: "\f054";
+ line-height: $v-selection-item-height + 2px;
+}
+
+@mixin v-valo-menubar-checked-icon-style {
+ content: "\f00c";
+ font-family: FontAwesome;
+}
+
+
+@mixin v-valo-menubar-menuitem-checked-style ($background-color: scale-color($v-app-background-color, $lightness: -5%, $saturation: -5%)) {
+ @include v-valo-gradient($color: $background-color, $depth: $v-gradient-depth/4, $direction: to top);
+
+ @if color-luminance($background-color) < color-luminance($v-app-background-color) {
+ $border-color: v-valo-button-border-color($background-color: $background-color);
+ border-color: $border-color;
+
+ + [class*="menuitem"] {
+ @if length($border-color) > 1 {
+ $border-color: nth($border-color, 2);
+ }
+ border-left-color: $border-color;
+ }
+ }
+
+ color: v-valo-font-color($background-color, 0.9);
+ text-shadow: v-valo-button-text-shadow($background-color: $background-color);
+}
+
+@mixin v-valo-menubar-menuitem-checked ($background-color, $primary-stylename: v-menubar) {
+ .#{$primary-stylename}-menuitem-checked {
+ @include v-valo-menubar-menuitem-checked-style($background-color: $background-color);
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/components/_nativebutton.scss b/WebContent/VAADIN/themes/valo/components/_nativebutton.scss
new file mode 100644
index 0000000000..aa00a6206a
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_nativebutton.scss
@@ -0,0 +1,5 @@
+@mixin v-valo-nativebutton ($primary-stylename: v-nativebutton) {
+ .#{$primary-stylename} {
+ -webkit-touch-callout: none;
+ }
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/components/_nativeselect.scss b/WebContent/VAADIN/themes/valo/components/_nativeselect.scss
new file mode 100644
index 0000000000..89905d985f
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_nativeselect.scss
@@ -0,0 +1,36 @@
+@mixin v-valo-nativeselect ($primary-stylename: v-select) {
+ .#{$primary-stylename} select {
+ @include v-valo-nativeselect-select-style;
+ }
+
+ .#{$primary-stylename}-select {
+ display: block;
+
+ + .v-textfield {
+ width: auto !important;
+ margin-top: round($v-unit-size/4);
+
+ + .v-nativebutton {
+ margin-top: round($v-unit-size/4);
+ margin-left: round($v-unit-size/4);
+ }
+ }
+ }
+}
+
+
+
+@mixin v-valo-nativeselect-select-style {
+ $_border-color: darken($v-app-background-color, $v-bevel-depth);
+ @if is-dark-color($v-app-background-color) {
+ $_border-color: lighten($v-app-background-color, $v-bevel-depth);
+ }
+ border: $v-border-width solid $_border-color;
+ background-color: v-valo-textfield-background-color($v-app-background-color);
+
+ &:focus {
+ outline: none;
+ //@include v-valo-button-focus-style;
+ box-shadow: v-valo-focus-box-shadow();
+ }
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/components/_optiongroup.scss b/WebContent/VAADIN/themes/valo/components/_optiongroup.scss
new file mode 100644
index 0000000000..14f7fe1d29
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_optiongroup.scss
@@ -0,0 +1,41 @@
+@mixin v-valo-optiongroup ($primary-stylename: v-optiongroup) {
+
+ .v-radiobutton {
+ :root & > input {
+ &:checked ~ label:after {
+ $size: ceil($v-unit-size/6);
+ $offset: round($v-unit-size/6);
+ width: $size;
+ height: $size;
+ top: $offset;
+ left: $offset;
+ background: v-valo-selection-color($v-button-background-color);
+ }
+
+ & ~ label:before,
+ & ~ label:after {
+ border-radius: 50%;
+ content: "";
+ }
+ }
+ }
+
+ .v-select-optiongroup {
+
+ .v-radiobutton,
+ .v-checkbox {
+ display: block;
+ margin: round($v-unit-size/4) $v-font-size 0 0;
+
+ &:first-child {
+ margin-top: round($v-unit-size/6);
+ }
+ }
+
+ &.v-has-width label {
+ white-space: normal;
+ }
+
+ }
+
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/components/_orderedlayout.scss b/WebContent/VAADIN/themes/valo/components/_orderedlayout.scss
new file mode 100644
index 0000000000..4e62721fe9
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_orderedlayout.scss
@@ -0,0 +1,185 @@
+@mixin v-valo-orderedlayout-global {
+
+ div.v-layout.v-horizontal.v-widget {
+ white-space: nowrap;
+ }
+
+ .v-layout.v-vertical > .v-expand,
+ .v-layout.v-horizontal > .v-expand {
+ @include box-sizing(border-box);
+ width: 100%;
+ height: 100%;
+
+ // TODO fixes extra white space issues in some cases (can't remember what anymore), but causes some styles to clip
+ //overflow: hidden;
+ }
+
+ .v-slot,
+ .v-spacing {
+ display: inline-block;
+ white-space: normal;
+ vertical-align: top;
+ line-height: 0;
+ }
+
+ // Clear any floats inside the slot, to prevent unwanted collapsing
+ .v-vertical > .v-slot:after {
+ display: inline-block;
+ clear: both;
+ width: 0;
+ height: 0;
+ overflow: hidden;
+ }
+
+ .v-vertical > .v-slot,
+ .v-vertical > .v-expand > .v-slot {
+ display: block;
+ clear: both;
+ }
+
+ .v-horizontal > .v-slot,
+ .v-horizontal > .v-expand > .v-slot {
+ height: 100%;
+ }
+
+ .v-vertical > .v-spacing,
+ .v-vertical > .v-expand > .v-spacing {
+ width: 0;
+ display: block;
+ clear: both;
+ }
+
+ .v-horizontal > .v-spacing,
+ .v-horizontal > .v-expand > .v-spacing {
+ height: 0;
+ }
+
+ .v-align-middle:before,
+ .v-align-bottom:before,
+ .v-expand > .v-align-middle:before,
+ .v-expand > .v-align-bottom:before {
+ content: "";
+ display: inline-block;
+ height: 100%;
+ vertical-align: middle;
+ width: 0;
+ overflow: hidden;
+ }
+
+ .v-align-middle,
+ .v-align-bottom {
+ white-space: nowrap;
+ }
+
+ .v-align-middle > .v-widget,
+ .v-align-bottom > .v-widget {
+ display: inline-block;
+ }
+
+ //.v-align-middle,
+ .v-align-middle > .v-widget {
+ vertical-align: middle;
+ }
+
+ //.v-align-bottom,
+ .v-align-bottom > .v-widget {
+ vertical-align: bottom;
+ }
+
+ .v-align-center {
+ text-align: center;
+ }
+
+ .v-align-center > .v-widget {
+ margin-left: auto;
+ margin-right: auto;
+ }
+
+ .v-align-right {
+ text-align: right;
+ }
+
+ .v-align-right > .v-widget {
+ margin-left: auto;
+ }
+
+ .v-has-caption,
+ .v-has-caption > .v-caption {
+ // Force natural width to zero
+ display: inline-block;
+ }
+
+ .v-caption-on-left,
+ .v-caption-on-right {
+ white-space: nowrap;
+ }
+
+ .v-caption-on-top > .v-caption,
+ .v-caption-on-bottom > .v-caption {
+ display: block;
+ }
+
+ .v-caption-on-left > .v-caption {
+ padding-right: .5em;
+ }
+
+ .v-caption-on-right > .v-caption {
+ //vertical-align: top;
+ }
+
+ .v-caption-on-left > .v-widget,
+ .v-caption-on-right > .v-widget {
+ display: inline-block;
+ //vertical-align: middle;
+ }
+
+ .v-has-caption.v-has-width > .v-widget {
+ width: 100% !important;
+ }
+
+ .v-has-caption.v-has-height > .v-widget {
+ height: 100% !important;
+ }
+
+}
+
+
+
+@mixin v-valo-orderedlayout {
+
+ .v-margin-top {
+ padding-top: $v-layout-margin-top;
+ }
+
+ .v-margin-right {
+ padding-right: $v-layout-margin-right;
+ }
+
+ .v-margin-bottom {
+ padding-bottom: $v-layout-margin-bottom;
+ }
+
+ .v-margin-left {
+ padding-left: $v-layout-margin-left;
+ }
+
+ .v-spacing {
+ width: $v-layout-spacing-horizontal;
+ height: $v-layout-spacing-vertical;
+ }
+
+}
+
+
+@mixin v-valo-horizontallayout--wrapping {
+ white-space: normal !important;
+
+ & > .v-spacing + .v-slot,
+ & > .v-slot:first-child {
+ margin-bottom: $v-layout-spacing-vertical;
+ }
+
+ & > .v-slot:first-child:last-child {
+ margin-bottom: 0;
+ }
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/components/_panel.scss b/WebContent/VAADIN/themes/valo/components/_panel.scss
new file mode 100644
index 0000000000..54c9df18ba
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_panel.scss
@@ -0,0 +1,119 @@
+$v-panel-shadow-style: $v-shadow-style !default;
+$v-panel-border-width: $v-border-width !default;
+$v-panel-border-radius: $v-border-radius !default;
+
+$v-panel-caption-background-color: null !default;
+$v-panel-caption-gradient-depth: $v-gradient-depth/4 !default;
+$v-panel-caption-bevel-style: first($v-bevel-style) !default;
+$v-panel-caption-bevel-depth: $v-bevel-depth !default;
+
+
+
+@mixin v-valo-panel ($primary-stylename: v-panel) {
+
+ .#{$primary-stylename} {
+ @include v-valo-panel-style;
+ }
+
+ .#{$primary-stylename}-caption {
+ @include v-valo-panel-caption-style;
+ }
+
+ .#{$primary-stylename}-content {
+ @include box-sizing(border-box);
+ width: 100%;
+ height: 100%;
+ @include v-valo-panel-adjust-content-margins;
+ }
+
+}
+
+
+
+@function v-valo-panel-background-color ($context: $v-app-background-color) {
+ $bg-color: lighten($context, 5%);
+ @return $bg-color;
+}
+
+
+@function v-valo-panel-caption-background-color ($background-color) {
+ @return $background-color or $v-app-background-color;
+}
+
+
+@function v-valo-panel-border-color ($background-color: $v-app-background-color) {
+ $border-color: if(color-luminance($background-color) < color-luminance($v-app-background-color), $background-color, $v-app-background-color);
+ $border-color: blend-darken($border-color, scale-color($border-color, $lightness: max(-30%, -$v-bevel-depth/2)));
+ $border-color: scale-color($border-color, $saturation: -$v-bevel-depth/2);
+ @return $border-color;
+}
+
+
+@mixin v-valo-panel-style {
+ background: v-valo-panel-background-color();
+ border-radius: $v-panel-border-radius;
+ border: $v-panel-border-width solid v-valo-panel-border-color(v-valo-panel-background-color());
+ box-shadow: v-valo-shadow($shadow-style: $v-panel-shadow-style);
+}
+
+
+@mixin v-valo-panel-caption-style ($background-color: $v-panel-caption-background-color) {
+ @include box-sizing(border-box);
+ padding: 0 round($v-unit-size/3);
+ line-height: $v-unit-size;
+ $_bg: v-valo-panel-caption-background-color($background-color);
+ $_border-color: scale-color($_bg, $lightness: -$v-panel-caption-bevel-depth/2, $saturation: -$v-panel-caption-bevel-depth/2);
+ border-bottom: $v-panel-border-width solid $_border-color;
+ border-bottom-color: rgba($_border-color, .8);
+ @include v-valo-gradient($color: $_bg, $depth: $v-panel-caption-gradient-depth);
+ color: v-valo-font-color($_bg);
+ font-weight: $v-caption-font-weight;
+ font-size: $v-caption-font-size;
+ box-shadow: v-valo-bevel($_bg, $bevel-style: $v-panel-caption-bevel-style, $bevel-depth: $v-panel-caption-bevel-depth, $gradient-depth: $v-panel-caption-gradient-depth);
+}
+
+
+@mixin v-valo-panel-well-style {
+ $_bg: scale-color(adjust-color($v-app-background-color, $lightness: -2%), $saturation: -1.5%);
+ background: $_bg;
+ box-shadow: v-valo-shadow($shadow-style: (0 1px 0 0 hilite, join(inset, $v-panel-shadow-style)));
+ border-radius: $v-border-radius;
+ border: $v-border-width solid v-valo-panel-border-color(v-valo-panel-background-color());
+
+ .v-panel-caption {
+ background: transparent;
+ box-shadow: none;
+ }
+}
+
+
+@mixin v-valo-panel-borderless-style {
+ background: transparent;
+ border: none;
+ box-shadow: none;
+
+ .v-panel-caption {
+ background: transparent;
+ box-shadow: none;
+ }
+}
+
+
+@mixin v-valo-panel-adjust-content-margins {
+ > .v-margin-top {
+ padding-top: round($v-unit-size/3);
+ }
+
+ > .v-margin-right {
+ padding-right: round($v-unit-size/3);
+ }
+
+ > .v-margin-bottom {
+ padding-bottom: round($v-unit-size/3);
+ }
+
+ > .v-margin-left {
+ padding-left: round($v-unit-size/3);
+ }
+}
+
diff --git a/WebContent/VAADIN/themes/valo/components/_popupview.scss b/WebContent/VAADIN/themes/valo/components/_popupview.scss
new file mode 100644
index 0000000000..056906f7c7
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_popupview.scss
@@ -0,0 +1,3 @@
+@mixin v-valo-popupview ($primary-stylename: v-popupview) {
+
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/components/_progressbar.scss b/WebContent/VAADIN/themes/valo/components/_progressbar.scss
new file mode 100644
index 0000000000..5e8fd21fa3
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_progressbar.scss
@@ -0,0 +1,36 @@
+$v-progressbar-border-radius: $v-border-radius !default;
+
+
+@mixin v-valo-progressbar ($primary-stylename: v-progressbar) {
+
+ .#{$primary-stylename}-wrapper {
+ @include v-valo-progressbar-track-style;
+ }
+
+ .#{$primary-stylename}-indicator {
+ @include v-valo-progressbar-indicator-style;
+ }
+
+}
+
+
+@mixin v-valo-progressbar-track-style {
+ border-radius: $v-progressbar-border-radius;
+ height: round($v-unit-size/4);
+ min-width: $v-unit-size * 2;
+ @include v-valo-gradient($color: scale-color($v-app-background-color, $lightness: min($v-bevel-depth/-2, -10%), $saturation: $v-bevel-depth/-2), $style: linear-reverse);
+ box-shadow: v-valo-textfield-box-shadow();
+ @include box-sizing(border-box);
+}
+
+
+@mixin v-valo-progressbar-indicator-style {
+ border-radius: $v-progressbar-border-radius;
+ height: inherit;
+ min-width: max($v-border-radius*2, 3px);
+ @include v-valo-gradient($color: v-valo-selection-color());
+ box-shadow: v-valo-button-box-shadow($background-color: v-valo-selection-color(), $bevel-depth: $v-bevel-depth/2);
+ border: $v-button-border-width solid;
+ border-color: v-valo-button-border-color($v-bevel-style, $v-bevel-depth/2, v-valo-selection-color());
+ @include box-sizing(border-box);
+}
diff --git a/WebContent/VAADIN/themes/valo/components/_richtextarea.scss b/WebContent/VAADIN/themes/valo/components/_richtextarea.scss
new file mode 100644
index 0000000000..49b2eda008
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_richtextarea.scss
@@ -0,0 +1,6 @@
+@mixin v-valo-richtextarea ($primary-stylename: v-richtextarea) {
+ .#{$primary-stylename} .gwt-ToggleButton,
+ .#{$primary-stylename} .gwt-PushButton {
+ display: inline-block;
+ }
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/components/_slider.scss b/WebContent/VAADIN/themes/valo/components/_slider.scss
new file mode 100644
index 0000000000..bb3fd989a4
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_slider.scss
@@ -0,0 +1,147 @@
+$v-slider-track-size: round($v-unit-size/8) !default;
+$v-slider-track-border-radius: null !default;
+$v-slider-handle-width: round($v-unit-size/1.8) !default;
+$v-slider-handle-height: round($v-unit-size/1.8) !default;
+$v-slider-handle-border-radius: ceil($v-slider-handle-width/2) !default;
+
+
+@mixin v-valo-slider ($primary-stylename: v-slider) {
+
+ // Round to an even number
+ $v-slider-track-size: $v-slider-track-size + $v-slider-track-size%2;
+ $v-slider-handle-width: $v-slider-handle-width + $v-slider-handle-width%2;
+ $v-slider-handle-height: $v-slider-handle-height + $v-slider-handle-height%2;
+
+ .#{$primary-stylename} {
+ position: relative;
+
+ &:focus {
+ outline: none;
+
+ .#{$primary-stylename}-handle:after {
+ opacity: 1;
+
+ .v-ie8 & {
+ visibility: visible;
+ }
+ }
+ }
+
+ &.v-disabled {
+ @include opacity($v-disabled-opacity);
+ }
+ }
+
+ .#{$primary-stylename}-base {
+ @include v-valo-progressbar-track-style;
+ min-width: $v-unit-size * 2;
+ height: $v-slider-track-size;
+ margin: round(($v-unit-size - $v-slider-track-size)/2) round($v-slider-handle-width/2);
+ white-space: nowrap;
+ overflow: hidden;
+ border-radius: $v-slider-track-border-radius;
+
+ &:after {
+ @include v-valo-progressbar-indicator-style;
+ min-width: 0;
+ content: "";
+ display: inline-block;
+ //position: relative;
+ margin-left: -100%;
+ width: 100%;
+ vertical-align: top;
+
+ .v-ie8 & {
+ left: round(-$v-slider-handle-width/2);
+ }
+ }
+ }
+
+ .#{$primary-stylename}-handle {
+ margin-top: round(($v-unit-size - $v-slider-track-size)/-2);
+ width: .1px; // Firefox needs a non-zero value
+ display: inline-block;
+ vertical-align: top;
+
+ &:before {
+ @include v-valo-button-style;
+ }
+
+ &:after {
+ @include v-valo-button-focus-style;
+ opacity: 0;
+ @if $v-animations-enabled {
+ @include transition(opacity 200ms);
+ }
+
+ .v-ie8 & {
+ visibility: hidden;
+ }
+ }
+
+ &:before,
+ &:after {
+ content: "";
+ @include box-sizing(border-box);
+ padding: 0;
+ width: $v-slider-handle-width;
+ height: $v-slider-handle-height;
+ border-radius: $v-slider-handle-border-radius;
+ position: absolute;
+ z-index: 1;
+ margin-top: round(($v-unit-size - $v-slider-handle-height)/2);
+ margin-left: round($v-slider-handle-width/-2);
+ }
+ }
+
+ .#{$primary-stylename}-feedback {
+ @include v-valo-tooltip-style;
+ }
+
+
+
+ // Vertical
+
+
+
+ .#{$primary-stylename}-vertical {
+ padding: round($v-slider-handle-width/2) 0;
+ height: $v-unit-size * 2; // Effectively min-height
+
+ .#{$primary-stylename}-base {
+ @include v-valo-gradient($color: scale-color($v-app-background-color, $lightness: min($v-bevel-depth/-2, -5%), $saturation: $v-bevel-depth/-2), $style: linear-reverse, $direction: to right);
+ min-width: 0;
+ width: $v-slider-track-size;
+ height: 100% !important;
+ min-height: $v-unit-size * 2;
+ margin: 0 round(($v-unit-size - $v-slider-track-size)/2);
+
+ &:after {
+ margin-left: 0;
+ @include v-valo-gradient($color: v-valo-selection-color(), $direction: to right);
+
+ .v-ie8 & {
+ top: round($v-slider-handle-width/2) - 2px;
+ left: 0;
+ height: 130%;
+ }
+ }
+ }
+
+ .#{$primary-stylename}-handle {
+ width: 0;
+ height: .1px;
+ width: $v-unit-size;
+ display: block;
+
+ &:before,
+ &:after {
+ width: $v-slider-handle-height;
+ height: $v-slider-handle-width;
+ margin-top: round($v-slider-handle-width/-2);
+ margin-left: round(($v-slider-handle-height - $v-slider-track-size)/-2);
+ }
+ }
+ }
+
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/components/_splitpanel.scss b/WebContent/VAADIN/themes/valo/components/_splitpanel.scss
new file mode 100644
index 0000000000..622b24a3a2
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_splitpanel.scss
@@ -0,0 +1,177 @@
+$v-splitpanel-splitter-size: round($v-unit-size/5) !default;
+
+
+@mixin v-valo-splitpanel($primary-stylename : v-splitpanel) {
+
+ // Disable splitter shadow (should most likely be a variable)
+ $copy: $v-shadow-depth;
+ $v-shadow-depth: 0%;
+
+ // Round to even number
+ $v-splitpanel-splitter-size: $v-splitpanel-splitter-size + $v-splitpanel-splitter-size%2;
+
+ .#{$primary-stylename}-vertical,
+ .#{$primary-stylename}-horizontal {
+ overflow: hidden;
+ white-space: nowrap;
+ }
+
+ .#{$primary-stylename}-hsplitter {
+ width: $v-splitpanel-splitter-size;
+ }
+
+ .#{$primary-stylename}-hsplitter div,
+ .#{$primary-stylename}-vsplitter div {
+ @include v-valo-button-style;
+ @include box-sizing(border-box);
+ height: auto;
+ padding: 0;
+ border-radius: 0;
+ position: absolute;
+ z-index: 1;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ cursor: s-resize;
+ cursor: row-resize;
+
+ &:before {
+ content: "";
+ width: $v-unit-size;
+ height: 0;
+ border: 1px solid;
+ $color: $v-button-background-color or $v-app-background-color;
+ $shade: max($v-bevel-depth, 10%);
+ $border-color1: scale-color($color, $lightness: -$shade, $saturation: -$shade/2);
+ $border-color2: scale-color($color, $lightness: -$shade/2, $saturation: -$shade/4);
+ border-color: $border-color1 $border-color2 $border-color2 $border-color1;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ margin-left: round(-$v-unit-size/2);
+ margin-top: -1px;
+ }
+ }
+
+ .#{$primary-stylename}-vsplitter {
+ height: $v-splitpanel-splitter-size;
+ }
+
+ .#{$primary-stylename}-hsplitter div {
+ cursor: e-resize;
+ cursor: col-resize;
+ $color: $v-button-background-color or $v-app-background-color;
+ @include v-valo-gradient($color: $color, $direction: to right);
+
+ &:before {
+ width: 0;
+ height: $v-unit-size;
+ margin-left: -1px;
+ margin-top: round(-$v-unit-size/2);
+ }
+ }
+
+ .v-disabled [class$="splitter"] div {
+ cursor: default;
+
+ &:before {
+ display: none;
+ }
+ }
+
+ // Allow undefined/auto height for horizontal split
+
+ .#{$primary-stylename}-horizontal {
+ .#{$primary-stylename}-second-container {
+ position: static !important;
+ display: inline-block;
+ margin-left: $v-splitpanel-splitter-size; /* Match to the width of the splitter element */
+ vertical-align: top;
+ }
+
+ .#{$primary-stylename}-first-container {
+ display: inline-block;
+ vertical-align: top;
+ }
+ }
+
+ $v-shadow-depth: $copy;
+
+}
+
+
+
+
+
+
+@mixin v-valo-splitpanel-small ($primary-stylename: v-splitpanel, $stylename: small) {
+ .#{$primary-stylename}-vsplitter-#{$stylename},
+ .#{$primary-stylename}-hsplitter-#{$stylename} {
+ div {
+ @include opacity(0);
+ @include transition(opacity 200ms);
+ }
+
+ &:hover div {
+ @include opacity(1);
+ }
+ }
+
+ .#{$primary-stylename}-vsplitter-#{$stylename} {
+ div {
+ left: 40%;
+ right: 40%;
+ height: $v-splitpanel-splitter-size + 1px;
+ top: round($v-splitpanel-splitter-size/-2);
+
+ &:before {
+ width: 50%;
+ left: 25%;
+ margin-left: 0;
+ }
+ }
+
+ &:before {
+ content: "";
+ position: absolute;
+ height: 1px;
+ left: 0;
+ right: 0;
+ background: darken($v-app-background-color, max($v-bevel-depth/2, 10%));
+ }
+ }
+
+ .#{$primary-stylename}-hsplitter-#{$stylename} {
+ div {
+ top: 40%;
+ bottom: 40%;
+ width: $v-splitpanel-splitter-size + 1px;
+ left: round($v-splitpanel-splitter-size/-2);
+
+ &:before {
+ height: 50%;
+ top: 25%;
+ margin-top: 0;
+ }
+ }
+
+ &:before {
+ content: "";
+ position: absolute;
+ width: 1px;
+ top: 0;
+ bottom: 0;
+ background: darken($v-app-background-color, max($v-bevel-depth/2, 10%));
+ }
+ }
+
+ .#{$primary-stylename}-vertical .#{$primary-stylename}-second-container-#{$stylename} {
+ margin-top: 1px;
+ position: static !important;
+ }
+
+ .#{$primary-stylename}-horizontal .#{$primary-stylename}-second-container-#{$stylename} {
+ margin-left: 1px;
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/components/_table.scss b/WebContent/VAADIN/themes/valo/components/_table.scss
new file mode 100644
index 0000000000..58d96c688a
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_table.scss
@@ -0,0 +1,496 @@
+$v-table-row-height: $v-unit-size !default;
+$v-table-border-width: $v-border-width !default;
+$v-table-border-color: null !default;
+$v-table-border-radius: 0 !default;
+$v-table-cell-padding-horizontal: round($v-unit-size/3) !default;
+//$v-table-cell-padding-horizontal-edge: round($v-unit-size/2.5) !default;
+$v-table-resizer-width: round($v-unit-size/5) !default;
+$v-table-sort-indicator-width: round($v-unit-size/2) !default;
+$v-table-header-font-size: round($v-font-size * 0.86) !default;
+$v-table-background-color: null !default;
+
+
+
+@mixin v-valo-table-global ($primary-stylename: v-table) {
+
+ .#{$primary-stylename}-header table,
+ .#{$primary-stylename}-footer table,
+ .#{$primary-stylename}-table {
+ border-spacing: 0;
+ border-collapse: separate;
+ margin: 0;
+ padding: 0;
+ border: 0;
+ line-height: $v-line-height;
+ }
+
+ .#{$primary-stylename}-resizer,
+ .#{$primary-stylename}-sort-indicator {
+ float: right;
+ }
+
+ .#{$primary-stylename}-cell-wrapper {
+ overflow: hidden;
+ }
+
+ .#{$primary-stylename}-caption-container-align-right {
+ text-align: right;
+ }
+
+ .#{$primary-stylename}-header td,
+ .#{$primary-stylename}-footer td,
+ .#{$primary-stylename}-cell-content {
+ padding: 0;
+ }
+
+ .#{$primary-stylename}-sort-indicator {
+ width: 0;
+ }
+
+}
+
+
+
+
+@function v-valo-table-background-color($context: $v-app-background-color) {
+ @if is-dark-color($context) {
+ @return darken($context, 2%);
+ }
+ @return lighten($context, 2%);
+}
+
+
+@mixin v-valo-table ($primary-stylename: v-table) {
+
+ $background-color: $v-table-background-color or v-valo-table-background-color();
+ $border-color: $v-table-border-color or darken($v-app-background-color, max(5%, $v-bevel-depth/3));
+
+ .#{$primary-stylename} {
+ // For scroll position indicator
+ position: relative;
+ background: $v-app-background-color;
+ }
+
+ .v-table-header table,
+ .v-table-footer table,
+ .v-table-table {
+ outline: $v-table-border-width solid $border-color;
+ }
+
+ .#{$primary-stylename}-header-wrap,
+ .#{$primary-stylename}-footer-wrap,
+ .#{$primary-stylename}-header-drag {
+ border: $v-table-border-width solid $border-color;
+ @include v-valo-gradient($v-app-background-color);
+ white-space: nowrap;
+ font-size: $v-table-header-font-size;
+ text-shadow: v-valo-button-text-shadow($v-app-background-color, $v-bevel-depth);
+ }
+
+ .#{$primary-stylename}-header-wrap {
+ position: relative;
+ border-bottom: none;
+ @if $v-table-border-radius > 0 {
+ border-radius: $v-table-border-radius $v-table-border-radius 0 0;
+ }
+ }
+
+ .#{$primary-stylename}-footer-wrap {
+ border-top: none;
+ @if $v-table-border-radius > 0 {
+ border-radius: 0 0 $v-table-border-radius $v-table-border-radius;
+ }
+ }
+
+ .#{$primary-stylename}-footer td {
+ border-left: $v-table-border-width solid $border-color;
+ }
+
+ .#{$primary-stylename}-footer-container,
+ .#{$primary-stylename}-caption-container {
+ overflow: hidden;
+ line-height: 1;
+ }
+
+ .#{$primary-stylename}-footer-container {
+ $vertical-padding: round(($v-table-row-height - $v-table-header-font-size)/2);
+ padding-top: $vertical-padding - $v-table-border-width;
+ padding-bottom: $vertical-padding;
+ float: right;
+ padding-right: $v-table-cell-padding-horizontal + $v-table-border-width;
+ }
+
+ [class^="#{$primary-stylename}-header-cell"] {
+ position: relative;
+ display: inline-block;
+ }
+
+ .#{$primary-stylename}-caption-container,
+ .#{$primary-stylename}-header-drag {
+ $vertical-padding: round(($v-table-row-height - $v-table-header-font-size)/2);
+ padding-top: $vertical-padding;
+ padding-bottom: $vertical-padding - $v-table-border-width;
+ padding-left: $v-table-cell-padding-horizontal;
+ padding-right: $v-table-cell-padding-horizontal;
+ border-left: $v-table-border-width solid $border-color;
+ }
+
+ .#{$primary-stylename}-resizer {
+ height: $v-table-row-height;
+ background: transparent;
+ width: $v-table-resizer-width;
+ cursor: e-resize;
+ cursor: col-resize;
+ position: absolute;
+ right: 0;
+ z-index: 1;
+ }
+
+ .#{$primary-stylename}-cell-content {
+ border-left: $v-table-border-width solid $border-color;
+ padding: 0 $v-table-cell-padding-horizontal;
+ }
+
+ .#{$primary-stylename}-header td:first-child .#{$primary-stylename}-caption-container,
+ .#{$primary-stylename}-footer td:first-child,
+ .#{$primary-stylename}-cell-content:first-child {
+ border-left-color: transparent;
+ }
+
+ .#{$primary-stylename}-cell-wrapper {
+ white-space: nowrap;
+ line-height: 1;
+ $vertical-padding: round(($v-table-row-height - $v-font-size)/2);
+ padding: $vertical-padding 0;
+ }
+
+ .#{$primary-stylename}-body {
+ border: $v-table-border-width solid $border-color;
+ }
+
+ .#{$primary-stylename}-table {
+ background-color: $background-color;
+ }
+
+ .#{$primary-stylename}-table td {
+ border-top: $v-table-border-width solid $border-color;
+ }
+
+ .#{$primary-stylename}-table tr:first-child td {
+ border-top: none;
+ }
+
+ .#{$primary-stylename}-row-odd {
+ background-color: darken($background-color, 2%);
+ }
+
+ .#{$primary-stylename} [class*="-row"].v-selected {
+ $selected-border-color: darken(v-valo-selection-color(), 8%);
+
+ @include v-valo-gradient(v-valo-selection-color());
+ background-origin: border-box;
+ color: v-valo-font-color(v-valo-selection-color(), 0.9);
+ text-shadow: v-valo-button-text-shadow(v-valo-selection-color(), $v-bevel-depth);
+
+ + .v-selected {
+ $gradient-end: first(last(v-valo-gradient-color-stops(v-valo-selection-color())));
+ background: $gradient-end;
+
+ td {
+ border-top-color: $gradient-end;
+ }
+ }
+
+ .#{$primary-stylename}-cell-content {
+ border-color: transparent;
+ border-left-color: $selected-border-color;
+
+ &:first-child {
+ border-left-color: transparent;
+ }
+ }
+ }
+
+ .#{$primary-stylename}-header-cell-asc .#{$primary-stylename}-sort-indicator,
+ .#{$primary-stylename}-header-cell-desc .#{$primary-stylename}-sort-indicator {
+ background: transparent;
+ width: $v-table-sort-indicator-width;
+ height: $v-table-row-height;
+ line-height: $v-table-row-height;
+ position: absolute;
+ right: 0;
+
+ + .#{$primary-stylename}-caption-container {
+ padding-right: $v-table-sort-indicator-width;
+ }
+ }
+
+ .#{$primary-stylename}-header-cell-asc .#{$primary-stylename}-sort-indicator:before,
+ .#{$primary-stylename}-header-cell-desc .#{$primary-stylename}-sort-indicator:before {
+ font-style: normal;
+ font-weight: normal;
+ display: inline-block;
+ }
+
+ .#{$primary-stylename}-header-cell-asc .#{$primary-stylename}-sort-indicator:before {
+ @include v-valo-table-sort-asc-icon-style;
+ }
+
+ .#{$primary-stylename}-header-cell-desc .#{$primary-stylename}-sort-indicator:before {
+ @include v-valo-table-sort-desc-icon-style;
+ }
+
+
+ .#{$primary-stylename}-focus {
+ $outline-width: max($v-table-border-width, 1px);
+ outline: $outline-width solid v-valo-focus-color();
+ outline-offset: -$outline-width;
+ }
+
+ .v-drag-element.#{$primary-stylename}-focus,
+ .v-drag-element .#{$primary-stylename}-focus {
+ outline: none;
+ }
+
+ .#{$primary-stylename}-header-drag {
+ position: absolute;
+ @include opacity(0.9);
+ margin-top: round($v-table-row-height/-2);
+ z-index: 30000;
+ line-height: 1;
+ }
+
+ .#{$primary-stylename}-focus-slot-right {
+ border-right: 2px solid rgba(v-valo-focus-color(), .5);
+ }
+
+ .#{$primary-stylename}-focus-slot-left {
+ border-left: 2px solid rgba(v-valo-focus-color(), .5);
+ left: 0;
+ right: auto;
+ margin-left: 0 !important;
+ }
+
+ .#{$primary-stylename}-column-selector {
+ @include v-valo-button-style;
+ position: absolute;
+ z-index: 2;
+ top: round($v-unit-size/-4);
+ right: round($v-unit-size/-4);
+ height: round($v-unit-size/2);
+ line-height: round($v-unit-size/2);
+ width: round($v-unit-size/2);
+ padding: 0;
+ border-radius: 50%;
+ cursor: pointer;
+ text-align: center;
+
+ @include opacity(0);
+ @if $v-animations-enabled {
+ @include transition(opacity 200ms 1s);
+ }
+
+ &:after {
+ content: "";
+ position: absolute;
+ top: -$v-button-border-width;
+ right: -$v-button-border-width;
+ bottom: -$v-button-border-width;
+ left: -$v-button-border-width;
+ border-radius: inherit;
+ }
+ &:active:after {
+ @include v-valo-button-active-style;
+ }
+ &:before {
+ @include v-valo-table-column-selector-icon-style;
+ }
+ }
+
+ .#{$primary-stylename}-header-wrap:hover .#{$primary-stylename}-column-selector {
+ @include opacity(1);
+ @include transition-delay(100ms);
+ }
+
+ /* row in column selector */
+ .v-on,
+ .v-off {
+ &:before {
+ @include v-valo-table-column-visible-icon-style;
+ font-size: 0.9em;
+ margin-right: round($v-unit-size/6);
+ }
+ div {
+ display: inline;
+ }
+ }
+ .v-off:before {
+ visibility: hidden;
+ }
+
+
+ tbody.v-drag-element {
+ display: block;
+ overflow: visible;
+ box-shadow: none;
+ background: transparent;
+ @include opacity(1);
+
+ tr {
+ display: block;
+ @include v-valo-drag-element-style;
+
+ &[style*="hidden"] {
+
+ }
+ }
+ }
+
+
+ .#{$primary-stylename}-body {
+ // Show on top of scroll position indicator (allow scroll events to hit the body instead of indicator)
+ position: relative;
+ z-index: 1;
+ }
+
+ .#{$primary-stylename}-scrollposition {
+ position: absolute;
+ top: 50%;
+ width: 100%;
+ height: $v-unit-size;
+ line-height: $v-unit-size;
+ margin: round($v-unit-size/-2) 0 0 !important;
+ text-align: center;
+ }
+
+
+
+
+
+ // Drag'n'drop styles
+
+ .#{$primary-stylename}-drag .#{$primary-stylename}-body {
+ box-shadow: 0 0 0 2px rgba(v-valo-focus-color(), .5);
+
+ @if color-luminance(v-valo-focus-color()) + 50 < color-luminance($background-color) {
+ border-color: v-valo-focus-color();
+ }
+
+ .v-ie8 & {
+ border-color: v-valo-focus-color();
+ }
+
+ .#{$primary-stylename}-focus {
+ outline: none;
+ }
+ }
+
+ .#{$primary-stylename}-row-drag-middle td:first-child:before {
+ content: "";
+ display: block;
+ position: absolute;
+ height: $v-table-row-height + $v-table-border-width;
+ left: 0;
+ right: 0;
+ background: v-valo-focus-color();
+ @include opacity(.2);
+ }
+
+ .#{$primary-stylename}-row-drag-top td:first-child:before,
+ .#{$primary-stylename}-row-drag-bottom td:first-child:after {
+ content: "\2022";
+ display: block;
+ position: absolute;
+ height: 2px;
+ left: 0;
+ right: 0;
+ background: v-valo-focus-color();
+ font-size: $v-font-size * 2;
+ line-height: 2px;
+ color: v-valo-focus-color();
+ text-indent: round($v-font-size/-4);
+ text-shadow: 0 0 1px $background-color, 0 0 1px $background-color;
+ }
+
+ .#{$primary-stylename}-row-drag-top td:first-child:before {
+ margin-top: -$v-table-border-width;
+ }
+
+ .v-ff & .#{$primary-stylename}-row-drag-top td:first-child:before,
+ .v-ff & .#{$primary-stylename}-row-drag-bottom td:first-child:after {
+ line-height: 1px;
+ }
+
+ .v-ie & .#{$primary-stylename}-row-drag-top td:first-child:before,
+ .v-ie & .#{$primary-stylename}-row-drag-bottom td:first-child:after {
+ line-height: 0;
+ }
+
+}
+
+
+
+
+@mixin v-valo-table-sort-asc-icon-style {
+ content: '\f0dd';
+ font-family: FontAwesome;
+}
+
+@mixin v-valo-table-sort-desc-icon-style {
+ content: '\f0de';
+ font-family: FontAwesome;
+}
+
+@mixin v-valo-table-column-selector-icon-style {
+ font-family: FontAwesome;
+ content: "\f013";
+}
+
+@mixin v-valo-table-column-visible-icon-style {
+ content: "\f00c";
+ font-family: FontAwesome;
+}
+
+
+
+
+@mixin v-valo-table-no-stripes ($primary-stylename: v-table) {
+ .#{$primary-stylename}-row,
+ .#{$primary-stylename}-row-odd {
+ background: transparent;
+ }
+}
+
+
+
+
+@mixin v-valo-table-no-vertical-lines ($primary-stylename: v-table) {
+ .#{$primary-stylename}-cell-content,
+ [class*="row"].v-selected .#{$primary-stylename}-cell-content {
+ border-left-color: transparent;
+ border-right-color: transparent;
+ }
+}
+
+@mixin v-valo-table-no-horizontal-lines ($primary-stylename: v-table) {
+ .#{$primary-stylename}-cell-content,
+ [class*="row"].v-selected .#{$primary-stylename}-cell-content {
+ border-top-color: transparent;
+ border-bottom-color: transparent;
+ }
+}
+
+@mixin v-valo-table-no-header ($primary-stylename: v-table) {
+ .#{$primary-stylename}-header-wrap {
+ display: none;
+ }
+}
+
+@mixin v-valo-table-borderless ($primary-stylename: v-table) {
+ .#{$primary-stylename}-header-wrap,
+ .#{$primary-stylename}-footer-wrap,
+ .#{$primary-stylename}-header-drag,
+ .#{$primary-stylename}-body {
+ border: none;
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/components/_tabsheet.scss b/WebContent/VAADIN/themes/valo/components/_tabsheet.scss
new file mode 100644
index 0000000000..af608c8e1d
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_tabsheet.scss
@@ -0,0 +1,335 @@
+$v-tabsheet-content-animation-enabled: $v-animations-enabled !default;
+
+
+
+
+@mixin v-valo-tabsheet-global ($primary-stylename: v-tabsheet) {
+ .#{$primary-stylename}-hidetabs > .#{$primary-stylename}-tabcontainer,
+ .#{$primary-stylename}-spacertd,
+ .#{$primary-stylename}-deco,
+ .v-disabled .#{$primary-stylename}-scroller,
+ .#{$primary-stylename} .v-disabled .#{$primary-stylename}-caption-close {
+ display: none;
+ }
+
+ .#{$primary-stylename}-content {
+ position: relative;
+ }
+
+}
+
+
+
+
+
+@mixin v-valo-tabsheet ($primary-stylename: v-tabsheet) {
+
+ $_scale: if( is-dark-color($v-app-background-color) , max(5%, $v-bevel-depth/2), min(-5%, -$v-bevel-depth/2) );
+ $border-color: scale-color($v-app-background-color, $lightness: $_scale);
+
+ .#{$primary-stylename} {
+ &:not(.v-has-width) {
+ width: auto !important;
+ }
+ }
+
+ .#{$primary-stylename}-spacertd {
+ display: none !important;
+ }
+
+ .#{$primary-stylename}-tabcontainer {
+ position: relative;
+ line-height: $v-unit-size;
+ @include user-select(none);;
+
+ table,
+ tbody,
+ tr {
+ display: inline-block;
+ border-spacing: 0;
+ border-collapse: collapse;
+ vertical-align: top;
+ }
+
+ td {
+ display: inline-block;
+ padding: 0;
+ }
+
+ &:before {
+ content: "";
+ position: absolute;
+ height: $v-border-width;
+ background: $border-color;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ }
+ }
+
+ .#{$primary-stylename}-tabs {
+ height: $v-unit-size;
+ position: relative;
+ white-space: nowrap;
+ @include box-sizing(border-box);
+
+ .v-caption {
+ height: $v-unit-size;
+ margin-left: round($v-unit-size/2);
+ padding: 0 round($v-unit-size/10);
+ @include box-sizing(border-box);
+ cursor: pointer;
+ text-align: center;
+ line-height: $v-unit-size;
+ font-size: $v-font-size;
+ font-weight: $v-font-weight;
+ width: auto !important;
+
+ @if $v-animations-enabled {
+ @include transition(border-bottom 200ms, color 200ms);
+ }
+
+ .v-icon {
+ cursor: inherit;
+ }
+
+ .v-icon + .v-captiontext {
+ margin-left: round($v-unit-size/4);
+ }
+
+ &:hover {
+ color: v-valo-selection-color();
+ }
+
+ &.v-disabled {
+ @include opacity($v-disabled-opacity);
+ cursor: default;
+ color: inherit !important;
+ border-bottom: none;
+ }
+ }
+
+ td:first-child .v-caption,
+ [aria-hidden="true"] + td .v-caption {
+ margin-left: 0;
+ }
+ }
+
+ .#{$primary-stylename}-tabitemcell:focus {
+ outline: none;
+
+ .v-caption {
+ color: v-valo-selection-color();
+ border-bottom: $v-border-width solid v-valo-selection-color();
+ }
+ }
+
+ .#{$primary-stylename}-tabitem-selected .v-caption.v-caption {
+ border-bottom: $v-border-width*2 solid v-valo-selection-color();
+ color: v-valo-selection-color();
+ }
+
+ .#{$primary-stylename}-caption-close {
+ display: inline-block;
+ font-size: 1.2em;
+ line-height: 1;
+ vertical-align: middle;
+ padding: round($v-font-size/8) round($v-font-size/4);
+ margin: round($v-font-size/-8) round($v-font-size/-4) round($v-font-size/-8) round($v-font-size/4);
+ border-radius: round($v-border-radius/2);
+
+ &:hover {
+ background: v-valo-selection-color();
+ color: v-valo-font-color(v-valo-selection-color());
+ }
+
+ &:active {
+ background: darken(v-valo-selection-color(), 5%);
+ color: v-valo-font-color(v-valo-selection-color());
+ }
+ }
+
+ .#{$primary-stylename}-scroller {
+ position: absolute;
+ right: 0;
+ top: 0;
+ padding-left: round($v-unit-size/2);
+ @include linear-gradient(to left, $v-app-background-color 70%, rgba($v-app-background-color, 0) 100%, $fallback: transparent);
+ pointer-events: none;
+ line-height: $v-unit-size;
+
+ &:after {
+ content: "";
+ height: $v-border-width;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ display: block;
+ @include linear-gradient(to left, $border-color 70%, rgba($border-color, 0) 100%, $fallback: transparent);
+ }
+
+ .v-ie8 &,
+ .v-ie9 & {
+ background-color: $v-app-background-color;
+
+ &:after {
+ background-color: $border-color;
+ }
+ }
+
+ button {
+ @include appearance(none);
+ border: none;
+ background: transparent;
+ font: inherit;
+ color: inherit;
+ height: $v-unit-size;
+ line-height: $v-unit-size;
+ margin: 0;
+ padding: 0 round($v-unit-size/4);
+ outline: none;
+ cursor: pointer;
+ pointer-events: auto;
+ @include opacity(.5);
+
+ &:hover {
+ @include opacity(1);
+ color: v-valo-selection-color();
+ }
+
+ &:active {
+ @include opacity(.7);
+ color: v-valo-selection-color();
+ }
+
+ &::-moz-focus-inner {
+ padding: 0;
+ border: 0
+ }
+ }
+
+ [class*="Next"] {
+ padding-left: round($v-unit-size/8);
+ &:before {
+ @include v-valo-tabsheet-scroller-next-icon-style;
+ }
+ }
+
+ [class*="Prev"] {
+ padding-right: round($v-unit-size/8);
+ &:before {
+ @include v-valo-tabsheet-scroller-prev-icon-style;
+ }
+ }
+
+ [class*="disabled"] {
+ cursor: default;
+ color: inherit !important;
+ @include opacity(.1, true);
+ }
+ }
+
+
+ @if $v-tabsheet-content-animation-enabled {
+ .#{$primary-stylename}-tabsheetpanel > .v-scrollable > .v-widget {
+ @include v-valo-anim-fade-in(300ms);
+ }
+ }
+
+}
+
+
+
+
+
+@mixin v-valo-tabsheet-centered-tabs ($primary-stylename: v-tabsheet) {
+ .#{$primary-stylename}-tabcontainer {
+ text-align: center;
+ }
+}
+
+@mixin v-valo-tabsheet-equal-width-tabs ($primary-stylename: v-tabsheet, $flex: false) {
+ .#{$primary-stylename}-tabcontainer {
+ table,
+ tbody,
+ tr {
+ width: 100%;
+ }
+
+ tr {
+ display: table;
+ @if $flex == false {
+ table-layout: fixed;
+ }
+ }
+
+ td {
+ display: table-cell;
+ //width: 100% !important;
+ }
+
+ .v-caption {
+ margin: 0;
+ display: block;
+ }
+ }
+}
+
+@mixin v-valo-tabsheet-icons-on-top ($primary-stylename: v-tabsheet) {
+ .#{$primary-stylename}-tabs {
+ height: $v-unit-size * 2;
+
+ .v-caption {
+ height: $v-unit-size * 2;
+ padding-top: $v-unit-size;
+ }
+
+ .v-icon {
+ display: block;
+ font-size: $v-font-size * 2;
+ $_offset: round($v-unit-size/4);
+ margin: -($v-unit-size - $_offset) auto #{-$_offset};
+ min-height: $v-unit-size;
+
+ + .v-captiontext.v-captiontext {
+ margin-left: 0;
+ }
+ }
+ }
+
+ .#{$primary-stylename}-scroller {
+ line-height: $v-unit-size*2;
+
+ button[class] {
+ padding: 0 round($v-unit-size/4);
+ display: block;
+ }
+ }
+}
+
+@mixin v-valo-tabsheet-only-selected-closable ($primary-stylename: v-tabsheet) {
+ .#{$primary-stylename}-caption-close {
+ visibility: hidden;
+ }
+
+ .#{$primary-stylename}-tabitem-selected .#{$primary-stylename}-caption-close {
+ visibility: visible;
+ }
+}
+
+@mixin v-valo-tabsheet-padded-tabbar ($primary-stylename: v-tabsheet) {
+ .#{$primary-stylename}-tabs {
+ padding: 0 round($v-unit-size/4);
+ }
+}
+
+@mixin v-valo-tabsheet-scroller-prev-icon-style {
+ font-family: FontAwesome;
+ content: "\f053";
+}
+
+@mixin v-valo-tabsheet-scroller-next-icon-style {
+ font-family: FontAwesome;
+ content: "\f054";
+}
diff --git a/WebContent/VAADIN/themes/valo/components/_textarea.scss b/WebContent/VAADIN/themes/valo/components/_textarea.scss
new file mode 100644
index 0000000000..00226adcaf
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_textarea.scss
@@ -0,0 +1,29 @@
+@mixin v-valo-textarea ($primary-stylename: v-textarea) {
+
+ .#{$primary-stylename} {
+ @include v-valo-textarea-style;
+ width: $v-default-field-width;
+ }
+
+ .#{$primary-stylename}-readonly {
+ @include v-valo-textfield-readonly-style;
+ }
+
+}
+
+
+@mixin v-valo-textarea-style ($bevel-style: $v-textfield-bevel-style, $bevel-depth: $v-textfield-bevel-depth,
+ $shadow-style: $v-textfield-shadow-style, $shadow-depth: $v-textfield-shadow-depth,
+ $unit-size: $v-textfield-unit-size, $border-radius: $v-textfield-border-radius,
+ $background-color: $v-textfield-background-color) {
+
+ $unit-size: $unit-size or $v-unit-size;
+
+ @include v-valo-textfield-style($bevel-style: $bevel-style, $bevel-depth: $bevel-depth,
+ $shadow-style: $shadow-style, $shadow-depth: $shadow-depth,
+ $unit-size: $unit-size, $border-radius: $border-radius,
+ $background-color: $background-color);
+ display: block; // Fixes extra white-space under the textarea element
+ height: auto;
+ resize: none;
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/components/_textfield.scss b/WebContent/VAADIN/themes/valo/components/_textfield.scss
new file mode 100644
index 0000000000..14f9535d41
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_textfield.scss
@@ -0,0 +1,219 @@
+$v-textfield-bevel-style: inset 0 1px 0 shade, 0 1px 0 hilite !default;
+$v-textfield-bevel-depth: $v-bevel-depth !default;
+$v-textfield-shadow-style: none !default;
+$v-textfield-shadow-depth: $v-shadow-depth !default;
+$v-textfield-background-color: null !default;
+$v-textfield-unit-size: null !default;
+$v-textfield-font-weight: 400 !default;
+$v-textfield-font-size: $v-font-size !default;
+$v-textfield-border-width: $v-border-width !default;
+$v-textfield-border-radius: $v-border-radius !default;
+$v-textfield-disabled-opacity: $v-disabled-opacity !default;
+
+
+
+@function v-valo-textfield-background-color ($context) {
+ $bg-color: lighten($context, 8%);
+ @if is-dark-color($context) {
+ $bg-color: darken($context, 4%);
+ }
+ @return $bg-color;
+}
+
+
+
+
+
+@function v-valo-textfield-box-shadow ($bevel-style: $v-textfield-bevel-style, $bevel-depth: $v-textfield-bevel-depth,
+ $shadow-style: $v-textfield-shadow-style, $shadow-depth: $v-textfield-shadow-depth) {
+ @if $bevel-depth == 0 and $shadow-depth == 0 {
+ @return null;
+ }
+ $_bevel: v-valo-replace-hilite-and-shade($bevel-style, white($bevel-depth/500%), black($bevel-depth/500%));
+ $_shadow: v-valo-shadow($shadow-style: $shadow-style, $shadow-depth: $shadow-depth);
+
+ @if $_bevel and $_shadow {
+ @return $_bevel, $_shadow;
+ } @else if $_bevel {
+ @return $_bevel;
+ } @else if $_shadow {
+ @return $_shadow;
+ } @else {
+ @return null;
+ }
+
+}
+
+
+
+
+@mixin v-valo-textfield-size ($unit-size: $v-unit-size, $border-radius: $v-textfield-border-radius) {
+ height: $unit-size;
+ $padding-width: ceil($unit-size/6);
+ @if $border-radius {
+ $padding-width: $padding-width + ceil($border-radius/3);
+ }
+ padding: ceil($unit-size/9) $padding-width;
+}
+
+
+
+@function v-valo-textfield-border-color ($bevel-style: $v-bevel-style, $bevel-depth: $v-bevel-depth,
+ $background-color: $v-textfield-background-color) {
+ $background-color: $background-color or v-valo-textfield-background-color($v-app-background-color);
+ $border-color: if(color-luminance($background-color) < color-luminance($v-app-background-color), $background-color, $v-app-background-color);
+ $border-color: blend-darken($border-color, scale-color($border-color, $lightness: max(-50%, -$bevel-depth/2)));
+ $border-color: scale-color($border-color, $saturation: -$bevel-depth/2);
+ @return $border-color;
+}
+
+
+
+
+@mixin v-valo-textfield-style ($bevel-style: $v-textfield-bevel-style, $bevel-depth: $v-textfield-bevel-depth,
+ $shadow-style: $v-textfield-shadow-style, $shadow-depth: $v-textfield-shadow-depth,
+ $unit-size: $v-textfield-unit-size, $border-radius: $v-textfield-border-radius,
+ $background-color: $v-textfield-background-color) {
+
+ $background-color: $background-color or v-valo-textfield-background-color($v-app-background-color);
+ $unit-size: $unit-size or $v-unit-size;
+
+ @include appearance(none);
+ margin: 0;
+ font: inherit;
+ font-size: if($v-textfield-font-size != $v-font-size, $v-textfield-font-size, null);
+ font-weight: $v-textfield-font-weight;
+ @include v-valo-textfield-size($unit-size, $border-radius);
+ border-radius: $border-radius;
+ border: $v-textfield-border-width solid v-valo-textfield-border-color($bevel-style, $bevel-depth, $background-color);
+ background: $background-color;
+ color: v-valo-font-color($background-color);
+ box-shadow: v-valo-textfield-box-shadow($bevel-style: $bevel-style, $bevel-depth: $bevel-depth, $shadow-style: $shadow-style, $shadow-depth: $shadow-depth);
+
+ @if $v-animations-enabled {
+ @include transition(box-shadow 180ms, border 180ms);
+ }
+
+ &.v-disabled {
+ @include opacity($v-textfield-disabled-opacity);
+ }
+
+ &:focus {
+ @include v-valo-textfield-focus-style($bevel-style: $bevel-style, $bevel-depth: $bevel-depth, $shadow-style: $shadow-style, $shadow-depth: $shadow-depth);
+ }
+
+ // TODO allow parent selector to be used in interpolation
+ &.v-textfield-prompt,
+ &.v-textarea-prompt {
+ @include v-valo-textfield-prompt-style($background-color);
+ }
+
+}
+
+
+@mixin v-valo-textfield-prompt-style ($background-color) {
+ $font-color: v-valo-font-color($background-color);
+ $font-color: mix($background-color, $font-color);
+ @if is-dark-color($background-color) and saturation($background-color) > 50% {
+ $font-color: scale-color($font-color, $lightness: 20%);
+ }
+ $font-color: scale-color($font-color, $saturation: saturation($font-color));
+ color: $font-color;
+}
+
+
+@mixin v-valo-textfield-focus-style ($bevel-style: $v-textfield-bevel-style, $bevel-depth: $v-textfield-bevel-depth,
+ $shadow-style: $v-textfield-shadow-style, $shadow-depth: $v-textfield-shadow-depth) {
+ outline: none;
+ @if $v-animations-enabled {
+ @include transition(none);
+ }
+
+ $focus-color: v-valo-focus-color();
+
+ @if color-luminance($focus-color) + 50 < color-luminance($v-app-background-color) {
+ border-color: $focus-color;
+ }
+
+ box-shadow: v-valo-textfield-box-shadow($bevel-style: $bevel-style, $bevel-depth: $bevel-depth, $shadow-style: $shadow-style, $shadow-depth: $shadow-depth),
+ v-valo-focus-box-shadow($color: $focus-color);
+}
+
+
+@mixin v-valo-textfield-readonly-style {
+ background: transparent;
+ box-shadow: none;
+ &:focus {
+ box-shadow: v-valo-focus-box-shadow();
+ }
+}
+
+
+@mixin v-valo-textfield ($primary-stylename: v-textfield) {
+
+ .#{$primary-stylename} {
+ @include v-valo-textfield-style;
+ width: $v-default-field-width;
+ }
+
+ .#{$primary-stylename}-readonly {
+ @include v-valo-textfield-readonly-style;
+ }
+
+}
+
+
+
+@mixin v-valo-textfield-borderless-style ($background-color: transparent) {
+ border: none;
+ border-radius: 0;
+ background: $background-color;
+ box-shadow: none;
+
+ &:focus {
+ box-shadow: none;
+ }
+}
+
+
+
+@mixin v-valo-textfield-inline-icon($primary-stylename: v-textfield, $stylename: inline-icon, $unit-size: $v-unit-size, $font-size: $v-textfield-font-size, $image-icon-size: 16px) {
+ .v-slot-#{$stylename} {
+ position: relative;
+ }
+
+ .v-caption-#{$stylename} {
+ padding: 0;
+
+ .v-captiontext {
+ @include v-valo-caption-style;
+ margin: 0;
+ }
+
+ .v-icon {
+ position: absolute;
+ z-index: 10;
+ }
+
+ // Font icons
+ span.v-icon {
+ left: $v-textfield-border-width;
+ bottom: $v-textfield-border-width;
+ width: $unit-size;
+ line-height: $unit-size - $v-textfield-border-width*2;
+ text-align: center;
+ font-size: $font-size;
+ }
+
+ // Image icons
+ img.v-icon {
+ left: round(($unit-size - $image-icon-size)/2);
+ bottom: round(($unit-size - $image-icon-size)/2);
+ }
+ }
+
+ .#{$primary-stylename}-#{$stylename},
+ .v-textarea-#{$stylename} {
+ padding-left: $unit-size;
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/components/_tree.scss b/WebContent/VAADIN/themes/valo/components/_tree.scss
new file mode 100644
index 0000000000..0dcabbcf84
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_tree.scss
@@ -0,0 +1,253 @@
+$v-tree-row-height: round($v-unit-size/1.3) !default;
+$v-tree-animations-enabled: true !default;
+$v-tree-expand-animation-enabled: false !default;
+
+
+@if $v-tree-expand-animation-enabled {
+ @include keyframes(v-valo-tree-node-open) {
+ 0% {
+ max-height: 0;
+ }
+ 100% {
+ max-height: $v-tree-row-height * 10;
+ }
+ }
+
+ @include keyframes(v-valo-tree-node-close) {
+ 0% {
+ max-height: $v-tree-row-height * 10;
+ }
+ 100% {
+ max-height: 0;
+ }
+ }
+}
+
+
+@mixin v-valo-tree ($primary-stylename: v-tree) {
+
+ .#{$primary-stylename} {
+ position: relative;
+ white-space: nowrap;
+ @include user-select(none);;
+
+ &:focus {
+ outline: none;
+ }
+ }
+
+ .#{$primary-stylename}-node {
+ &:before {
+ content: "";
+ position: absolute;
+ display: inline-block;
+ z-index: 3;
+ width: 1.9em;
+ height: $v-tree-row-height;
+ cursor: pointer;
+
+ .v-ie8 & {
+ content: "+";
+ position: static;
+ margin-left: -1.9em;
+ //background: red;
+ vertical-align: top;
+ @include v-valo-tree-collapsed-icon-style;
+ text-align: center;
+ }
+ }
+
+ .v-ie8 & {
+ padding-left: 1.9em;
+ }
+ }
+
+ .#{$primary-stylename}-node-caption {
+ height: $v-tree-row-height;
+ line-height: $v-tree-row-height - 1px;
+ overflow: hidden;
+ white-space: nowrap;
+
+ & > div {
+ display: inline-block;
+ width: 100%;
+ position: relative;
+ z-index: 2;
+
+ &:before {
+ @include v-valo-tree-collapsed-icon-style;
+ display: inline-block;
+ width: .5em;
+ text-align: center;
+ margin: 0 .6em 0 .8em;
+
+ @if $v-tree-animations-enabled {
+ @include transition(all 100ms);
+ }
+
+ .v-ie8 & {
+ display: none;
+ }
+ }
+ }
+
+ span {
+ padding-right: $v-tree-row-height;
+ cursor: pointer;
+ display: inline-block;
+ // Allow to click on the whole row (almost, at least the right side part)
+ width: 100%;
+
+ // IE does strange things when the width is wider than the parent
+ .v-ie & {
+ width: auto;
+ }
+ }
+
+ .v-icon {
+ padding-right: 0;
+ width: auto;
+ min-width: 1em;
+ }
+
+ &:after {
+ content: "";
+ display: inline-block;
+ vertical-align: top;
+ position: absolute;
+ z-index: 1;
+ left: 0;
+ width: 100%;
+ height: $v-tree-row-height;
+ border-radius: $v-border-radius;
+ opacity: 0;
+
+ @if $v-tree-animations-enabled {
+ @include transition(opacity 120ms);
+ }
+
+ .v-ie8 & {
+ content: none;
+ }
+ }
+
+ .v-ie8 & {
+ display: inline-block;
+ }
+ }
+
+ .#{$primary-stylename}-node-expanded > .#{$primary-stylename}-node-caption > div:before {
+ @include v-valo-tree-expanded-icon-style;
+
+ @if $v-tree-animations-enabled {
+ @include transform(rotate(90deg));
+ @include v-valo-tree-collapsed-icon-style;
+ }
+ }
+
+ .v-ie8 & .#{$primary-stylename}-node-expanded:before {
+ @include v-valo-tree-expanded-icon-style(true);
+ }
+
+
+
+ .#{$primary-stylename}-node-focused {
+ // This a v-tree-node-caption element
+ &:after {
+ opacity: 1;
+ border: 1px solid v-valo-focus-color();
+ }
+ }
+
+
+
+ .#{$primary-stylename}-node-selected {
+ color: v-valo-font-color(v-valo-selection-color(), 0.9);
+ text-shadow: v-valo-button-text-shadow(v-valo-selection-color(), $v-bevel-depth);
+
+ &:after {
+ opacity: 1;
+ @include v-valo-gradient(v-valo-selection-color());
+ border: none;
+
+ .v-ie8 & {
+ //visibility: visible;
+ }
+ }
+
+ .v-ie8 & {
+ @include v-valo-gradient(v-valo-selection-color());
+ }
+ }
+
+ .#{$primary-stylename}-node-children {
+ padding-left: round($v-unit-size/2);
+
+ .v-ie8 & {
+ padding-left: 0;
+ }
+ }
+
+ @if $v-tree-expand-animation-enabled {
+ .#{$primary-stylename}-node-children[style*="display: none"] {
+ @include animation(v-valo-tree-node-close 400ms ease-out forwards);
+ display: block !important;
+ }
+
+ .#{$primary-stylename}-node-expanded > .#{$primary-stylename}-node-children {
+ @include animation(v-valo-tree-node-open 400ms ease-in);
+ }
+ }
+
+
+
+ // Drag'n'drop styles
+
+ .#{$primary-stylename}-node-drag-top:before,
+ .#{$primary-stylename}-node-drag-bottom:after {
+ content: "\2022";
+ display: block;
+ position: absolute;
+ height: 2px;
+ width: 100%;
+ background: v-valo-focus-color();
+ font-size: $v-font-size * 2;
+ line-height: 2px;
+ color: v-valo-focus-color();
+ text-indent: round($v-font-size/-4);
+ text-shadow: 0 0 1px $v-app-background-color, 0 0 1px $v-app-background-color;
+ }
+
+ .#{$primary-stylename}-node-caption-drag-center {
+ box-shadow: 0 0 0 2px v-valo-focus-color();
+ position: relative;
+ border-radius: $v-border-radius;
+
+ .v-ie8 & {
+ outline: 2px solid v-valo-focus-color();
+ }
+ }
+
+ .v-ff & .#{$primary-stylename}-node-drag-top:before,
+ .v-ff & .#{$primary-stylename}-node-drag-bottom:after {
+ line-height: 1px;
+ }
+
+ .v-ie8 & .#{$primary-stylename}-node-drag-top:before,
+ .v-ie8 & .#{$primary-stylename}-node-drag-bottom:after {
+ line-height: 0;
+ }
+}
+
+
+@mixin v-valo-tree-collapsed-icon-style {
+ content: "\f0da";
+ font-family: FontAwesome;
+}
+
+@mixin v-valo-tree-expanded-icon-style ($force: false) {
+ @if $v-tree-animations-enabled == false or $force {
+ content: "\f0d7";
+ font-family: FontAwesome;
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/components/_treetable.scss b/WebContent/VAADIN/themes/valo/components/_treetable.scss
new file mode 100644
index 0000000000..a4083a1901
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_treetable.scss
@@ -0,0 +1,27 @@
+@mixin v-valo-treetable ($primary-stylename: v-treetable) {
+ .v-table-cell-wrapper {
+ //position: relative;
+ }
+
+ .#{$primary-stylename}-treespacer {
+ display: inline-block;
+ background: transparent;
+ width: round($v-unit-size/2);
+ //left: round($v-unit-size/-8);
+ left: 0;
+ position: absolute;
+ text-align: right;
+
+ &:before {
+
+ }
+ }
+
+ .#{$primary-stylename}-node-closed:before {
+ @include v-valo-tree-collapsed-icon-style;
+ }
+
+ .#{$primary-stylename}-node-open:before {
+ @include v-valo-tree-expanded-icon-style($force: true);
+ }
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/components/_twincolselect.scss b/WebContent/VAADIN/themes/valo/components/_twincolselect.scss
new file mode 100644
index 0000000000..e2951802bc
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_twincolselect.scss
@@ -0,0 +1,90 @@
+@mixin v-valo-twincolselect ($primary-stylename: v-select-twincol) {
+
+ .#{$primary-stylename} {
+ white-space: normal;
+
+ select {
+ @include v-valo-nativeselect-select-style;
+ }
+
+ &:not(.v-has-width) {
+ width: auto !important;
+ }
+
+ .v-textfield,
+ .v-nativebutton {
+ width: auto !important;
+ margin-top: round($v-unit-size/4);
+ }
+
+ .v-nativebutton {
+ margin-left: round($v-unit-size/4);
+ }
+ }
+
+ .#{$primary-stylename}-caption-left,
+ .#{$primary-stylename}-caption-right {
+ @include v-valo-caption-style;
+ }
+
+ .#{$primary-stylename}-buttons {
+ white-space: nowrap;
+ display: inline-block;
+ vertical-align: top;
+ position: relative;
+ min-width: 3.5em;
+
+ .v-button {
+ @include v-valo-widget-style;
+ position: absolute;
+ left: round($v-unit-size/4);
+ right: round($v-unit-size/4);
+ top: $v-unit-size - $v-button-border-width;
+ padding: 0;
+ text-align: center;
+
+ &:first-child {
+ top: 0;
+ }
+ }
+
+ .v-button-caption {
+ display: none;
+ }
+
+ .v-button:focus {
+ z-index: 1;
+ }
+
+ @if $v-button-border-radius > 0 {
+ .v-button:first-child {
+ border-radius: $v-button-border-radius $v-button-border-radius 0 0;
+ }
+
+ .v-button:last-child {
+ border-radius: 0 0 $v-button-border-radius $v-button-border-radius;
+ }
+ }
+
+ .v-button-wrap:before {
+ @include v-valo-twincolselect-remove-icon-style;
+ }
+
+ .v-button:first-child .v-button-wrap:before {
+ @include v-valo-twincolselect-add-icon-style;
+ }
+ }
+
+}
+
+
+
+@mixin v-valo-twincolselect-add-icon-style {
+ font-family: FontAwesome;
+ content: "\f054";
+}
+
+@mixin v-valo-twincolselect-remove-icon-style {
+ font-family: FontAwesome;
+ content: "\f053";
+}
diff --git a/WebContent/VAADIN/themes/valo/components/_upload.scss b/WebContent/VAADIN/themes/valo/components/_upload.scss
new file mode 100644
index 0000000000..14a4501966
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_upload.scss
@@ -0,0 +1,5 @@
+@mixin v-valo-upload ($primary-stylename: v-upload) {
+ .#{$primary-stylename} .v-button {
+ @include v-valo-widget-style;
+ }
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/components/_widget.scss b/WebContent/VAADIN/themes/valo/components/_widget.scss
new file mode 100644
index 0000000000..fe41bd2f35
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_widget.scss
@@ -0,0 +1,26 @@
+//
+// @mixin v-valo-widget-style
+@mixin v-valo-widget-style {
+ // Baseline expectations for all Vaadin widgets
+ @include box-sizing(border-box);
+ display: inline-block;
+
+ // Reset, since ordered layout uses text-align for horizotal alignment inside slots and
+ // white-space: nowrap; for horizontal layout orientation
+ text-align: left;
+ white-space: normal;
+
+ // This is needed to overcome issues with line-boxes (i.e. block elements
+ // with inline elements as children, whose height is less than the parent's line-height)
+ // See: http://stackoverflow.com/questions/3003051/why-does-the-html5-doctype-mess-with-my-padding
+ // In order to avoid specifying font-size: 0; for all component containers, we need to avoid adding
+ // vertical-align: top/middle/bottom to any component by default, which will mess up the spacing.
+ line-height: $v-line-height;
+}
+
+
+@mixin v-valo-widget {
+ .v-widget {
+ @include v-valo-widget-style;
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/components/_window.scss b/WebContent/VAADIN/themes/valo/components/_window.scss
new file mode 100644
index 0000000000..a006ca1361
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/_window.scss
@@ -0,0 +1,273 @@
+$v-window-border-radius: null !default;
+$v-window-shadow-style: 0 4px 12px 6px rgba(0,0,0, $v-shadow-depth/100%), $v-overlay-shadow-style !default;
+$v-window-open-animation: null !default;
+$v-window-animations-enabled: $v-animations-enabled !default;
+
+
+@if $v-window-animations-enabled {
+ @include keyframes(v-valo-modal-window-indication) {
+ 0% { opacity: 0; }
+ 100% { opacity: 1; }
+ }
+}
+
+
+@mixin v-valo-window ($primary-stylename: v-window) {
+
+ .#{$primary-stylename} {
+ @include v-valo-overlay-style;
+
+ @if $v-window-animations-enabled and $v-window-open-animation {
+ @include animation($v-window-open-animation);
+ }
+
+ @if $v-window-shadow-style {
+ @if $v-window-shadow-style == none {
+ box-shadow: none;
+ } @else {
+ box-shadow: v-valo-shadow($shadow-style: $v-window-shadow-style);
+ }
+ }
+ border-radius: $v-window-border-radius;
+ padding: 0;
+ min-width: 4*$v-unit-size !important;
+ min-height: $v-unit-size !important;
+ overflow: hidden !important;
+ white-space: nowrap;
+
+ @if $v-window-animations-enabled {
+ @include transition(width 200ms, height 200ms, top 200ms, left 200ms);
+ }
+ }
+
+ .#{$primary-stylename}-modalitycurtain {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ background: $v-app-background-color;
+ @include opacity(.3);
+ }
+
+ .#{$primary-stylename}-draggingCurtain {
+ position: fixed !important;
+ }
+
+ .#{$primary-stylename}-resizingCurtain + .v-window,
+ .#{$primary-stylename}-draggingCurtain + .v-window {
+ @include transition(none);
+ }
+
+ .#{$primary-stylename}-outerheader {
+ position: absolute;
+ z-index: 2;
+ top: 0;
+ left: 0;
+ right: 0;
+ //height: $v-unit-size - 1px;
+ // Raise above the window content, if that is ever promoted to a layer
+ @include transform(translatez(0));
+
+ &:after {
+ content: "";
+ position: absolute;
+ bottom: -1px;
+ right: 0;
+ left: 0;
+ height: 1px;
+ $_bg: v-valo-overlay-background-color();
+ background: adjust-color($_bg, $lightness: if(is-dark-color($_bg), 3%, -5%), $saturation: -10%);
+ }
+ }
+
+ .#{$primary-stylename}-header {
+ @include user-select(none);;
+ cursor: move;
+ line-height: $v-unit-size - 1px;
+ padding-left: round($v-unit-size/3);
+ margin-right: $v-unit-size * 2;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ color: blend-normal(rgba(v-valo-font-color(v-valo-overlay-background-color()), .7), v-valo-overlay-background-color());
+ }
+
+ .#{$primary-stylename}-closebox,
+ .#{$primary-stylename}-maximizebox,
+ .#{$primary-stylename}-restorebox {
+ position: absolute;
+ z-index: 2;
+ top: 0;
+ right: 0;
+ width: $v-unit-size;
+ height: $v-unit-size - 1px;
+ line-height: $v-unit-size - 3px;
+ text-align: center;
+ cursor: pointer;
+ font-family: FontAwesome;
+ font-size: round($v-font-size * 1.3);
+ @include opacity(.4);
+ @if $v-animations-enabled {
+ @include transition(all 140ms);
+ }
+
+ &:focus {
+ outline: none;
+ }
+
+ &:hover {
+ @include opacity(1);
+ color: v-valo-selection-color();
+ }
+
+ &:active {
+ color: inherit;
+ }
+ }
+
+ .#{$primary-stylename}-closebox {
+ @include v-valo-window-close-icon-style;
+ }
+
+ .#{$primary-stylename}-maximizebox,
+ .#{$primary-stylename}-restorebox {
+ right: $v-unit-size;
+ }
+
+ .#{$primary-stylename}-restorebox-disabled,
+ .#{$primary-stylename}-maximizebox-disabled {
+ display: none;
+ }
+
+ .#{$primary-stylename}-maximizebox {
+ @include v-valo-window-maximize-icon-style;
+ }
+
+ .#{$primary-stylename}-restorebox {
+ @include v-valo-window-restore-icon-style;
+ }
+
+ .v-window > .popupContent,
+ .#{$primary-stylename}-wrap,
+ .#{$primary-stylename}-contents,
+ .#{$primary-stylename}-contents > .v-scrollable {
+ height: 100%;
+ }
+
+ .#{$primary-stylename}-contents {
+ @include box-sizing(border-box);
+ border-radius: $v-border-radius;
+ margin-top: 0 !important;
+
+ > .v-scrollable {
+ @include v-valo-panel-adjust-content-margins;
+
+ > .v-formlayout {
+ @include v-valo-formlayout-margins($all: round($v-unit-size/3));
+ }
+
+ position: relative;
+
+ &:focus {
+ outline: none;
+ }
+
+ &:before {
+ content: "";
+ position: absolute;
+ z-index: 2;
+ top: 0;
+ height: 1px;
+ background: v-valo-overlay-background-color();
+ left: 0;
+ right: 0;
+ }
+ }
+ }
+
+ .#{$primary-stylename}-footer {
+ height: 0;
+ }
+
+ .#{$primary-stylename}-resizebox {
+ position: absolute;
+ z-index: 1000;
+ right: 0;
+ bottom: 0;
+ width: round($v-unit-size/2);
+ height: round($v-unit-size/2);
+ cursor: nwse-resize;
+
+ .v-ie8 & {
+ background: #000;
+ filter: alpha(opacity=0.1);
+ }
+
+ .v-ie8 &,
+ .v-ie9 & {
+ cursor: se-resize;
+ }
+ }
+
+ .#{$primary-stylename}-resizebox-disabled {
+ display: none;
+ }
+
+
+ // Flash modal window when clicking on the curtain
+ .#{$primary-stylename}-modalitycurtain:active {
+ ~ .v-window {
+ @include animation(none);
+ }
+ }
+
+
+
+
+ .#{$primary-stylename}-bottom-toolbar {
+ padding: round($v-unit-size/5) round($v-unit-size/3);
+ background: $v-app-background-color;
+
+ .v-expand {
+ overflow: visible;
+ }
+
+ .v-label {
+ line-height: $v-unit-size - 1px;
+ }
+
+ .v-spacing {
+ width: round($v-layout-spacing-horizontal/2);
+ }
+ }
+
+ .v-margin-left.v-margin-right.v-margin-bottom {
+ .#{$primary-stylename}-bottom-toolbar {
+ margin: 0 round($v-unit-size/-3) round($v-unit-size/-3);
+ @include box-sizing(content-box);
+ }
+ }
+
+}
+
+
+@mixin v-valo-window-close-icon-style {
+ &:before {
+ // times cross
+ content: "\00d7";
+ }
+}
+
+@mixin v-valo-window-maximize-icon-style {
+ &:before {
+ content: "+";
+ }
+}
+
+@mixin v-valo-window-restore-icon-style {
+ &:before {
+ // en-dash
+ content: "\2013";
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/components/img/colorpicker/gradient.png b/WebContent/VAADIN/themes/valo/components/img/colorpicker/gradient.png
new file mode 100644
index 0000000000..def063a8ab
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/img/colorpicker/gradient.png
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/components/img/colorpicker/gradient2.png b/WebContent/VAADIN/themes/valo/components/img/colorpicker/gradient2.png
new file mode 100644
index 0000000000..f51ed752a7
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/img/colorpicker/gradient2.png
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/components/img/colorpicker/slider_hue_bg.png b/WebContent/VAADIN/themes/valo/components/img/colorpicker/slider_hue_bg.png
new file mode 100644
index 0000000000..bcef2c5575
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/components/img/colorpicker/slider_hue_bg.png
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/_fonts.scss b/WebContent/VAADIN/themes/valo/fonts/_fonts.scss
new file mode 100644
index 0000000000..b21d2f0b18
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/_fonts.scss
@@ -0,0 +1,41 @@
+// Not included automatically, only if $v-font-family specifies them
+@import "open-sans/open-sans";
+@import "source-sans-pro/source-sans-pro";
+@import "roboto/roboto";
+@import "lato/lato";
+@import "lora/lora";
+
+
+@mixin v-valo-fonts {
+ $v-valo-fonts-pathPrefix: null;
+ @if $v-relative-paths == false {
+ $v-valo-fonts-pathPrefix: "../valo/fonts/";
+ }
+
+ // Font Awesome
+ @include v-valo-icon-font(FontAwesome, #{$v-valo-fonts-pathPrefix}font-awesome/fontawesome-webfont);
+}
+
+
+
+@mixin v-valo-icon-font($font-family, $file-name) {
+ @include font-face($font-family, $file-name);
+
+ .#{$font-family} {
+ font-family: #{$font-family};
+ font-style: normal;
+ font-weight: normal;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ display: inline-block;
+ text-align: center;
+ @include user-select(none);;
+ cursor: default;
+ }
+}
+
+
+
+// Include directly to avoid trapping inside a parent selector
+// TODO move inside the theme main mixin once we can use Sass 3.3 (@at-root)
+@include v-valo-fonts; \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/fonts/font-awesome/fontawesome-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/font-awesome/fontawesome-webfont.eot
new file mode 100644
index 0000000000..7c79c6a6bc
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/font-awesome/fontawesome-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/font-awesome/fontawesome-webfont.svg b/WebContent/VAADIN/themes/valo/fonts/font-awesome/fontawesome-webfont.svg
new file mode 100644
index 0000000000..45fdf33830
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/font-awesome/fontawesome-webfont.svg
@@ -0,0 +1,414 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="fontawesomeregular" horiz-adv-x="1536" >
+<font-face units-per-em="1792" ascent="1536" descent="-256" />
+<missing-glyph horiz-adv-x="448" />
+<glyph unicode=" " horiz-adv-x="448" />
+<glyph unicode="&#x09;" horiz-adv-x="448" />
+<glyph unicode="&#xa0;" horiz-adv-x="448" />
+<glyph unicode="&#xa8;" horiz-adv-x="1792" />
+<glyph unicode="&#xa9;" horiz-adv-x="1792" />
+<glyph unicode="&#xae;" horiz-adv-x="1792" />
+<glyph unicode="&#xb4;" horiz-adv-x="1792" />
+<glyph unicode="&#xc6;" horiz-adv-x="1792" />
+<glyph unicode="&#x2000;" horiz-adv-x="768" />
+<glyph unicode="&#x2001;" />
+<glyph unicode="&#x2002;" horiz-adv-x="768" />
+<glyph unicode="&#x2003;" />
+<glyph unicode="&#x2004;" horiz-adv-x="512" />
+<glyph unicode="&#x2005;" horiz-adv-x="384" />
+<glyph unicode="&#x2006;" horiz-adv-x="256" />
+<glyph unicode="&#x2007;" horiz-adv-x="256" />
+<glyph unicode="&#x2008;" horiz-adv-x="192" />
+<glyph unicode="&#x2009;" horiz-adv-x="307" />
+<glyph unicode="&#x200a;" horiz-adv-x="85" />
+<glyph unicode="&#x202f;" horiz-adv-x="307" />
+<glyph unicode="&#x205f;" horiz-adv-x="384" />
+<glyph unicode="&#x2122;" horiz-adv-x="1792" />
+<glyph unicode="&#x221e;" horiz-adv-x="1792" />
+<glyph unicode="&#x2260;" horiz-adv-x="1792" />
+<glyph unicode="&#xe000;" horiz-adv-x="500" d="M0 0z" />
+<glyph unicode="&#xf000;" horiz-adv-x="1792" d="M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z" />
+<glyph unicode="&#xf001;" d="M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89 t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf002;" horiz-adv-x="1664" d="M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5 t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
+<glyph unicode="&#xf003;" horiz-adv-x="1792" d="M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13 t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317q54 43 100.5 115.5t46.5 131.5z M1792 1120v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf004;" horiz-adv-x="1792" d="M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600 q-18 -18 -44 -18z" />
+<glyph unicode="&#xf005;" horiz-adv-x="1664" d="M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455 l502 -73q56 -9 56 -46z" />
+<glyph unicode="&#xf006;" horiz-adv-x="1664" d="M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z" />
+<glyph unicode="&#xf007;" horiz-adv-x="1408" d="M1408 131q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81 t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
+<glyph unicode="&#xf008;" horiz-adv-x="1920" d="M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128 q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45 t45 -19h128q26 0 45 19t19 45zM1792 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 704v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1792 320v128 q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 704v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19 t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1920 1248v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf009;" horiz-adv-x="1664" d="M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38 h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf00a;" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf00b;" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h960q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf00c;" horiz-adv-x="1792" d="M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z" />
+<glyph unicode="&#xf00d;" horiz-adv-x="1408" d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68 t-28 -68l-294 -294l294 -294q28 -28 28 -68z" />
+<glyph unicode="&#xf00e;" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224 q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5 t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
+<glyph unicode="&#xf010;" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z " />
+<glyph unicode="&#xf011;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5 t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0 52 38 90t90 38t90 -38t38 -90z" />
+<glyph unicode="&#xf012;" horiz-adv-x="1792" d="M256 96v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 224v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 480v-576q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1408 864v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1376v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf013;" d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1536 749v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108q-44 -23 -91 -38 q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5v222q0 12 8 23t19 13 l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10q129 -119 165 -170q7 -8 7 -22 q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5z" />
+<glyph unicode="&#xf014;" horiz-adv-x="1408" d="M512 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM768 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1024 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1152 76v948h-896v-948q0 -22 7 -40.5t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832 q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf015;" horiz-adv-x="1664" d="M1408 544v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6zM1631 613l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5t11 21.5 l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5z" />
+<glyph unicode="&#xf016;" horiz-adv-x="1280" d="M128 0h1024v768h-416q-40 0 -68 28t-28 68v416h-512v-1280zM768 896h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376zM1280 864v-896q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h640q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88z " />
+<glyph unicode="&#xf017;" d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf018;" horiz-adv-x="1920" d="M1111 540v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20zM1870 73q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256 q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116z" />
+<glyph unicode="&#xf019;" horiz-adv-x="1664" d="M1280 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 416v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h465l135 -136 q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68zM1339 985q17 -41 -14 -70l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39z" />
+<glyph unicode="&#xf01a;" d="M1120 608q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273 t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf01b;" d="M1118 660q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198 t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf01c;" d="M1023 576h316q-1 3 -2.5 8t-2.5 8l-212 496h-708l-212 -496q-1 -2 -2.5 -8t-2.5 -8h316l95 -192h320zM1536 546v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552 q25 -61 25 -123z" />
+<glyph unicode="&#xf01d;" d="M1184 640q0 -37 -32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf01e;" d="M1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q14 0 25 -9 l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59z" />
+<glyph unicode="&#xf021;" d="M1511 480q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129q-19 -19 -45 -19t-45 19t-19 45v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117 q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5zM1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5v7q65 268 270 434.5t480 166.5 q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45z" />
+<glyph unicode="&#xf022;" horiz-adv-x="1792" d="M384 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M384 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1536 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5z M1536 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5zM1536 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5 t9.5 -22.5zM1664 160v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 1248v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47 t47 -113z" />
+<glyph unicode="&#xf023;" horiz-adv-x="1152" d="M320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192zM1152 672v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf024;" horiz-adv-x="1792" d="M320 1280q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48 t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf025;" horiz-adv-x="1664" d="M1664 650q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78 t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314q0 151 67 291t179 242.5 t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291z" />
+<glyph unicode="&#xf026;" horiz-adv-x="768" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45z" />
+<glyph unicode="&#xf027;" horiz-adv-x="1152" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142z" />
+<glyph unicode="&#xf028;" horiz-adv-x="1664" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142zM1408 640q0 -153 -85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5 t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5q140 -59 225 -188.5t85 -282.5zM1664 640q0 -230 -127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289 t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19q13 0 26 -5q211 -91 338 -283.5t127 -422.5z" />
+<glyph unicode="&#xf029;" horiz-adv-x="1408" d="M384 384v-128h-128v128h128zM384 1152v-128h-128v128h128zM1152 1152v-128h-128v128h128zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM896 896h384v384h-384v-384zM640 640v-640h-640v640h640zM1152 128v-128h-128v128h128zM1408 128v-128h-128v128h128z M1408 640v-384h-384v128h-128v-384h-128v640h384v-128h128v128h128zM640 1408v-640h-640v640h640zM1408 1408v-640h-640v640h640z" />
+<glyph unicode="&#xf02a;" horiz-adv-x="1792" d="M63 0h-63v1408h63v-1408zM126 1h-32v1407h32v-1407zM220 1h-31v1407h31v-1407zM377 1h-31v1407h31v-1407zM534 1h-62v1407h62v-1407zM660 1h-31v1407h31v-1407zM723 1h-31v1407h31v-1407zM786 1h-31v1407h31v-1407zM943 1h-63v1407h63v-1407zM1100 1h-63v1407h63v-1407z M1226 1h-63v1407h63v-1407zM1352 1h-63v1407h63v-1407zM1446 1h-63v1407h63v-1407zM1635 1h-94v1407h94v-1407zM1698 1h-32v1407h32v-1407zM1792 0h-63v1408h63v-1408z" />
+<glyph unicode="&#xf02b;" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91z" />
+<glyph unicode="&#xf02c;" horiz-adv-x="1920" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91zM1899 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91z" />
+<glyph unicode="&#xf02d;" horiz-adv-x="1664" d="M1639 1058q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23 q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906 q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57q38 -15 59 -43zM575 1056q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5 t-16.5 -22.5zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" />
+<glyph unicode="&#xf02e;" horiz-adv-x="1280" d="M1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
+<glyph unicode="&#xf02f;" horiz-adv-x="1664" d="M384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1536 576q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 576v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68 v160h-224q-13 0 -22.5 9.5t-9.5 22.5v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5z" />
+<glyph unicode="&#xf030;" horiz-adv-x="1920" d="M960 864q119 0 203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5t84.5 203.5t203.5 84.5zM1664 1280q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181v896q0 106 75 181t181 75h224l51 136 q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224zM960 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+<glyph unicode="&#xf031;" horiz-adv-x="1664" d="M725 977l-170 -450q73 -1 153.5 -2t119 -1.5t52.5 -0.5l29 2q-32 95 -92 241q-53 132 -92 211zM21 -128h-21l2 79q22 7 80 18q89 16 110 31q20 16 48 68l237 616l280 724h75h53l11 -21l205 -480q103 -242 124 -297q39 -102 96 -235q26 -58 65 -164q24 -67 65 -149 q22 -49 35 -57q22 -19 69 -23q47 -6 103 -27q6 -39 6 -57q0 -14 -1 -26q-80 0 -192 8q-93 8 -189 8q-79 0 -135 -2l-200 -11l-58 -2q0 45 4 78l131 28q56 13 68 23q12 12 12 27t-6 32l-47 114l-92 228l-450 2q-29 -65 -104 -274q-23 -64 -23 -84q0 -31 17 -43 q26 -21 103 -32q3 0 13.5 -2t30 -5t40.5 -6q1 -28 1 -58q0 -17 -2 -27q-66 0 -349 20l-48 -8q-81 -14 -167 -14z" />
+<glyph unicode="&#xf032;" horiz-adv-x="1408" d="M555 15q76 -32 140 -32q131 0 216 41t122 113q38 70 38 181q0 114 -41 180q-58 94 -141 126q-80 32 -247 32q-74 0 -101 -10v-144l-1 -173l3 -270q0 -15 12 -44zM541 761q43 -7 109 -7q175 0 264 65t89 224q0 112 -85 187q-84 75 -255 75q-52 0 -130 -13q0 -44 2 -77 q7 -122 6 -279l-1 -98q0 -43 1 -77zM0 -128l2 94q45 9 68 12q77 12 123 31q17 27 21 51q9 66 9 194l-2 497q-5 256 -9 404q-1 87 -11 109q-1 4 -12 12q-18 12 -69 15q-30 2 -114 13l-4 83l260 6l380 13l45 1q5 0 14 0.5t14 0.5q1 0 21.5 -0.5t40.5 -0.5h74q88 0 191 -27 q43 -13 96 -39q57 -29 102 -76q44 -47 65 -104t21 -122q0 -70 -32 -128t-95 -105q-26 -20 -150 -77q177 -41 267 -146q92 -106 92 -236q0 -76 -29 -161q-21 -62 -71 -117q-66 -72 -140 -108q-73 -36 -203 -60q-82 -15 -198 -11l-197 4q-84 2 -298 -11q-33 -3 -272 -11z" />
+<glyph unicode="&#xf033;" horiz-adv-x="1024" d="M0 -126l17 85q4 1 77 20q76 19 116 39q29 37 41 101l27 139l56 268l12 64q8 44 17 84.5t16 67t12.5 46.5t9 30.5t3.5 11.5l29 157l16 63l22 135l8 50v38q-41 22 -144 28q-28 2 -38 4l19 103l317 -14q39 -2 73 -2q66 0 214 9q33 2 68 4.5t36 2.5q-2 -19 -6 -38 q-7 -29 -13 -51q-55 -19 -109 -31q-64 -16 -101 -31q-12 -31 -24 -88q-9 -44 -13 -82q-44 -199 -66 -306l-61 -311l-38 -158l-43 -235l-12 -45q-2 -7 1 -27q64 -15 119 -21q36 -5 66 -10q-1 -29 -7 -58q-7 -31 -9 -41q-18 0 -23 -1q-24 -2 -42 -2q-9 0 -28 3q-19 4 -145 17 l-198 2q-41 1 -174 -11q-74 -7 -98 -9z" />
+<glyph unicode="&#xf034;" horiz-adv-x="1792" d="M81 1407l54 -27q20 -5 211 -5h130l19 3l115 1l215 -1h293l34 -2q14 -1 28 7t21 16l7 8l42 1q15 0 28 -1v-104.5t1 -131.5l1 -100l-1 -58q0 -32 -4 -51q-39 -15 -68 -18q-25 43 -54 128q-8 24 -15.5 62.5t-11.5 65.5t-6 29q-13 15 -27 19q-7 2 -42.5 2t-103.5 -1t-111 -1 q-34 0 -67 -5q-10 -97 -8 -136l1 -152v-332l3 -359l-1 -147q-1 -46 11 -85q49 -25 89 -32q2 0 18 -5t44 -13t43 -12q30 -8 50 -18q5 -45 5 -50q0 -10 -3 -29q-14 -1 -34 -1q-110 0 -187 10q-72 8 -238 8q-88 0 -233 -14q-48 -4 -70 -4q-2 22 -2 26l-1 26v9q21 33 79 49 q139 38 159 50q9 21 12 56q8 192 6 433l-5 428q-1 62 -0.5 118.5t0.5 102.5t-2 57t-6 15q-6 5 -14 6q-38 6 -148 6q-43 0 -100 -13.5t-73 -24.5q-13 -9 -22 -33t-22 -75t-24 -84q-6 -19 -19.5 -32t-20.5 -13q-44 27 -56 44v297v86zM1744 128q33 0 42 -18.5t-11 -44.5 l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5t42 18.5h80v1024h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80z" />
+<glyph unicode="&#xf035;" d="M81 1407l54 -27q20 -5 211 -5h130l19 3l115 1l446 -1h318l34 -2q14 -1 28 7t21 16l7 8l42 1q15 0 28 -1v-104.5t1 -131.5l1 -100l-1 -58q0 -32 -4 -51q-39 -15 -68 -18q-25 43 -54 128q-8 24 -15.5 62.5t-11.5 65.5t-6 29q-13 15 -27 19q-7 2 -58.5 2t-138.5 -1t-128 -1 q-94 0 -127 -5q-10 -97 -8 -136l1 -152v52l3 -359l-1 -147q-1 -46 11 -85q49 -25 89 -32q2 0 18 -5t44 -13t43 -12q30 -8 50 -18q5 -45 5 -50q0 -10 -3 -29q-14 -1 -34 -1q-110 0 -187 10q-72 8 -238 8q-82 0 -233 -13q-45 -5 -70 -5q-2 22 -2 26l-1 26v9q21 33 79 49 q139 38 159 50q9 21 12 56q6 137 6 433l-5 44q0 265 -2 278q-2 11 -6 15q-6 5 -14 6q-38 6 -148 6q-50 0 -168.5 -14t-132.5 -24q-13 -9 -22 -33t-22 -75t-24 -84q-6 -19 -19.5 -32t-20.5 -13q-44 27 -56 44v297v86zM1505 113q26 -20 26 -49t-26 -49l-162 -126 q-26 -20 -44.5 -11t-18.5 42v80h-1024v-80q0 -33 -18.5 -42t-44.5 11l-162 126q-26 20 -26 49t26 49l162 126q26 20 44.5 11t18.5 -42v-80h1024v80q0 33 18.5 42t44.5 -11z" />
+<glyph unicode="&#xf036;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf037;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h896q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45t-45 -19 h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf038;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf039;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf03a;" horiz-adv-x="1792" d="M256 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM256 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5 t9.5 -22.5zM256 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344 q13 0 22.5 -9.5t9.5 -22.5zM256 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192 q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5z" />
+<glyph unicode="&#xf03b;" horiz-adv-x="1792" d="M384 992v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23t9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
+<glyph unicode="&#xf03c;" horiz-adv-x="1792" d="M352 704q0 -14 -9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
+<glyph unicode="&#xf03d;" horiz-adv-x="1792" d="M1792 1184v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5 q39 -17 39 -59z" />
+<glyph unicode="&#xf03e;" horiz-adv-x="1920" d="M640 960q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 576v-448h-1408v192l320 320l160 -160l512 512zM1760 1280h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216 q0 13 -9.5 22.5t-22.5 9.5zM1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf040;" d="M363 0l91 91l-235 235l-91 -91v-107h128v-128h107zM886 928q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17zM832 1120l416 -416l-832 -832h-416v416zM1515 1024q0 -53 -37 -90l-166 -166l-416 416l166 165q36 38 90 38 q53 0 91 -38l235 -234q37 -39 37 -91z" />
+<glyph unicode="&#xf041;" horiz-adv-x="1024" d="M768 896q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1024 896q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179q0 212 150 362t362 150t362 -150t150 -362z" />
+<glyph unicode="&#xf042;" d="M768 96v1088q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf043;" horiz-adv-x="1024" d="M512 384q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 512q0 -212 -150 -362t-362 -150t-362 150t-150 362 q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275z" />
+<glyph unicode="&#xf044;" horiz-adv-x="1792" d="M888 352l116 116l-152 152l-116 -116v-56h96v-96h56zM1328 1072q-16 16 -33 -1l-350 -350q-17 -17 -1 -33t33 1l350 350q17 17 1 33zM1408 478v-190q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29zM1312 1216l288 -288l-672 -672h-288v288zM1756 1084l-92 -92 l-288 288l92 92q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68z" />
+<glyph unicode="&#xf045;" horiz-adv-x="1664" d="M1408 547v-259q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h255v0q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832 q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29zM1645 1043l-384 -384q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5 t-38.5 114t-17.5 122q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45z" />
+<glyph unicode="&#xf046;" horiz-adv-x="1664" d="M1408 606v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832 q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3q20 -8 20 -29zM1639 1095l-814 -814q-24 -24 -57 -24t-57 24l-430 430q-24 24 -24 57t24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110 q24 -24 24 -57t-24 -57z" />
+<glyph unicode="&#xf047;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45 t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
+<glyph unicode="&#xf048;" horiz-adv-x="1024" d="M979 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19z" />
+<glyph unicode="&#xf049;" horiz-adv-x="1792" d="M1747 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710 q19 19 32 13t13 -32v-710q4 11 13 19z" />
+<glyph unicode="&#xf04a;" horiz-adv-x="1664" d="M1619 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-8 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45t19 45l710 710q19 19 32 13t13 -32v-710q5 11 13 19z" />
+<glyph unicode="&#xf04b;" horiz-adv-x="1408" d="M1384 609l-1328 -738q-23 -13 -39.5 -3t-16.5 36v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31z" />
+<glyph unicode="&#xf04c;" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45zM640 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf04d;" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf04e;" horiz-adv-x="1664" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
+<glyph unicode="&#xf050;" horiz-adv-x="1792" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710 q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
+<glyph unicode="&#xf051;" horiz-adv-x="1024" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19z" />
+<glyph unicode="&#xf052;" horiz-adv-x="1538" d="M14 557l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13t13 32zM1473 0h-1408q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19z" />
+<glyph unicode="&#xf053;" horiz-adv-x="1152" d="M742 -37l-652 651q-37 37 -37 90.5t37 90.5l652 651q37 37 90.5 37t90.5 -37l75 -75q37 -37 37 -90.5t-37 -90.5l-486 -486l486 -485q37 -38 37 -91t-37 -90l-75 -75q-37 -37 -90.5 -37t-90.5 37z" />
+<glyph unicode="&#xf054;" horiz-adv-x="1152" d="M1099 704q0 -52 -37 -91l-652 -651q-37 -37 -90 -37t-90 37l-76 75q-37 39 -37 91q0 53 37 90l486 486l-486 485q-37 39 -37 91q0 53 37 90l76 75q36 38 90 38t90 -38l652 -651q37 -37 37 -90z" />
+<glyph unicode="&#xf055;" d="M1216 576v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5 t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf056;" d="M1216 576v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 t103 -385.5z" />
+<glyph unicode="&#xf057;" d="M1149 414q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45q0 -27 19 -46l90 -90q19 -19 46 -19 q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19l90 90q19 19 19 46zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf058;" d="M1284 802q0 28 -18 46l-91 90q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf059;" d="M896 160v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1152 832q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26t37.5 -59 q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf05a;" d="M1024 160v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23zM896 1056v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23 t23 -9h192q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf05b;" d="M1197 512h-109q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109 q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5zM1536 704v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143 q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf05c;" d="M1097 457l-146 -146q-10 -10 -23 -10t-23 10l-137 137l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23 l-137 -137l137 -137q10 -10 10 -23t-10 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5 t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf05d;" d="M1171 723l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45t19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198 t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf05e;" d="M1312 643q0 161 -87 295l-754 -753q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5zM313 344l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199t-73 -274q0 -162 89 -299zM1536 643q0 -157 -61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61 t-245 164t-163.5 246t-61 300t61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5z" />
+<glyph unicode="&#xf060;" d="M1536 640v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5 t32.5 -90.5z" />
+<glyph unicode="&#xf061;" d="M1472 576q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90z" />
+<glyph unicode="&#xf062;" horiz-adv-x="1664" d="M1611 565q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75q-38 38 -38 90q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651 q37 -39 37 -91z" />
+<glyph unicode="&#xf063;" horiz-adv-x="1664" d="M1611 704q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" />
+<glyph unicode="&#xf064;" horiz-adv-x="1792" d="M1792 896q0 -26 -19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22 t-13.5 30t-10.5 24q-127 285 -127 451q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45z" />
+<glyph unicode="&#xf065;" d="M755 480q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23zM1536 1344v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332 q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf066;" d="M768 576v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45zM1523 1248q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45 t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23z" />
+<glyph unicode="&#xf067;" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf068;" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf069;" horiz-adv-x="1664" d="M1482 486q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5t59.5 77.5l266 154l-266 154 q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5l-266 -154z" />
+<glyph unicode="&#xf06a;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM896 161v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190q0 -13 10 -23t23 -10h192 q13 0 22 9.5t9 23.5zM894 505l18 621q0 12 -10 18q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5z" />
+<glyph unicode="&#xf06b;" d="M928 180v56v468v192h-320v-192v-468v-56q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5zM472 1024h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68t28 -68t68 -28zM1160 1120q0 40 -28 68t-68 28q-43 0 -69 -31l-125 -161h194q40 0 68 28t28 68zM1536 864v-320 q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5 t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf06c;" horiz-adv-x="1792" d="M1280 832q0 26 -19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45q0 -26 19 -45t45 -19q24 0 45 19q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45zM1792 1030q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268 q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-30 0 -51 11t-31 24t-27 42q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5 t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96z" />
+<glyph unicode="&#xf06d;" horiz-adv-x="1408" d="M1408 -160v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1152 896q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1 q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100t113.5 -122.5t72.5 -150.5t27.5 -184z" />
+<glyph unicode="&#xf06e;" horiz-adv-x="1792" d="M1664 576q-152 236 -381 353q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5 t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1792 576q0 -34 -20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69t20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69z" />
+<glyph unicode="&#xf070;" horiz-adv-x="1792" d="M555 201l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353q167 -258 427 -375zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1307 1151q0 -7 -1 -9 q-105 -188 -315 -566t-316 -567l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87q-143 65 -263.5 173t-208.5 245q-20 31 -20 69t20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5 q16 -10 16 -27zM1344 704q0 -139 -79 -253.5t-209 -164.5l280 502q8 -45 8 -84zM1792 576q0 -35 -20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69z " />
+<glyph unicode="&#xf071;" horiz-adv-x="1792" d="M1024 161v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5zM1022 535l18 459q0 12 -10 19q-13 11 -24 11h-220q-11 0 -24 -11q-10 -7 -10 -21l17 -457q0 -10 10 -16.5t24 -6.5h185 q14 0 23.5 6.5t10.5 16.5zM1008 1469l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126l768 1408q17 31 47 49t65 18t65 -18t47 -49z" />
+<glyph unicode="&#xf072;" horiz-adv-x="1408" d="M1376 1376q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23q-1 13 9 25l96 97q9 9 23 9 q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12z" />
+<glyph unicode="&#xf073;" horiz-adv-x="1664" d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h288v288h-288v-288zM1280 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64 q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47 h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf074;" horiz-adv-x="1792" d="M666 1055q-60 -92 -137 -273q-22 45 -37 72.5t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q250 0 410 -225zM1792 256q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192q-32 0 -85 -0.5t-81 -1t-73 1 t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1792 1152q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5 v192h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111 t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
+<glyph unicode="&#xf075;" horiz-adv-x="1792" d="M1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281 q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5z" />
+<glyph unicode="&#xf076;" d="M1536 704v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5t-98.5 362v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384 q26 0 45 -19t19 -45zM512 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45zM1536 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf077;" horiz-adv-x="1664" d="M1611 320q0 -53 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-486 485l-486 -485q-36 -38 -90 -38t-90 38l-75 75q-38 36 -38 90q0 53 38 91l651 651q37 37 90 37q52 0 91 -37l650 -651q38 -38 38 -91z" />
+<glyph unicode="&#xf078;" horiz-adv-x="1664" d="M1611 832q0 -53 -37 -90l-651 -651q-38 -38 -91 -38q-54 0 -90 38l-651 651q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l486 -486l486 486q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" />
+<glyph unicode="&#xf079;" horiz-adv-x="1920" d="M1280 32q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -11 7 -21 zM1920 448q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45z " />
+<glyph unicode="&#xf07a;" horiz-adv-x="1664" d="M640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5 l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5 t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf07b;" horiz-adv-x="1664" d="M1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
+<glyph unicode="&#xf07c;" horiz-adv-x="1920" d="M1879 584q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43zM1536 928v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5 t-0.5 12.5v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158z" />
+<glyph unicode="&#xf07d;" horiz-adv-x="768" d="M704 1216q0 -26 -19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45z" />
+<glyph unicode="&#xf07e;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
+<glyph unicode="&#xf080;" horiz-adv-x="1920" d="M512 512v-384h-256v384h256zM896 1024v-896h-256v896h256zM1280 768v-640h-256v640h256zM1664 1152v-1024h-256v1024h256zM1792 32v1216q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5z M1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf081;" d="M1280 926q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4 q21 -63 74.5 -104t121.5 -42q-116 -90 -261 -90q-26 0 -50 3q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5 t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf082;" d="M1307 618l23 219h-198v109q0 49 15.5 68.5t71.5 19.5h110v219h-175q-152 0 -218 -72t-66 -213v-131h-131v-219h131v-635h262v635h175zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960 q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf083;" horiz-adv-x="1792" d="M928 704q0 14 -9 23t-23 9q-66 0 -113 -47t-47 -113q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9t9 23zM1152 574q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM128 0h1536v128h-1536v-128zM1280 574q0 159 -112.5 271.5 t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM256 1216h384v128h-384v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM1792 1280v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5v1280 q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5z" />
+<glyph unicode="&#xf084;" horiz-adv-x="1792" d="M832 1024q0 80 -56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136t56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56t56 136zM1683 320q0 -17 -49 -66t-66 -49q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26 l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5 t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41z" />
+<glyph unicode="&#xf085;" horiz-adv-x="1920" d="M896 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1664 128q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1152q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1280 731v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -10 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5 l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7 l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8q144 -133 144 -160q0 -9 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5zM1920 198v-140q0 -16 -149 -31 q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20 t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31zM1920 1222v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68 q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70 q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31z" />
+<glyph unicode="&#xf086;" horiz-adv-x="1792" d="M1408 768q0 -139 -94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224 q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257zM1792 512q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7 q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230z" />
+<glyph unicode="&#xf087;" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 768q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5 t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81zM1536 769 q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128 q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179z" />
+<glyph unicode="&#xf088;" d="M256 1088q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 512q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 32 18 69t-17.5 73.5t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5 t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640h32q16 0 35.5 -9t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5z M1536 511q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5 h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -74 49 -163z" />
+<glyph unicode="&#xf089;" horiz-adv-x="896" d="M832 1504v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41z" />
+<glyph unicode="&#xf08a;" horiz-adv-x="1792" d="M1664 940q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5t-21.5 -143q0 -168 187 -355l581 -560l580 559 q188 188 188 356zM1792 940q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5 q224 0 351 -124t127 -344z" />
+<glyph unicode="&#xf08b;" horiz-adv-x="1664" d="M640 96q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704 q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5zM1568 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45z" />
+<glyph unicode="&#xf08c;" d="M237 122h231v694h-231v-694zM483 1030q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5zM1068 122h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694h231v388q0 38 7 56q15 35 45 59.5t74 24.5 q116 0 116 -157v-371zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf08d;" horiz-adv-x="1152" d="M480 672v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448q0 -14 9 -23t23 -9t23 9t9 23zM1152 320q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19t-19 45q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38 t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5z" />
+<glyph unicode="&#xf08e;" horiz-adv-x="1792" d="M1408 608v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1792 1472v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf090;" d="M1184 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45zM1536 992v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5 q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf091;" horiz-adv-x="1664" d="M458 653q-74 162 -74 371h-256v-96q0 -78 94.5 -162t235.5 -113zM1536 928v96h-256q0 -209 -74 -371q141 29 235.5 113t94.5 162zM1664 1056v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91 t97.5 -37q75 0 133.5 -45.5t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143v128q0 40 28 68t68 28h288v96 q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf092;" d="M394 184q-8 -9 -20 3q-13 11 -4 19q8 9 20 -3q12 -11 4 -19zM352 245q9 -12 0 -19q-8 -6 -17 7t0 18q9 7 17 -6zM291 305q-5 -7 -13 -2q-10 5 -7 12q3 5 13 2q10 -5 7 -12zM322 271q-6 -7 -16 3q-9 11 -2 16q6 6 16 -3q9 -11 2 -16zM451 159q-4 -12 -19 -6q-17 4 -13 15 t19 7q16 -5 13 -16zM514 154q0 -11 -16 -11q-17 -2 -17 11q0 11 16 11q17 2 17 -11zM572 164q2 -10 -14 -14t-18 8t14 15q16 2 18 -9zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-224q-16 0 -24.5 1t-19.5 5t-16 14.5t-5 27.5v239q0 97 -52 142q57 6 102.5 18t94 39 t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103 q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -103t0.5 -68q0 -22 -11 -33.5t-22 -13t-33 -1.5 h-224q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf093;" horiz-adv-x="1664" d="M1280 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 288v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h427q21 -56 70.5 -92 t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68zM1339 936q-17 -40 -59 -40h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69z" />
+<glyph unicode="&#xf094;" d="M1407 710q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5 q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275zM1535 712q0 -165 -70 -327.5t-196 -288t-281 -180.5q-124 -44 -326 -44 q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5 q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -10 1 -18.5t3 -17t4 -13.5t6.5 -16t6.5 -17q16 -40 25 -118.5t9 -136.5z" />
+<glyph unicode="&#xf095;" horiz-adv-x="1408" d="M1408 296q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -52.5 3.5t-57.5 12.5t-47.5 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-128 79 -264.5 215.5t-215.5 264.5q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47.5t-12.5 57.5t-3.5 52.5 q0 92 51 186q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235t235 -174 q2 -1 19 -11.5t24 -14t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21z" />
+<glyph unicode="&#xf096;" horiz-adv-x="1408" d="M1120 1280h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf097;" horiz-adv-x="1280" d="M1152 1280h-1024v-1242l423 406l89 85l89 -85l423 -406v1242zM1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289 q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
+<glyph unicode="&#xf098;" d="M1280 343q0 11 -2 16q-3 8 -38.5 29.5t-88.5 49.5l-53 29q-5 3 -19 13t-25 15t-21 5q-18 0 -47 -32.5t-57 -65.5t-44 -33q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170.5 126.5t-126.5 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5t-3.5 16.5q0 13 20.5 33.5t45 38.5 t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5t320.5 -216.5q6 -2 30 -11t33 -12.5 t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf099;" horiz-adv-x="1664" d="M1620 1128q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41 q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50z" />
+<glyph unicode="&#xf09a;" horiz-adv-x="768" d="M511 980h257l-30 -284h-227v-824h-341v824h-170v284h170v171q0 182 86 275.5t283 93.5h227v-284h-142q-39 0 -62.5 -6.5t-34 -23.5t-13.5 -34.5t-3 -49.5v-142z" />
+<glyph unicode="&#xf09b;" d="M1536 640q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -39.5 7t-12.5 30v211q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5 q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23 q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -89t0.5 -54q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf09c;" horiz-adv-x="1664" d="M1664 960v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5 t316.5 -131.5t131.5 -316.5z" />
+<glyph unicode="&#xf09d;" horiz-adv-x="1920" d="M1760 1408q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600zM160 1280q-13 0 -22.5 -9.5t-9.5 -22.5v-224h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600zM1760 0q13 0 22.5 9.5t9.5 22.5v608h-1664v-608 q0 -13 9.5 -22.5t22.5 -9.5h1600zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" />
+<glyph unicode="&#xf09e;" horiz-adv-x="1408" d="M384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 69q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5t-391.5 184.5q-25 2 -41.5 20t-16.5 43v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5 t259 -181.5q114 -113 181.5 -259t80.5 -306zM1408 67q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102q-25 1 -42.5 19.5t-17.5 43.5v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294 q187 -186 294 -425.5t120 -501.5z" />
+<glyph unicode="&#xf0a0;" d="M1040 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1296 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1408 160v320q0 13 -9.5 22.5t-22.5 9.5 h-1216q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM1536 480v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v320q0 25 16 75 l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75z" />
+<glyph unicode="&#xf0a1;" horiz-adv-x="1792" d="M1664 896q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5 t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384zM1536 292v954q-394 -302 -768 -343v-270q377 -42 768 -341z" />
+<glyph unicode="&#xf0a2;" horiz-adv-x="1664" d="M848 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM183 128h1298q-164 181 -246.5 411.5t-82.5 484.5q0 256 -320 256t-320 -256q0 -254 -82.5 -484.5t-246.5 -411.5zM1664 128q0 -52 -38 -90t-90 -38 h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q190 161 287 397.5t97 498.5q0 165 96 262t264 117q-8 18 -8 37q0 40 28 68t68 28t68 -28t28 -68q0 -19 -8 -37q168 -20 264 -117t96 -262q0 -262 97 -498.5t287 -397.5z" />
+<glyph unicode="&#xf0a3;" d="M1376 640l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53q-41 -12 -70 19q-31 29 -19 70 l53 186l-188 48q-40 10 -52 51q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70 l-53 -186l188 -48q40 -10 52 -51q10 -42 -20 -70z" />
+<glyph unicode="&#xf0a4;" horiz-adv-x="1792" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 768q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106 q-69 -57 -140 -57h-32v-640h32q72 0 167 -32t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90zM1792 769q0 -105 -75.5 -181t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43 q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5 t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179z" />
+<glyph unicode="&#xf0a5;" horiz-adv-x="1792" d="M1376 128h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-2 3 -3.5 4.5t-4 4.5t-4.5 5q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576 q-50 0 -89 -38.5t-39 -89.5q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32zM1664 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45 t45 -19t45 19t19 45zM1792 768v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181q0 103 76 179t180 76h374q-22 60 -22 128 q0 122 81.5 189t206.5 67q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5z" />
+<glyph unicode="&#xf0a6;" d="M1280 -64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 700q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576 q-20 0 -48.5 15t-55 33t-68 33t-84.5 15q-67 0 -97.5 -44.5t-30.5 -115.5q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140v-32h640v32q0 72 32 167t64 193.5t32 179.5zM1536 705q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5 t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76 q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227z" />
+<glyph unicode="&#xf0a7;" d="M1408 576q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33 t55 33t48.5 15v-576q0 -50 38.5 -89t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5zM1280 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 580 q0 -142 -77.5 -230t-217.5 -87l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100 q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317z" />
+<glyph unicode="&#xf0a8;" d="M1280 576v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45t18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502q26 0 45 19t19 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf0a9;" d="M1285 640q0 27 -18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18l362 362l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf0aa;" d="M1284 641q0 27 -18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45t18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf0ab;" d="M1284 639q0 27 -18 45l-91 91q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45t18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf0ac;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1042 887q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11 q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 10.5t-9.5 10.5q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5 q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5 q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17t10.5 17q9 6 14 5.5t14.5 -5.5 t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-5 7 -8 9q-12 4 -27 -5q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3 q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25 q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5q-16 0 -22 -1q-146 -80 -235 -222q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5 t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-15 25 -17 29q-3 5 -5.5 15.5 t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10t17 -20q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21 q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5 q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3 q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5t0 14t-1.5 12.5l-1 8v18l-1 8q-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5 t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q7 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5 q15 10 -7 16q-17 5 -43 -12zM879 10q206 36 351 189q-3 3 -12.5 4.5t-12.5 3.5q-18 7 -24 8q1 7 -2.5 13t-8 9t-12.5 8t-11 7q-2 2 -7 6t-7 5.5t-7.5 4.5t-8.5 2t-10 -1l-3 -1q-3 -1 -5.5 -2.5t-5.5 -3t-4 -3t0 -2.5q-21 17 -36 22q-5 1 -11 5.5t-10.5 7t-10 1.5t-11.5 -7 q-5 -5 -6 -15t-2 -13q-7 5 0 17.5t2 18.5q-3 6 -10.5 4.5t-12 -4.5t-11.5 -8.5t-9 -6.5t-8.5 -5.5t-8.5 -7.5q-3 -4 -6 -12t-5 -11q-2 4 -11.5 6.5t-9.5 5.5q2 -10 4 -35t5 -38q7 -31 -12 -48q-27 -25 -29 -40q-4 -22 12 -26q0 -7 -8 -20.5t-7 -21.5q0 -6 2 -16z" />
+<glyph unicode="&#xf0ad;" horiz-adv-x="1664" d="M384 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1028 484l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5zM1662 919q0 -39 -23 -106q-47 -134 -164.5 -217.5 t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q58 0 121.5 -16.5t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25z" />
+<glyph unicode="&#xf0ae;" horiz-adv-x="1792" d="M1024 128h640v128h-640v-128zM640 640h1024v128h-1024v-128zM1280 1152h384v128h-384v-128zM1792 320v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 832v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19 t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0b0;" horiz-adv-x="1408" d="M1403 1241q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70q17 39 59 39h1280q42 0 59 -39z" />
+<glyph unicode="&#xf0b1;" horiz-adv-x="1792" d="M640 1280h512v128h-512v-128zM1792 640v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672zM1024 640v-128h-256v128h256zM1792 1120v-384h-1792v384q0 66 47 113t113 47h352v160q0 40 28 68 t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf0b2;" d="M1283 995l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l144 -144 l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45v-448q0 -42 -39 -59q-13 -5 -25 -5q-26 0 -45 19z " />
+<glyph unicode="&#xf0c0;" horiz-adv-x="1920" d="M593 640q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256zM1664 3q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5 t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM640 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75 t75 -181zM1344 896q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5zM1920 671q0 -78 -56 -118.5t-138 -40.5h-134q-103 123 -265 128q81 117 81 256q0 29 -5 66q66 -23 133 -23q59 0 119 21.5t97.5 42.5 t43.5 21q124 0 124 -353zM1792 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181z" />
+<glyph unicode="&#xf0c1;" horiz-adv-x="1664" d="M1456 320q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26 l147 146q28 28 28 67zM753 1025q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3.5 27.5q0 40 28 68t68 28q15 0 27.5 -3.5t25.5 -13t19 -15 t21.5 -21.5t18.5 -19q33 31 33 73zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-206 207q-83 83 -83 203q0 123 88 209l-88 88q-86 -88 -208 -88q-120 0 -204 84l-208 208q-84 84 -84 204t85 203l147 146q83 83 203 83q121 0 204 -85l206 -207 q83 -83 83 -203q0 -123 -88 -209l88 -88q86 88 208 88q120 0 204 -84l208 -208q84 -84 84 -204z" />
+<glyph unicode="&#xf0c2;" horiz-adv-x="1920" d="M1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5z " />
+<glyph unicode="&#xf0c3;" horiz-adv-x="1664" d="M1527 88q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5t21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399zM748 813l-272 -429h712l-272 429l-20 31v37v399h-128v-399v-37z" />
+<glyph unicode="&#xf0c4;" horiz-adv-x="1792" d="M960 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1260 576l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84 q-136 0 -222 78q-90 84 -79 207q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 79 222 79q145 0 277 -84q83 -52 132 -123t56 -148 q4 -48 -10 -97q4 -1 12 -5l110 -66l690 387q14 8 31 8q16 0 29 -7l128 -64q30 -16 35 -51q3 -36 -25 -56zM579 836q46 42 21 108t-106 117q-92 59 -192 59q-74 0 -113 -36q-46 -42 -21 -108t106 -117q92 -59 192 -59q74 0 113 36zM494 91q81 51 106 117t-21 108 q-39 36 -113 36q-100 0 -192 -59q-81 -51 -106 -117t21 -108q39 -36 113 -36q100 0 192 59zM672 704l96 -58v11q0 36 33 56l14 8l-79 47l-26 -26q-3 -3 -10 -11t-12 -12q-2 -2 -4 -3.5t-3 -2.5zM896 480l96 -32l736 576l-128 64l-768 -431v-113l-160 -96l9 -8q2 -2 7 -6 q4 -4 11 -12t11 -12l26 -26zM1600 64l128 64l-520 408l-177 -138q-2 -3 -13 -7z" />
+<glyph unicode="&#xf0c5;" horiz-adv-x="1792" d="M1696 1152q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416zM1152 939l-299 -299h299v299zM512 1323l-299 -299 h299v299zM708 676l316 316v416h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h512v256q0 40 20 88t48 76zM1664 -128v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h896z" />
+<glyph unicode="&#xf0c6;" horiz-adv-x="1408" d="M1404 151q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776q-113 115 -113 271q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181 l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0 82 57 139t139 57q88 0 149 -63l581 -581q100 -98 100 -235 z" />
+<glyph unicode="&#xf0c7;" d="M384 0h768v384h-768v-384zM1280 0h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416zM896 928v320q0 13 -9.5 22.5t-22.5 9.5 h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5zM1536 896v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88z" />
+<glyph unicode="&#xf0c8;" d="M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf0c9;" d="M1536 192v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 704v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 1216v-128q0 -26 -19 -45 t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0ca;" horiz-adv-x="1792" d="M384 128q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 640q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1152q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z M1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
+<glyph unicode="&#xf0cb;" horiz-adv-x="1792" d="M381 -84q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88zM383 543v-159h-362 q-6 36 -6 54q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105zM1792 224v-192q0 -13 -9.5 -22.5 t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1123v-99h-335v99h107q0 41 0.5 122t0.5 121v12h-2q-8 -17 -50 -54l-71 76l136 127h106v-404h108zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5 t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
+<glyph unicode="&#xf0cc;" horiz-adv-x="1792" d="M1760 640q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h1728zM483 704q-28 35 -51 80q-48 97 -48 188q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6 l-14 2q-50 149 -103 205q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743zM990 448h411q7 -39 7 -92q0 -111 -41 -212q-23 -55 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23 l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71z" />
+<glyph unicode="&#xf0cd;" d="M48 1313q-37 2 -45 4l-3 88q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47 q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41 q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39zM1536 -96v64q0 14 -9 23t-23 9h-1472 q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23z" />
+<glyph unicode="&#xf0ce;" horiz-adv-x="1664" d="M512 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23 v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 160v192 q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192 q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1664 1248v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113 z" />
+<glyph unicode="&#xf0d0;" horiz-adv-x="1664" d="M1190 955l293 293l-107 107l-293 -293zM1637 1248q0 -27 -18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45t18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45zM286 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM636 1276 l196 -60l-196 -60l-60 -196l-60 196l-196 60l196 60l60 196zM1566 798l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM926 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98z" />
+<glyph unicode="&#xf0d1;" horiz-adv-x="1792" d="M640 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM1536 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1792 1216v-1024q0 -15 -4 -26.5t-13.5 -18.5 t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5q0 26 19 45t45 19v320q0 8 -0.5 35t0 38 t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0d2;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134 q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33 q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf0d3;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5q-104 0 -194.5 -28.5t-153 -76.5 t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5 t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960z" />
+<glyph unicode="&#xf0d4;" d="M678 -57q0 -38 -10 -71h-380q-95 0 -171.5 56.5t-103.5 147.5q24 45 69 77.5t100 49.5t107 24t107 7q32 0 49 -2q6 -4 30.5 -21t33 -23t31 -23t32 -25.5t27.5 -25.5t26.5 -29.5t21 -30.5t17.5 -34.5t9.5 -36t4.5 -40.5zM385 294q-234 -7 -385 -85v433q103 -118 273 -118 q32 0 70 5q-21 -61 -21 -86q0 -67 63 -149zM558 805q0 -100 -43.5 -160.5t-140.5 -60.5q-51 0 -97 26t-78 67.5t-56 93.5t-35.5 104t-11.5 99q0 96 51.5 165t144.5 69q66 0 119 -41t84 -104t47 -130t16 -128zM1536 896v-736q0 -119 -84.5 -203.5t-203.5 -84.5h-468 q39 73 39 157q0 66 -22 122.5t-55.5 93t-72 71t-72 59.5t-55.5 54.5t-22 59.5q0 36 23 68t56 61.5t65.5 64.5t55.5 93t23 131t-26.5 145.5t-75.5 118.5q-6 6 -14 11t-12.5 7.5t-10 9.5t-10.5 17h135l135 64h-437q-138 0 -244.5 -38.5t-182.5 -133.5q0 126 81 213t207 87h960 q119 0 203.5 -84.5t84.5 -203.5v-96h-256v256h-128v-256h-256v-128h256v-256h128v256h256z" />
+<glyph unicode="&#xf0d5;" horiz-adv-x="1664" d="M876 71q0 21 -4.5 40.5t-9.5 36t-17.5 34.5t-21 30.5t-26.5 29.5t-27.5 25.5t-32 25.5t-31 23t-33 23t-30.5 21q-17 2 -50 2q-54 0 -106 -7t-108 -25t-98 -46t-69 -75t-27 -107q0 -68 35.5 -121.5t93 -84t120.5 -45.5t127 -15q59 0 112.5 12.5t100.5 39t74.5 73.5 t27.5 110zM756 933q0 60 -16.5 127.5t-47 130.5t-84 104t-119.5 41q-93 0 -144 -69t-51 -165q0 -47 11.5 -99t35.5 -104t56 -93.5t78 -67.5t97 -26q97 0 140.5 60.5t43.5 160.5zM625 1408h437l-135 -79h-135q71 -45 110 -126t39 -169q0 -74 -23 -131.5t-56 -92.5t-66 -64.5 t-56 -61t-23 -67.5q0 -26 16.5 -51t43 -48t58.5 -48t64 -55.5t58.5 -66t43 -85t16.5 -106.5q0 -160 -140 -282q-152 -131 -420 -131q-59 0 -119.5 10t-122 33.5t-108.5 58t-77 89t-30 121.5q0 61 37 135q32 64 96 110.5t145 71t155 36t150 13.5q-64 83 -64 149q0 12 2 23.5 t5 19.5t8 21.5t7 21.5q-40 -5 -70 -5q-149 0 -255.5 98t-106.5 246q0 140 95 250.5t234 141.5q94 20 187 20zM1664 1152v-128h-256v-256h-128v256h-256v128h256v256h128v-256h256z" />
+<glyph unicode="&#xf0d6;" horiz-adv-x="1920" d="M768 384h384v96h-128v448h-114l-148 -137l77 -80q42 37 55 57h2v-288h-128v-96zM1280 640q0 -70 -21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142t21 142t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142zM1792 384 v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512q106 0 181 -75t75 -181h1152q0 106 75 181t181 75zM1920 1216v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0d7;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0d8;" horiz-adv-x="1024" d="M1024 320q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+<glyph unicode="&#xf0d9;" horiz-adv-x="640" d="M640 1088v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45t19 45l448 448q19 19 45 19t45 -19t19 -45z" />
+<glyph unicode="&#xf0da;" horiz-adv-x="640" d="M576 640q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45z" />
+<glyph unicode="&#xf0db;" horiz-adv-x="1664" d="M160 0h608v1152h-640v-1120q0 -13 9.5 -22.5t22.5 -9.5zM1536 32v1120h-640v-1152h608q13 0 22.5 9.5t9.5 22.5zM1664 1248v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf0dc;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45zM1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+<glyph unicode="&#xf0dd;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0de;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+<glyph unicode="&#xf0e0;" horiz-adv-x="1792" d="M1792 826v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87zM1792 1120q0 -79 -49 -151t-122 -123 q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5q0 78 41.5 130t118.5 52h1472q65 0 112.5 -47t47.5 -113z" />
+<glyph unicode="&#xf0e1;" d="M349 911v-991h-330v991h330zM370 1217q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5zM1536 488v-568h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329 q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5z" />
+<glyph unicode="&#xf0e2;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298z" />
+<glyph unicode="&#xf0e3;" horiz-adv-x="1792" d="M1771 0q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5 t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 -12.5q-14 14 -14 34t14 34l348 348q14 14 34 14t34 -14 q-2 2 -12.5 12t-12.5 13t-10 11.5t-10 13.5t-6 13.5t-5.5 16.5t-1.5 18q0 38 28 68q3 3 16.5 18t19 20.5t18.5 16.5t22 15.5t22 9t26 4.5q40 0 68 -28l408 -408q28 -28 28 -68q0 -13 -4.5 -26t-9 -22t-15.5 -22t-16.5 -18.5t-20.5 -19t-18 -16.5q-30 -28 -68 -28 q-10 0 -18 1.5t-16.5 5.5t-13.5 6t-13.5 10t-11.5 10t-13 12.5t-12 12.5q14 -14 14 -34t-14 -34l-126 -126l256 -256q43 43 96 43q52 0 91 -37l363 -363q37 -39 37 -91z" />
+<glyph unicode="&#xf0e4;" horiz-adv-x="1792" d="M384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM576 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1004 351l101 382q6 26 -7.5 48.5t-38.5 29.5 t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5t-63 -98.5q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91zM1664 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 1024q0 53 -37.5 90.5 t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1472 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 384q0 -261 -141 -483q-19 -29 -54 -29h-1402q-35 0 -54 29 q-141 221 -141 483q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+<glyph unicode="&#xf0e5;" horiz-adv-x="1792" d="M896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640 q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 174 120 321.5 t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" />
+<glyph unicode="&#xf0e6;" horiz-adv-x="1792" d="M704 1152q-153 0 -286 -52t-211.5 -141t-78.5 -191q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52zM704 1280q191 0 353.5 -68.5t256.5 -186.5t94 -257t-94 -257 t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224q0 139 94 257t256.5 186.5 t353.5 68.5zM1526 111q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129 q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5z" />
+<glyph unicode="&#xf0e7;" horiz-adv-x="896" d="M885 970q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15z" />
+<glyph unicode="&#xf0e8;" horiz-adv-x="1792" d="M1792 288v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h512q52 0 90 -38t38 -90v-192h96q40 0 68 -28t28 -68 z" />
+<glyph unicode="&#xf0e9;" horiz-adv-x="1664" d="M896 708v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11zM1664 681q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97 q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 28q-43 60 -103 97t-128 37q-58 0 -102 -23t-93 -69 q-12 -10 -23 -10q-13 0 -22.5 9.5t-9.5 22.5q0 5 1 7q45 183 172.5 319.5t298 204.5t360.5 68q140 0 274.5 -40t246.5 -113.5t194.5 -187t115.5 -251.5q1 -2 1 -7zM896 1408v-98q-42 2 -64 2t-64 -2v98q0 26 19 45t45 19t45 -19t19 -45z" />
+<glyph unicode="&#xf0ea;" horiz-adv-x="1792" d="M768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1024 1312v64q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5zM1280 640h299l-299 299v-299zM1792 512v-672q0 -40 -28 -68t-68 -28 h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88z" />
+<glyph unicode="&#xf0eb;" horiz-adv-x="1024" d="M736 960q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90zM896 960q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134 q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180zM1024 960q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q0 -37 -25 -64q25 -27 25 -64q0 -52 -45 -81q13 -23 13 -47 q0 -46 -31.5 -71t-77.5 -25q-20 -44 -60 -70t-87 -26t-87 26t-60 70q-46 0 -77.5 25t-31.5 71q0 24 13 47q-45 29 -45 81q0 37 25 64q-25 27 -25 64q0 54 47 82q-4 50 -34 107.5t-59.5 95.5t-74.5 87q-103 113 -103 268q0 99 44.5 184.5t117 142t164 89t186.5 32.5 t186.5 -32.5t164 -89t117 -142t44.5 -184.5z" />
+<glyph unicode="&#xf0ec;" horiz-adv-x="1792" d="M1792 352v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5zM1792 896q0 -14 -9 -23l-320 -320q-9 -9 -23 -9 q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
+<glyph unicode="&#xf0ed;" horiz-adv-x="1920" d="M1280 608q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
+<glyph unicode="&#xf0ee;" horiz-adv-x="1920" d="M1280 672q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
+<glyph unicode="&#xf0f0;" horiz-adv-x="1408" d="M384 192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56 t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 38 90t90 38t90 -38t38 -90v-89q-32 -29 -32 -71q0 -40 28 -68 t68 -28t68 28t28 68q0 42 -32 71v89q0 68 -34.5 127.5t-93.5 93.5q0 10 0.5 42.5t0 48t-2.5 41.5t-7 47t-13 40q68 -15 120 -60.5t81 -103t47.5 -132.5t24 -138t5.5 -131zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5 t271.5 -112.5t112.5 -271.5z" />
+<glyph unicode="&#xf0f1;" horiz-adv-x="1408" d="M1280 832q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 832q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5t-131.5 271.5v132q-164 20 -274 128t-110 252v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48 t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 -48q10 2 16 2q26 0 45 -19t19 -45v-512q0 -144 -110 -252 t-274 -128v-132q0 -106 94 -181t226 -75t226 75t94 181v395q-57 21 -92.5 70t-35.5 111q0 80 56 136t136 56t136 -56t56 -136z" />
+<glyph unicode="&#xf0f2;" horiz-adv-x="1792" d="M640 1152h512v128h-512v-128zM288 1152v-1280h-64q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h64zM1408 1152v-1280h-1024v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128zM1792 928v-832q0 -92 -66 -158t-158 -66h-64v1280h64q92 0 158 -66 t66 -158z" />
+<glyph unicode="&#xf0f3;" horiz-adv-x="1664" d="M848 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM1664 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q190 161 287 397.5t97 498.5 q0 165 96 262t264 117q-8 18 -8 37q0 40 28 68t68 28t68 -28t28 -68q0 -19 -8 -37q168 -20 264 -117t96 -262q0 -262 97 -498.5t287 -397.5z" />
+<glyph unicode="&#xf0f4;" horiz-adv-x="1920" d="M1664 896q0 80 -56 136t-136 56h-64v-384h64q80 0 136 56t56 136zM0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM1856 896q0 -159 -112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158v736q0 26 19 45 t45 19h1152q159 0 271.5 -112.5t112.5 -271.5z" />
+<glyph unicode="&#xf0f5;" horiz-adv-x="1408" d="M640 1472v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45 t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45zM1408 1472v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5v800q0 132 94 226t226 94h256q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0f6;" horiz-adv-x="1280" d="M1024 352v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23zM1024 608v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23zM128 0h1024v768h-416q-40 0 -68 28t-28 68v416h-512v-1280z M768 896h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376zM1280 864v-896q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h640q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88z" />
+<glyph unicode="&#xf0f7;" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 -128h384v1536h-1152v-1536h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM1408 1472v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0f8;" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 -128h384v1152h-256v-32q0 -40 -28 -68t-68 -28h-448q-40 0 -68 28t-28 68v32h-256v-1152h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM896 1056v320q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-96h-128v96q0 13 -9.5 22.5 t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v96h128v-96q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1408 1088v-1280q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1280q0 26 19 45t45 19h320 v288q0 40 28 68t68 28h448q40 0 68 -28t28 -68v-288h320q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0f9;" horiz-adv-x="1920" d="M640 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM1536 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1664 800v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM1920 1344v-1152 q0 -26 -19 -45t-45 -19h-192q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-128q-26 0 -45 19t-19 45t19 45t45 19v416q0 26 13 58t32 51l198 198q19 19 51 32t58 13h160v320q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0fa;" horiz-adv-x="1792" d="M1280 416v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM640 1152h512v128h-512v-128zM256 1152v-1280h-32 q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h32zM1440 1152v-1280h-1088v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160zM1792 928v-832q0 -92 -66 -158t-158 -66h-32v1280h32q92 0 158 -66t66 -158z" />
+<glyph unicode="&#xf0fb;" horiz-adv-x="1920" d="M1920 576q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8l-192 24v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96 q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q261 -58 287 -93z" />
+<glyph unicode="&#xf0fc;" horiz-adv-x="1664" d="M640 640v384h-256v-256q0 -53 37.5 -90.5t90.5 -37.5h128zM1664 192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320l-64 64l32 128h480l32 128h960l32 -192l-64 -32v-800z" />
+<glyph unicode="&#xf0fd;" d="M1280 192v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf0fe;" d="M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf100;" horiz-adv-x="1024" d="M627 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23zM1011 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23z" />
+<glyph unicode="&#xf101;" horiz-adv-x="1024" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM979 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23 l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+<glyph unicode="&#xf102;" horiz-adv-x="1152" d="M1075 224q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM1075 608q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393 q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+<glyph unicode="&#xf103;" horiz-adv-x="1152" d="M1075 672q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23zM1075 1056q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+<glyph unicode="&#xf104;" horiz-adv-x="640" d="M627 992q0 -13 -10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+<glyph unicode="&#xf105;" horiz-adv-x="640" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+<glyph unicode="&#xf106;" horiz-adv-x="1152" d="M1075 352q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+<glyph unicode="&#xf107;" horiz-adv-x="1152" d="M1075 800q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+<glyph unicode="&#xf108;" horiz-adv-x="1920" d="M1792 544v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1376v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19 t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf109;" horiz-adv-x="1920" d="M416 256q-66 0 -113 47t-47 113v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088zM384 1120v-704q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5z M1760 192h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68v96h160h1600zM1040 96q16 0 16 16t-16 16h-160q-16 0 -16 -16t16 -16h160z" />
+<glyph unicode="&#xf10a;" horiz-adv-x="1152" d="M640 128q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1024 288v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5zM1152 1248v-1088q0 -66 -47 -113t-113 -47h-832 q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf10b;" horiz-adv-x="768" d="M464 128q0 33 -23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5zM672 288v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5zM480 1136 q0 16 -16 16h-160q-16 0 -16 -16t16 -16h160q16 0 16 16zM768 1152v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf10c;" d="M768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103 t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf10d;" horiz-adv-x="1664" d="M768 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z M1664 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z" />
+<glyph unicode="&#xf10e;" horiz-adv-x="1664" d="M768 1216v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136zM1664 1216 v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136z" />
+<glyph unicode="&#xf110;" horiz-adv-x="1568" d="M496 192q0 -60 -42.5 -102t-101.5 -42q-60 0 -102 42t-42 102t42 102t102 42q59 0 101.5 -42t42.5 -102zM928 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM320 640q0 -66 -47 -113t-113 -47t-113 47t-47 113 t47 113t113 47t113 -47t47 -113zM1360 192q0 -46 -33 -79t-79 -33t-79 33t-33 79t33 79t79 33t79 -33t33 -79zM528 1088q0 -73 -51.5 -124.5t-124.5 -51.5t-124.5 51.5t-51.5 124.5t51.5 124.5t124.5 51.5t124.5 -51.5t51.5 -124.5zM992 1280q0 -80 -56 -136t-136 -56 t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1536 640q0 -40 -28 -68t-68 -28t-68 28t-28 68t28 68t68 28t68 -28t28 -68zM1328 1088q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5z" />
+<glyph unicode="&#xf111;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf112;" horiz-adv-x="1792" d="M1792 416q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19 l-512 512q-19 19 -19 45t19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333z" />
+<glyph unicode="&#xf113;" horiz-adv-x="1664" d="M640 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1280 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1440 320 q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11q-152 21 -195 21q-118 0 -187 -84t-69 -204q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5zM1664 496q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86 t-170 -47.5t-171.5 -22t-167 -4.5q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218 q0 -87 -27 -168q136 -160 136 -398z" />
+<glyph unicode="&#xf114;" horiz-adv-x="1664" d="M1536 224v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68zM1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320 q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
+<glyph unicode="&#xf115;" horiz-adv-x="1920" d="M1781 605q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39zM640 768h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68 v-853l256 315q44 53 116 87.5t140 34.5zM1909 605q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h192q54 0 99 -24.5t67 -70.5q15 -32 15 -68z " />
+<glyph unicode="&#xf116;" horiz-adv-x="1792" />
+<glyph unicode="&#xf117;" horiz-adv-x="1792" />
+<glyph unicode="&#xf118;" d="M1134 461q-37 -121 -138 -195t-228 -74t-228 74t-138 195q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5 t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf119;" d="M1134 307q8 -25 -4 -48.5t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5q37 121 138 195t228 74t228 -74t138 -195zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204 t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf11a;" d="M1152 448q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h640q26 0 45 -19t19 -45zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf11b;" horiz-adv-x="1920" d="M832 448v128q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23zM1408 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1920 512q0 -212 -150 -362t-362 -150q-192 0 -338 128h-220q-146 -128 -338 -128q-212 0 -362 150 t-150 362t150 362t362 150h896q212 0 362 -150t150 -362z" />
+<glyph unicode="&#xf11c;" horiz-adv-x="1920" d="M384 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM512 624v-96q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h224q16 0 16 -16zM384 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 368v-96q0 -16 -16 -16 h-864q-16 0 -16 16v96q0 16 16 16h864q16 0 16 -16zM768 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM640 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1024 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16 h96q16 0 16 -16zM896 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1280 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1152 880v-96 q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 880v-352q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h112v240q0 16 16 16h96q16 0 16 -16zM1792 128v896h-1664v-896 h1664zM1920 1024v-896q0 -53 -37.5 -90.5t-90.5 -37.5h-1664q-53 0 -90.5 37.5t-37.5 90.5v896q0 53 37.5 90.5t90.5 37.5h1664q53 0 90.5 -37.5t37.5 -90.5z" />
+<glyph unicode="&#xf11d;" horiz-adv-x="1792" d="M1664 491v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9 h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102 q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
+<glyph unicode="&#xf11e;" horiz-adv-x="1792" d="M832 536v192q-181 -16 -384 -117v-185q205 96 384 110zM832 954v197q-172 -8 -384 -126v-189q215 111 384 118zM1664 491v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2 q-23 0 -49 -3v-222h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92zM1664 918v189q-169 -91 -306 -91q-45 0 -78 8v-196q148 -42 384 90zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266 q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8 q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
+<glyph unicode="&#xf120;" horiz-adv-x="1664" d="M585 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23zM1664 96v-64q0 -14 -9 -23t-23 -9h-960q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h960q14 0 23 -9 t9 -23z" />
+<glyph unicode="&#xf121;" horiz-adv-x="1920" d="M617 137l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23zM1208 1204l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5 l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5zM1865 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23z" />
+<glyph unicode="&#xf122;" horiz-adv-x="1792" d="M640 454v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45zM1792 416q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1 q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221q169 -173 169 -509z" />
+<glyph unicode="&#xf123;" horiz-adv-x="1664" d="M1186 579l257 250l-356 52l-66 10l-30 60l-159 322v-963l59 -31l318 -168l-60 355l-12 66zM1638 841l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5t54 34.5 l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5z" />
+<glyph unicode="&#xf124;" horiz-adv-x="1408" d="M1401 1187l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5t4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5z" />
+<glyph unicode="&#xf125;" horiz-adv-x="1664" d="M557 256h595v595zM512 301l595 595h-595v-595zM1664 224v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23 v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf126;" horiz-adv-x="1024" d="M288 64q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM288 1216q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM928 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1024 1088q0 -52 -26 -96.5t-70 -69.5 q-2 -287 -226 -414q-68 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136q0 -52 -26 -96.5t-70 -69.5v-497 q54 26 154 57q55 17 87.5 29.5t70.5 31t59 39.5t40.5 51t28 69.5t8.5 91.5q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136z" />
+<glyph unicode="&#xf127;" horiz-adv-x="1664" d="M439 265l-256 -256q-10 -9 -23 -9q-12 0 -23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23zM608 224v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM384 448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23t9 23t23 9h320 q14 0 23 -9t9 -23zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239q35 -21 56 -42l336 -336q84 -86 84 -204zM1031 1044l-239 -18 l-273 274q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l274 -274l-18 -240q-35 21 -56 42l-336 336q-84 86 -84 204q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l334 -335q21 -21 42 -56zM1664 960q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9 t-9 23t9 23t23 9h320q14 0 23 -9t9 -23zM1120 1504v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM1527 1353l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" />
+<glyph unicode="&#xf128;" horiz-adv-x="1024" d="M704 280v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28zM1020 880q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5 t-10.5 37.5v45q0 83 65 156.5t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25t5.5 28q160 266 464 266q80 0 161 -31t146 -83t106 -127.5t41 -158.5z" />
+<glyph unicode="&#xf129;" horiz-adv-x="640" d="M640 192v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45zM512 1344v-192q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v192 q0 26 19 45t45 19h256q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf12a;" horiz-adv-x="640" d="M512 288v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45zM542 1344l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45l-28 768q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45z" />
+<glyph unicode="&#xf12b;" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1534 846v-206h-514l-3 27 q-4 28 -4 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t-82 -50.5t-65.5 -51.5t-30.5 -63h232v80 h126z" />
+<glyph unicode="&#xf12c;" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1536 -50v-206h-514l-4 27 q-3 45 -3 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t-87 -63t-41 -73h232v80h126z" />
+<glyph unicode="&#xf12d;" horiz-adv-x="1920" d="M896 128l336 384h-768l-336 -384h768zM1909 1205q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5t30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5z" />
+<glyph unicode="&#xf12e;" horiz-adv-x="1664" d="M1664 438q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5 t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1v1024q2 -1 17.5 -3.5t34 -5t21.5 -3.5q150 -24 245 -24q80 0 117 35q46 44 46 89 q0 22 -15 50.5t-33.5 53t-33.5 64.5t-15 83q0 82 59 127.5t144 45.5q80 0 134 -44.5t54 -123.5q0 -41 -17.5 -77.5t-38 -59t-38 -56.5t-17.5 -71q0 -57 42 -83.5t103 -26.5q64 0 180 15t163 17v-2q-1 -2 -3.5 -17.5t-5 -34t-3.5 -21.5q-24 -150 -24 -245q0 -80 35 -117 q44 -46 89 -46q22 0 50.5 15t53 33.5t64.5 33.5t83 15q82 0 127.5 -59t45.5 -143z" />
+<glyph unicode="&#xf130;" horiz-adv-x="1152" d="M1152 832v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5 t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45zM896 1216v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226v512q0 132 94 226t226 94t226 -94t94 -226z" />
+<glyph unicode="&#xf131;" horiz-adv-x="1408" d="M271 591l-101 -101q-42 103 -42 214v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113zM1385 1193l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128 q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l1234 1234q10 10 23 10t23 -10l82 -82q10 -10 10 -23 t-10 -23zM1005 1325l-621 -621v512q0 132 94 226t226 94q102 0 184.5 -59t116.5 -152z" />
+<glyph unicode="&#xf132;" horiz-adv-x="1280" d="M1088 576v640h-448v-1137q119 63 213 137q235 184 235 360zM1280 1344v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150 t-33.5 170.5v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf133;" horiz-adv-x="1664" d="M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf134;" horiz-adv-x="1408" d="M512 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 1376v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800 q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37t3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-25 42 -25 86q0 66 47 113t113 47t113 -47t47 -113 q0 -33 -14 -64h302q0 11 7 20t18 11l448 96q3 1 7 1q12 0 20 -7q12 -9 12 -25z" />
+<glyph unicode="&#xf135;" horiz-adv-x="1664" d="M1440 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1664 1376q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85q-3 -1 -9 -1 q-14 0 -23 9l-64 64q-17 19 -5 39l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5z" />
+<glyph unicode="&#xf136;" horiz-adv-x="1792" d="M1745 763l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5z" />
+<glyph unicode="&#xf137;" d="M909 141l102 102q19 19 19 45t-19 45l-307 307l307 307q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf138;" d="M717 141l454 454q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf139;" d="M1165 397l102 102q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf13a;" d="M813 237l454 454q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf13b;" horiz-adv-x="1408" d="M1130 939l16 175h-884l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674zM0 1408h1408l-128 -1438l-578 -162l-574 162z" />
+<glyph unicode="&#xf13c;" horiz-adv-x="1792" d="M275 1408h1505l-266 -1333l-804 -267l-698 267l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208z" />
+<glyph unicode="&#xf13d;" horiz-adv-x="1792" d="M960 1280q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1792 352v-352q0 -22 -20 -30q-8 -2 -12 -2q-13 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30v352 q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 -181q0 -70 -35 -128.5t-93 -92.5v-163h192q26 0 45 -19 t19 -45v-128q0 -26 -19 -45t-45 -19h-192v-647q149 20 271.5 82.5t189.5 153.5l-100 100q-15 16 -7 35q8 20 30 20h352q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf13e;" horiz-adv-x="1152" d="M1056 768q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181 v-320h736z" />
+<glyph unicode="&#xf140;" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM1152 640q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1280 640q0 -212 -150 -362t-362 -150t-362 150 t-150 362t150 362t362 150t362 -150t150 -362zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf141;" horiz-adv-x="1408" d="M384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM896 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM1408 800v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf142;" horiz-adv-x="384" d="M384 288v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 1312v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf143;" d="M512 256q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM863 162q-13 232 -177 396t-396 177q-14 1 -24 -9t-10 -23v-128q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128q13 0 23 10 t9 24zM1247 161q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128q13 0 23 10q11 9 9 23zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf144;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1152 585q32 18 32 55t-32 55l-544 320q-31 19 -64 1q-32 -19 -32 -56v-640q0 -37 32 -56 q16 -8 32 -8q17 0 32 9z" />
+<glyph unicode="&#xf145;" horiz-adv-x="1792" d="M1024 1084l316 -316l-572 -572l-316 316zM813 105l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45t19 -45l362 -362q18 -18 45 -18t45 18zM1702 742l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136 t-136 56t-136 -56l-125 126q-37 37 -37 90.5t37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5z" />
+<glyph unicode="&#xf146;" d="M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" />
+<glyph unicode="&#xf147;" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5 t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf148;" horiz-adv-x="1024" d="M1018 933q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68z" />
+<glyph unicode="&#xf149;" horiz-adv-x="1024" d="M32 1280h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34q9 19 29 19z" />
+<glyph unicode="&#xf14a;" d="M685 237l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l358 -358q19 -19 45 -19t45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5 t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf14b;" d="M404 428l152 -152l-52 -52h-56v96h-96v56zM818 818q14 -13 -3 -30l-291 -291q-17 -17 -30 -3q-14 13 3 30l291 291q17 17 30 3zM544 128l544 544l-288 288l-544 -544v-288h288zM1152 736l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28l-92 -92zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf14c;" d="M1280 608v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf14d;" d="M1005 435l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5q0 -181 167 -404q10 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5 t224 23.5v-160q0 -42 40 -59q12 -5 24 -5q26 0 45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf14e;" d="M640 448l256 128l-256 128v-256zM1024 1039v-542l-512 -256v542zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf150;" d="M1145 861q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66q17 35 57 35h640q40 0 57 -35zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf151;" d="M1145 419q-17 -35 -57 -35h-640q-40 0 -57 35q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf152;" d="M1088 640q0 -33 -27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52zM1280 160v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h960q14 0 23 9t9 23zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf153;" horiz-adv-x="1024" d="M976 229l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9 t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5t-29.5 1q-126 0 -226 -64t-150 -176h468q16 0 25 -12q10 -12 7 -26 l-24 -114q-5 -26 -32 -26h-488q-3 -37 0 -105h459q15 0 25 -12q9 -12 6 -27l-24 -112q-2 -11 -11 -18.5t-20 -7.5h-387q48 -117 149.5 -185.5t228.5 -68.5q18 0 36 1.5t33.5 3.5t29.5 4.5t24.5 5t18.5 4.5l12 3l5 2q13 5 26 -2q12 -7 15 -21z" />
+<glyph unicode="&#xf154;" horiz-adv-x="1024" d="M1020 399v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7 q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5z" />
+<glyph unicode="&#xf155;" horiz-adv-x="1024" d="M978 351q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5t-17.5 18q-17 21 -2 41l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43 t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242t255 134v180q0 13 9.5 22.5t22.5 9.5h135q14 0 23 -9t9 -23v-176q57 -6 110.5 -23t87 -33.5 t63.5 -37.5t39 -29t15 -14q17 -18 5 -38l-81 -146q-8 -15 -23 -16q-14 -3 -27 7q-3 3 -14.5 12t-39 26.5t-58.5 32t-74.5 26t-85.5 11.5q-95 0 -155 -43t-60 -111q0 -26 8.5 -48t29.5 -41.5t39.5 -33t56 -31t60.5 -27t70 -27.5q53 -20 81 -31.5t76 -35t75.5 -42.5t62 -50 t53 -63.5t31.5 -76.5t13 -94z" />
+<glyph unicode="&#xf156;" horiz-adv-x="898" d="M898 1066v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102 q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf157;" horiz-adv-x="1027" d="M603 0h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214l-321 578q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61 l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103q0 -14 -9.5 -23t-22.5 -9h-290v-330q0 -13 -9.5 -22.5t-22.5 -9.5z" />
+<glyph unicode="&#xf158;" horiz-adv-x="1280" d="M1043 971q0 100 -65 162t-171 62h-320v-448h320q106 0 171 62t65 162zM1280 971q0 -193 -126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23v128 q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315z" />
+<glyph unicode="&#xf159;" horiz-adv-x="1792" d="M514 341l81 299h-159l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5zM630 768l35 128h-292l32 -128h225zM822 768h139l-35 128h-70zM1271 340l78 300h-162l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3zM1382 768l33 128h-297l34 -128h230zM1792 736v-64q0 -14 -9 -23 t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h175l-33 128h-142q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h109l-89 344q-5 15 5 28 q10 12 26 12h137q26 0 31 -24l90 -360h359l97 360q7 24 31 24h126q24 0 31 -24l98 -360h365l93 360q5 24 31 24h137q16 0 26 -12q10 -13 5 -28l-91 -344h111q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-145l-34 -128h179q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf15a;" horiz-adv-x="1280" d="M1167 896q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164 l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5zM952 351q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1t-47.5 -1v-338q8 0 37 -0.5t48 -0.5t53 1.5t58.5 4t57 8.5t55.5 14t47.5 21t39.5 30 t24.5 40t9.5 51zM881 827q0 33 -12.5 58.5t-30.5 42t-48 28t-55 16.5t-61.5 8t-58 2.5t-54 -1t-39.5 -0.5v-307q5 0 34.5 -0.5t46.5 0t50 2t55 5.5t51.5 11t48.5 18.5t37 27t27 38.5t9 51z" />
+<glyph unicode="&#xf15b;" horiz-adv-x="1280" d="M1280 768v-800q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h544v-544q0 -40 28 -68t68 -28h544zM1277 896h-509v509q82 -15 132 -65l312 -312q50 -50 65 -132z" />
+<glyph unicode="&#xf15c;" horiz-adv-x="1280" d="M1024 160v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1024 416v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1280 768v-800q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28 t-28 68v1344q0 40 28 68t68 28h544v-544q0 -40 28 -68t68 -28h544zM1277 896h-509v509q82 -15 132 -65l312 -312q50 -50 65 -132z" />
+<glyph unicode="&#xf15d;" horiz-adv-x="1664" d="M1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1572 -23 v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121zM1661 874v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162 l230 -662h70z" />
+<glyph unicode="&#xf15e;" horiz-adv-x="1664" d="M1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1661 -150 v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162l230 -662h70zM1572 1001v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -10v-3l14 3q9 1 30 1h248 v119h121z" />
+<glyph unicode="&#xf160;" horiz-adv-x="1792" d="M736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1792 -32v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832 q14 0 23 -9t9 -23zM1600 480v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1408 992v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1216 1504v-192q0 -14 -9 -23t-23 -9h-256 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf161;" horiz-adv-x="1792" d="M1216 -32v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192 q14 0 23 -9t9 -23zM1408 480v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1600 992v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1792 1504v-192q0 -14 -9 -23t-23 -9h-832 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf162;" d="M1346 223q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23 zM1486 165q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5 t82 -252.5zM1456 882v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165z" />
+<glyph unicode="&#xf163;" d="M1346 1247q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9 t9 -23zM1456 -142v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165zM1486 1189q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13 q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5z" />
+<glyph unicode="&#xf164;" horiz-adv-x="1664" d="M256 192q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5zM416 704v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45zM1600 704q0 -86 -55 -149q15 -44 15 -76 q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5v641q0 25 18 43.5t43 20.5q24 2 76 59t101 121q68 87 101 120q18 18 31 48t17.5 48.5 t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135z" />
+<glyph unicode="&#xf165;" horiz-adv-x="1664" d="M256 960q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5zM416 448v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640q0 -26 19 -45t45 -19h288q26 0 45 19t19 45zM1545 597q55 -61 55 -149q-1 -78 -57.5 -135 t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121 t-76 59q-25 2 -43 20.5t-18 43.5v641q0 26 19 44.5t45 19.5q35 1 158 44q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76z" />
+<glyph unicode="&#xf166;" d="M919 233v157q0 50 -29 50q-17 0 -33 -16v-224q16 -16 33 -16q29 0 29 49zM1103 355h66v34q0 51 -33 51t-33 -51v-34zM532 621v-70h-80v-423h-74v423h-78v70h232zM733 495v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 16 -6 54v290h66v-270q0 -24 1 -26q1 -15 15 -15 q20 0 42 31v280h67zM985 384v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74zM1236 255v-9q0 -29 -2 -43q-3 -22 -15 -40q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86v129q0 59 20 86q29 38 80 38t78 -38 q21 -28 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68zM785 1079v-156q0 -51 -32 -51t-32 51v156q0 52 32 52t32 -52zM1318 366q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5 q-20 -87 -20 -260q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73q20 84 20 260zM563 1017l90 296h-75l-51 -195l-53 195h-78l24 -69t23 -69q35 -103 46 -158v-201h74v201zM852 936v130q0 58 -21 87q-29 38 -78 38q-51 0 -78 -38 q-21 -29 -21 -87v-130q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87zM1033 816h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293q0 -37 6 -55q11 -27 43 -27q36 0 77 45v-40zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf167;" d="M971 292v-211q0 -67 -39 -67q-23 0 -45 22v301q22 22 45 22q39 0 39 -67zM1309 291v-46h-90v46q0 68 45 68t45 -68zM343 509h107v94h-312v-94h105v-569h100v569zM631 -60h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391q0 -49 8 -73 q12 -37 58 -37q48 0 102 61v-54zM1060 88v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89v-663h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100zM1398 98v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51 q-28 -37 -28 -116v-173q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54q2 9 2 58zM790 1011v210q0 69 -43 69t-43 -69v-210q0 -70 43 -70t43 70zM1509 260q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99 q-26 112 -26 350q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350zM511 1536h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187h106l71 -263zM881 1203v-175q0 -81 -28 -118q-37 -51 -106 -51q-67 0 -105 51 q-28 38 -28 118v175q0 80 28 117q38 51 105 51q69 0 106 -51q28 -37 28 -117zM1216 1365v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91z" />
+<glyph unicode="&#xf168;" horiz-adv-x="1408" d="M597 869q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17t0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45zM1403 1511q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37q-10 -15 -32 -15h-239q-42 0 -66 45l-339 622q18 32 531 942 q25 45 64 45h241q22 0 31 -15z" />
+<glyph unicode="&#xf169;" d="M685 771q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29l125 -216v-1l-196 -346q-9 -14 0 -28q8 -13 24 -13h185q31 0 50 36zM1309 1268q-7 12 -24 12h-187q-30 0 -49 -35l-411 -729q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1 l409 723q8 16 0 28zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf16a;" horiz-adv-x="1792" d="M1280 640q0 37 -30 54l-512 320q-31 20 -65 2q-33 -18 -33 -56v-640q0 -38 33 -56q16 -8 31 -8q20 0 34 10l512 320q30 17 30 54zM1792 640q0 -96 -1 -150t-8.5 -136.5t-22.5 -147.5q-16 -73 -69 -123t-124 -58q-222 -25 -671 -25t-671 25q-71 8 -124.5 58t-69.5 123 q-14 65 -21.5 147.5t-8.5 136.5t-1 150t1 150t8.5 136.5t22.5 147.5q16 73 69 123t124 58q222 25 671 25t671 -25q71 -8 124.5 -58t69.5 -123q14 -65 21.5 -147.5t8.5 -136.5t1 -150z" />
+<glyph unicode="&#xf16b;" horiz-adv-x="1792" d="M402 829l494 -305l-342 -285l-490 319zM1388 274v-108l-490 -293v-1l-1 1l-1 -1v1l-489 293v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284zM554 1418l342 -285l-494 -304l-338 270zM1390 829l338 -271l-489 -319l-343 285zM1239 1418l489 -319l-338 -270l-494 304z" />
+<glyph unicode="&#xf16c;" horiz-adv-x="1408" d="M928 135v-151l-707 -1v151zM1169 481v-701l-1 -35v-1h-1132l-35 1h-1v736h121v-618h928v618h120zM241 393l704 -65l-13 -150l-705 65zM309 709l683 -183l-39 -146l-683 183zM472 1058l609 -360l-77 -130l-609 360zM832 1389l398 -585l-124 -85l-399 584zM1285 1536 l121 -697l-149 -26l-121 697z" />
+<glyph unicode="&#xf16d;" d="M1362 110v648h-135q20 -63 20 -131q0 -126 -64 -232.5t-174 -168.5t-240 -62q-197 0 -337 135.5t-140 327.5q0 68 20 131h-141v-648q0 -26 17.5 -43.5t43.5 -17.5h1069q25 0 43 17.5t18 43.5zM1078 643q0 124 -90.5 211.5t-218.5 87.5q-127 0 -217.5 -87.5t-90.5 -211.5 t90.5 -211.5t217.5 -87.5q128 0 218.5 87.5t90.5 211.5zM1362 1003v165q0 28 -20 48.5t-49 20.5h-174q-29 0 -49 -20.5t-20 -48.5v-165q0 -29 20 -49t49 -20h174q29 0 49 20t20 49zM1536 1211v-1142q0 -81 -58 -139t-139 -58h-1142q-81 0 -139 58t-58 139v1142q0 81 58 139 t139 58h1142q81 0 139 -58t58 -139z" />
+<glyph unicode="&#xf16e;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM698 640q0 88 -62 150t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150zM1262 640q0 88 -62 150 t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150z" />
+<glyph unicode="&#xf170;" d="M768 914l201 -306h-402zM1133 384h94l-459 691l-459 -691h94l104 160h522zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf171;" horiz-adv-x="1408" d="M815 677q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82t52 58q36 18 72.5 12t64 -35.5t27.5 -67.5zM926 698q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5q4 -91 77.5 -155t165.5 -56q91 8 152 84t50 168zM1165 1240q-20 27 -56 44.5t-58 22 t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5zM1222 205q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18 t-76.5 27t-73 43.5t-52 61.5q-25 96 -57 292l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37zM1403 1166q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34t-6 39.5 t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54z" />
+<glyph unicode="&#xf172;" d="M848 666q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5t43.5 -70.5q39 -23 81 4t36 72zM928 682q8 -66 -36 -121t-110 -61t-119 40t-56 113q-2 49 25.5 93t72.5 64q70 31 141.5 -10t81.5 -118zM1100 1073q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5 t-52.5 16t-54.5 32.5q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5zM1142 327q0 7 5.5 26.5t3 32t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6l-5 -12q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71z M1272 1020q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63q24 13 39.5 23t31 29t19.5 40q48 267 80 473zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf173;" horiz-adv-x="1024" d="M390 1408h219v-388h364v-241h-364v-394q0 -136 14 -172q13 -37 52 -60q50 -31 117 -31q117 0 232 76v-242q-102 -48 -178 -65q-77 -19 -173 -19q-105 0 -186 27q-78 25 -138 75q-58 51 -79 105q-22 54 -22 161v539h-170v217q91 30 155 84q64 55 103 132q39 78 54 196z " />
+<glyph unicode="&#xf174;" d="M1123 127v181q-88 -56 -174 -56q-51 0 -88 23q-29 17 -39 45q-11 30 -11 129v295h274v181h-274v291h-164q-11 -90 -40 -147t-78 -99q-48 -40 -116 -63v-163h127v-404q0 -78 17 -121q17 -42 59 -78q43 -37 104 -57q62 -20 140 -20q67 0 129 14q57 13 134 49zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf175;" horiz-adv-x="768" d="M765 237q8 -19 -5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19z" />
+<glyph unicode="&#xf176;" horiz-adv-x="768" d="M765 1043q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19t5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35z" />
+<glyph unicode="&#xf177;" horiz-adv-x="1792" d="M1792 736v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf178;" horiz-adv-x="1792" d="M1728 643q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23z" />
+<glyph unicode="&#xf179;" horiz-adv-x="1408" d="M1393 321q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503q0 228 113 374q112 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65 q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126zM1017 1494q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10z" />
+<glyph unicode="&#xf17a;" horiz-adv-x="1664" d="M682 530v-651l-682 94v557h682zM682 1273v-659h-682v565zM1664 530v-786l-907 125v661h907zM1664 1408v-794h-907v669z" />
+<glyph unicode="&#xf17b;" horiz-adv-x="1408" d="M493 1053q16 0 27.5 11.5t11.5 27.5t-11.5 27.5t-27.5 11.5t-27 -11.5t-11 -27.5t11 -27.5t27 -11.5zM915 1053q16 0 27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5t11.5 -27.5t27.5 -11.5zM103 869q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30 t-73 30t-30 73v430q0 42 30 72t73 30zM1163 850v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78 32t-32 78v666h918zM931 1255q107 -55 171 -153.5t64 -215.5 h-925q0 117 64 215.5t172 153.5l-71 131q-7 13 5 20q13 6 20 -6l72 -132q95 42 201 42t201 -42l72 132q7 12 20 6q12 -7 5 -20zM1408 767v-430q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73v430q0 43 30 72.5t72 29.5q43 0 73 -29.5t30 -72.5z" />
+<glyph unicode="&#xf17c;" d="M663 1125q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5q0 12 19 15h10zM750 1111q-4 -1 -11.5 6.5t-17.5 4.5q24 11 32 -2q3 -6 -3 -9zM399 684q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-7 -10 -1 -12q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2z M1254 325q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69t-19.5 45.5t-15.5 24.5t-13 15t-7.5 7 q-14 62 -31 103t-29.5 56t-23.5 33t-15 40q-4 21 6 53.5t4.5 49.5t-44.5 25q-15 3 -44.5 18t-35.5 16q-8 1 -11 26t8 51t36 27q37 3 51 -30t4 -58q-11 -19 -2 -26.5t30 -0.5q13 4 13 36v37q-5 30 -13.5 50t-21 30.5t-23.5 15t-27 7.5q-107 -8 -89 -134q0 -15 -1 -15 q-9 9 -29.5 10.5t-33 -0.5t-15.5 5q1 57 -16 90t-45 34q-27 1 -41.5 -27.5t-16.5 -59.5q-1 -15 3.5 -37t13 -37.5t15.5 -13.5q10 3 16 14q4 9 -7 8q-7 0 -15.5 14.5t-9.5 33.5q-1 22 9 37t34 14q17 0 27 -21t9.5 -39t-1.5 -22q-22 -15 -31 -29q-8 -12 -27.5 -23.5 t-20.5 -12.5q-13 -14 -15.5 -27t7.5 -18q14 -8 25 -19.5t16 -19t18.5 -13t35.5 -6.5q47 -2 102 15q2 1 23 7t34.5 10.5t29.5 13t21 17.5q9 14 20 8q5 -3 6.5 -8.5t-3 -12t-16.5 -9.5q-20 -6 -56.5 -21.5t-45.5 -19.5q-44 -19 -70 -23q-25 -5 -79 2q-10 2 -9 -2t17 -19 q25 -23 67 -22q17 1 36 7t36 14t33.5 17.5t30 17t24.5 12t17.5 2.5t8.5 -11q0 -2 -1 -4.5t-4 -5t-6 -4.5t-8.5 -5t-9 -4.5t-10 -5t-9.5 -4.5q-28 -14 -67.5 -44t-66.5 -43t-49 -1q-21 11 -63 73q-22 31 -25 22q-1 -3 -1 -10q0 -25 -15 -56.5t-29.5 -55.5t-21 -58t11.5 -63 q-23 -6 -62.5 -90t-47.5 -141q-2 -18 -1.5 -69t-5.5 -59q-8 -24 -29 -3q-32 31 -36 94q-2 28 4 56q4 19 -1 18l-4 -5q-36 -65 10 -166q5 -12 25 -28t24 -20q20 -23 104 -90.5t93 -76.5q16 -15 17.5 -38t-14 -43t-45.5 -23q8 -15 29 -44.5t28 -54t7 -70.5q46 24 7 92 q-4 8 -10.5 16t-9.5 12t-2 6q3 5 13 9.5t20 -2.5q46 -52 166 -36q133 15 177 87q23 38 34 30q12 -6 10 -52q-1 -25 -23 -92q-9 -23 -6 -37.5t24 -15.5q3 19 14.5 77t13.5 90q2 21 -6.5 73.5t-7.5 97t23 70.5q15 18 51 18q1 37 34.5 53t72.5 10.5t60 -22.5zM626 1152 q3 17 -2.5 30t-11.5 15q-9 2 -9 -7q2 -5 5 -6q10 0 7 -15q-3 -20 8 -20q3 0 3 3zM1045 955q-2 8 -6.5 11.5t-13 5t-14.5 5.5q-5 3 -9.5 8t-7 8t-5.5 6.5t-4 4t-4 -1.5q-14 -16 7 -43.5t39 -31.5q9 -1 14.5 8t3.5 20zM867 1168q0 11 -5 19.5t-11 12.5t-9 3q-14 -1 -7 -7l4 -2 q14 -4 18 -31q0 -3 8 2zM921 1401q0 2 -2.5 5t-9 7t-9.5 6q-15 15 -24 15q-9 -1 -11.5 -7.5t-1 -13t-0.5 -12.5q-1 -4 -6 -10.5t-6 -9t3 -8.5q4 -3 8 0t11 9t15 9q1 1 9 1t15 2t9 7zM1486 60q20 -12 31 -24.5t12 -24t-2.5 -22.5t-15.5 -22t-23.5 -19.5t-30 -18.5 t-31.5 -16.5t-32 -15.5t-27 -13q-38 -19 -85.5 -56t-75.5 -64q-17 -16 -68 -19.5t-89 14.5q-18 9 -29.5 23.5t-16.5 25.5t-22 19.5t-47 9.5q-44 1 -130 1q-19 0 -57 -1.5t-58 -2.5q-44 -1 -79.5 -15t-53.5 -30t-43.5 -28.5t-53.5 -11.5q-29 1 -111 31t-146 43q-19 4 -51 9.5 t-50 9t-39.5 9.5t-33.5 14.5t-17 19.5q-10 23 7 66.5t18 54.5q1 16 -4 40t-10 42.5t-4.5 36.5t10.5 27q14 12 57 14t60 12q30 18 42 35t12 51q21 -73 -32 -106q-32 -20 -83 -15q-34 3 -43 -10q-13 -15 5 -57q2 -6 8 -18t8.5 -18t4.5 -17t1 -22q0 -15 -17 -49t-14 -48 q3 -17 37 -26q20 -6 84.5 -18.5t99.5 -20.5q24 -6 74 -22t82.5 -23t55.5 -4q43 6 64.5 28t23 48t-7.5 58.5t-19 52t-20 36.5q-121 190 -169 242q-68 74 -113 40q-11 -9 -15 15q-3 16 -2 38q1 29 10 52t24 47t22 42q8 21 26.5 72t29.5 78t30 61t39 54q110 143 124 195 q-12 112 -16 310q-2 90 24 151.5t106 104.5q39 21 104 21q53 1 106 -13.5t89 -41.5q57 -42 91.5 -121.5t29.5 -147.5q-5 -95 30 -214q34 -113 133 -218q55 -59 99.5 -163t59.5 -191q8 -49 5 -84.5t-12 -55.5t-20 -22q-10 -2 -23.5 -19t-27 -35.5t-40.5 -33.5t-61 -14 q-18 1 -31.5 5t-22.5 13.5t-13.5 15.5t-11.5 20.5t-9 19.5q-22 37 -41 30t-28 -49t7 -97q20 -70 1 -195q-10 -65 18 -100.5t73 -33t85 35.5q59 49 89.5 66.5t103.5 42.5q53 18 77 36.5t18.5 34.5t-25 28.5t-51.5 23.5q-33 11 -49.5 48t-15 72.5t15.5 47.5q1 -31 8 -56.5 t14.5 -40.5t20.5 -28.5t21 -19t21.5 -13t16.5 -9.5z" />
+<glyph unicode="&#xf17d;" d="M1024 36q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5t-103 -148l-15 11q184 -150 418 -150q132 0 256 52zM839 643q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81 t99.5 48l37 13q4 1 13 3.5t13 4.5zM732 855q-120 213 -244 378q-138 -65 -234 -186t-128 -272q302 0 606 80zM1416 536q-210 60 -409 29q87 -239 128 -469q111 75 185 189.5t96 250.5zM611 1277q-1 0 -2 -1q1 1 2 1zM1201 1132q-185 164 -433 164q-76 0 -155 -19 q131 -170 246 -382q69 26 130 60.5t96.5 61.5t65.5 57t37.5 40.5zM1424 647q-3 232 -149 410l-1 -1q-9 -12 -19 -24.5t-43.5 -44.5t-71 -60.5t-100 -65t-131.5 -64.5q25 -53 44 -95q2 -6 6.5 -17.5t7.5 -16.5q36 5 74.5 7t73.5 2t69 -1.5t64 -4t56.5 -5.5t48 -6.5t36.5 -6 t25 -4.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf17e;" d="M1173 473q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5 t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75q0 -92 122 -157.5t291 -65.5 q73 0 140 18.5t122.5 53.5t88.5 93.5t33 131.5zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5q-130 0 -234 80q-77 -16 -150 -16q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5q0 73 16 150q-80 104 -80 234q0 159 112.5 271.5t271.5 112.5q130 0 234 -80 q77 16 150 16q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -73 -16 -150q80 -104 80 -234z" />
+<glyph unicode="&#xf180;" horiz-adv-x="1664" d="M1483 512l-587 -587q-52 -53 -127.5 -53t-128.5 53l-587 587q-53 53 -53 128t53 128l587 587q53 53 128 53t128 -53l265 -265l-398 -399l-188 188q-42 42 -99 42q-59 0 -100 -41l-120 -121q-42 -40 -42 -99q0 -58 42 -100l406 -408q30 -28 67 -37l6 -4h28q60 0 99 41 l619 619l2 -3q53 -53 53 -128t-53 -128zM1406 1138l120 -120q14 -15 14 -36t-14 -36l-730 -730q-17 -15 -37 -15v0q-4 0 -6 1q-18 2 -30 14l-407 408q-14 15 -14 36t14 35l121 120q13 15 35 15t36 -15l252 -252l574 575q15 15 36 15t36 -15z" />
+<glyph unicode="&#xf181;" d="M704 192v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1376 576v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408 q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf182;" horiz-adv-x="1280" d="M1280 480q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43 q-40 0 -68 28t-28 68q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53zM864 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
+<glyph unicode="&#xf183;" horiz-adv-x="1024" d="M1024 832v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136z M736 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
+<glyph unicode="&#xf184;" d="M773 234l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85t24.5 -59zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf185;" horiz-adv-x="1792" d="M1472 640q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5zM1748 363q-4 -15 -20 -20l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4 l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 29 4l292 -94l180 248q9 12 26 12t26 -12l180 -248l292 94 q14 6 29 -4q13 -10 13 -26v-306l292 -96q16 -5 20 -20q5 -16 -4 -29l-180 -248l180 -248q9 -12 4 -29z" />
+<glyph unicode="&#xf186;" d="M1262 233q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5zM1465 318q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61 t-245 164t-164 245t-61 298q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38z" />
+<glyph unicode="&#xf187;" horiz-adv-x="1792" d="M1088 704q0 26 -19 45t-45 19h-256q-26 0 -45 -19t-19 -45t19 -45t45 -19h256q26 0 45 19t19 45zM1664 896v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1728 1344v-256q0 -26 -19 -45t-45 -19h-1536 q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf188;" horiz-adv-x="1664" d="M1632 576q0 -26 -19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207 q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45t19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 -19t19 -45t-19 -45l-173 -173v-294h224q26 0 45 -19 t19 -45zM1152 1152h-640q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5z" />
+<glyph unicode="&#xf189;" horiz-adv-x="1920" d="M1917 1016q23 -64 -150 -294q-24 -32 -65 -85q-78 -100 -90 -131q-17 -41 14 -81q17 -21 81 -82h1l1 -1l1 -1l2 -2q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12q-30 21 -70 64t-68.5 77.5t-61 58 t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211t-130.5 272q-6 16 -6 27t3 16l4 6 q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24q17 19 38 30q53 26 239 24 q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5t13 3t20 0.5l288 2 q39 5 64 -2.5t31 -16.5z" />
+<glyph unicode="&#xf18a;" horiz-adv-x="1792" d="M675 252q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5t43 -50.5t74.5 -2.5t62.5 47.5zM769 373q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5q-17 -31 13 -45q14 -5 29 0.5t22 18.5zM943 266q-45 -102 -158 -150t-224 -12 q-107 34 -147.5 126.5t6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5zM1255 426q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5q9 -96 89 -170t208.5 -109t274.5 -21q223 23 369.5 141.5t132.5 264.5zM1563 422 q0 -68 -37 -139.5t-109 -137t-168.5 -117.5t-226 -83t-270.5 -31t-275 33.5t-240.5 93t-171.5 151t-65 199.5q0 115 69.5 245t197.5 258q169 169 341.5 236t246.5 -7q65 -64 20 -209q-4 -14 -1 -20t10 -7t14.5 0.5t13.5 3.5l6 2q139 59 246 59t153 -61q45 -63 0 -178 q-2 -13 -4.5 -20t4.5 -12.5t12 -7.5t17 -6q57 -18 103 -47t80 -81.5t34 -116.5zM1489 1046q42 -47 54.5 -108.5t-6.5 -117.5q-8 -23 -29.5 -34t-44.5 -4q-23 8 -34 29.5t-4 44.5q20 63 -24 111t-107 35q-24 -5 -45 8t-25 37q-5 24 8 44.5t37 25.5q60 13 119 -5.5t101 -65.5z M1670 1209q87 -96 112.5 -222.5t-13.5 -241.5q-9 -27 -34 -40t-52 -4t-40 34t-5 52q28 82 10 172t-80 158q-62 69 -148 95.5t-173 8.5q-28 -6 -52 9.5t-30 43.5t9.5 51.5t43.5 29.5q123 26 244 -11.5t208 -134.5z" />
+<glyph unicode="&#xf18b;" d="M1133 -34q-171 -94 -368 -94q-196 0 -367 94q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211zM638 1394v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495q0 187 83.5 349.5t229.5 269.5t325 137zM1536 638q0 -280 -181 -495 q-204 99 -330.5 306.5t-126.5 459.5v485q179 -30 325 -137t229.5 -269.5t83.5 -349.5z" />
+<glyph unicode="&#xf18c;" horiz-adv-x="1408" d="M1402 433q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32t13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5 t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70 28 133.5 36.5t112.5 -1t92 -30t73.5 -50t56 -61t42 -63t27.5 -56 t16 -39.5l4 -16q12 122 12 195q-8 6 -21.5 16t-49 44.5t-63.5 71.5t-54 93t-33 112.5t12 127t70 138.5q73 -25 127.5 -61.5t84.5 -76.5t48 -85t20.5 -89t-0.5 -85.5t-13 -76.5t-19 -62t-17 -42l-7 -15q1 -5 1 -50.5t-1 -71.5q3 7 10 18.5t30.5 43t50.5 58t71 55.5t91.5 44.5 t112 14.5t132.5 -24q-2 -78 -21.5 -141.5t-50 -104.5t-69.5 -71.5t-81.5 -45.5t-84.5 -24t-80 -9.5t-67.5 1t-46.5 4.5l-17 3q-23 -147 -73 -283q6 7 18 18.5t49.5 41t77.5 52.5t99.5 42t117.5 20t129 -23.5t137 -77.5z" />
+<glyph unicode="&#xf18d;" horiz-adv-x="1280" d="M1259 283v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5v66h1238zM1259 609v-255h-1238v255h1238zM1259 937v-255h-1238v255h1238zM1259 1077v-67h-1238v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5z " />
+<glyph unicode="&#xf18e;" d="M1152 640q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf190;" d="M1152 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23t9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf191;" d="M1024 960v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52t27 52l448 320q17 12 37 12q26 0 45 -19t19 -45zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5z M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf192;" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5 t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf193;" horiz-adv-x="1664" d="M1023 349l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5zM1571 249l58 -114l-256 -128 q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5l-96 779q-2 16 6 42q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455z" />
+<glyph unicode="&#xf194;" d="M1254 899q16 85 -21 132q-52 65 -187 45q-17 -3 -41 -12.5t-57.5 -30.5t-64.5 -48.5t-59.5 -70t-44.5 -91.5q80 7 113.5 -16t26.5 -99q-5 -52 -52 -143q-43 -78 -71 -99q-44 -32 -87 14q-23 24 -37.5 64.5t-19 73t-10 84t-8.5 71.5q-23 129 -34 164q-12 37 -35.5 69 t-50.5 40q-57 16 -127 -25q-54 -32 -136.5 -106t-122.5 -102v-7q16 -8 25.5 -26t21.5 -20q21 -3 54.5 8.5t58 10.5t41.5 -30q11 -18 18.5 -38.5t15 -48t12.5 -40.5q17 -46 53 -187q36 -146 57 -197q42 -99 103 -125q43 -12 85 -1.5t76 31.5q131 77 250 237 q104 139 172.5 292.5t82.5 226.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf195;" horiz-adv-x="1152" d="M1152 704q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160 q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf196;" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832 q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf197;" horiz-adv-x="1792" />
+<glyph unicode="&#xf198;" horiz-adv-x="1792" />
+<glyph unicode="&#xf199;" horiz-adv-x="1792" />
+<glyph unicode="&#xf19a;" horiz-adv-x="1792" />
+<glyph unicode="&#xf19b;" horiz-adv-x="1792" />
+<glyph unicode="&#xf19c;" horiz-adv-x="1792" />
+<glyph unicode="&#xf19d;" horiz-adv-x="1792" />
+<glyph unicode="&#xf19e;" horiz-adv-x="1792" />
+<glyph unicode="&#xf500;" horiz-adv-x="1792" />
+</font>
+</defs></svg> \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/fonts/font-awesome/fontawesome-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/font-awesome/fontawesome-webfont.ttf
new file mode 100644
index 0000000000..e89738de5e
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/font-awesome/fontawesome-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/font-awesome/fontawesome-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/font-awesome/fontawesome-webfont.woff
new file mode 100644
index 0000000000..8c1748aab7
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/font-awesome/fontawesome-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/_lato.scss b/WebContent/VAADIN/themes/valo/fonts/lato/_lato.scss
new file mode 100644
index 0000000000..152082689c
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/_lato.scss
@@ -0,0 +1,155 @@
+$lato-pathPrefix: null;
+
+@if $v-relative-paths == false {
+ $lato-pathPrefix: "../valo/fonts/lato/";
+}
+
+@mixin font-lato-regular ($italic: true) {
+ @font-face {
+ font-family: 'Lato';
+ src: url('#{$lato-pathPrefix}lato-regular-webfont.eot');
+ src: url('#{$lato-pathPrefix}lato-regular-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$lato-pathPrefix}lato-regular-webfont.woff') format('woff'),
+ url('#{$lato-pathPrefix}lato-regular-webfont.ttf') format('truetype');
+ font-weight: 400;
+ font-style: normal;
+ }
+ @if $italic {
+ @font-face {
+ font-family: 'Lato';
+ src: url('#{$lato-pathPrefix}lato-italic-webfont.eot');
+ src: url('#{$lato-pathPrefix}lato-italic-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$lato-pathPrefix}lato-italic-webfont.woff') format('woff'),
+ url('#{$lato-pathPrefix}lato-italic-webfont.ttf') format('truetype');
+ font-weight: 400;
+ font-style: italic;
+ }
+ }
+}
+
+
+
+
+
+@mixin font-lato-hairline ($italic: true) {
+ @font-face {
+ font-family: 'Lato';
+ src: url('#{$lato-pathPrefix}lato-hairline-webfont.eot');
+ src: url('#{$lato-pathPrefix}lato-hairline-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$lato-pathPrefix}lato-hairline-webfont.woff') format('woff'),
+ url('#{$lato-pathPrefix}lato-hairline-webfont.ttf') format('truetype');
+ font-weight: 600;
+ font-style: normal;
+ }
+ @if $italic {
+ @font-face {
+ font-family: 'Lato';
+ src: url('#{$lato-pathPrefix}lato-hairlineitalic-webfont.eot');
+ src: url('#{$lato-pathPrefix}lato-hairlineitalic-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$lato-pathPrefix}lato-hairlineitalic-webfont.woff') format('woff'),
+ url('#{$lato-pathPrefix}lato-hairlineitalic-webfont.ttf') format('truetype');
+ font-weight: 600;
+ font-style: italic;
+ }
+ }
+}
+
+
+
+
+@mixin font-lato-light ($italic: true) {
+ @font-face {
+ font-family: 'Lato';
+ src: url('#{$lato-pathPrefix}lato-light-webfont.eot');
+ src: url('#{$lato-pathPrefix}lato-light-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$lato-pathPrefix}lato-light-webfont.woff') format('woff'),
+ url('#{$lato-pathPrefix}lato-light-webfont.ttf') format('truetype');
+ font-weight: 300;
+ font-style: normal;
+ }
+ @if $italic {
+ @font-face {
+ font-family: 'Lato';
+ src: url('#{$lato-pathPrefix}lato-lightitalic-webfont.eot');
+ src: url('#{$lato-pathPrefix}lato-lightitalic-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$lato-pathPrefix}lato-lightitalic-webfont.woff') format('woff'),
+ url('#{$lato-pathPrefix}lato-lightitalic-webfont.ttf') format('truetype');
+ font-weight: 300;
+ font-style: italic;
+ }
+ }
+}
+
+
+
+@mixin font-lato-bold ($italic: true) {
+ @font-face {
+ font-family: 'Lato';
+ src: url('#{$lato-pathPrefix}lato-bold-webfont.eot');
+ src: url('#{$lato-pathPrefix}lato-bold-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$lato-pathPrefix}lato-bold-webfont.woff') format('woff'),
+ url('#{$lato-pathPrefix}lato-bold-webfont.ttf') format('truetype');
+ font-weight: 700;
+ font-style: normal;
+ }
+ @if $italic {
+ @font-face {
+ font-family: 'Lato';
+ src: url('#{$lato-pathPrefix}lato-bolditalic-webfont.eot');
+ src: url('#{$lato-pathPrefix}lato-bolditalic-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$lato-pathPrefix}lato-bolditalic-webfont.woff') format('woff'),
+ url('#{$lato-pathPrefix}lato-bolditalic-webfont.ttf') format('truetype');
+ font-weight: 700;
+ font-style: italic;
+ }
+ }
+}
+
+
+
+
+
+@mixin font-lato-black ($italic) {
+ @font-face {
+ font-family: 'Lato';
+ src: url('#{$lato-pathPrefix}lato-black-webfont.eot');
+ src: url('#{$lato-pathPrefix}lato-black-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$lato-pathPrefix}lato-black-webfont.woff') format('woff'),
+ url('#{$lato-pathPrefix}lato-black-webfont.ttf') format('truetype');
+ font-weight: 900;
+ font-style: normal;
+ }
+ @if $italic {
+ @font-face {
+ font-family: 'Lato';
+ src: url('#{$lato-pathPrefix}lato-blackitalic-webfont.eot');
+ src: url('#{$lato-pathPrefix}lato-blackitalic-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$lato-pathPrefix}lato-blackitalic-webfont.woff') format('woff'),
+ url('#{$lato-pathPrefix}lato-blackitalic-webfont.ttf') format('truetype');
+ font-weight: 900;
+ font-style: italic;
+ }
+ }
+}
+
+
+
+
+
+@mixin font-lato ($italic: false, $extralight: false, $light: false, $regular: true, $medium: false, $bold: false, $black: false) {
+ @if $extralight {
+ @include font-lato-hairline($italic);
+ }
+ @if $light {
+ @include font-lato-light($italic);
+ }
+ @if $regular {
+ @include font-lato-regular($italic);
+ }
+ @if $bold {
+ @include font-lato-bold($italic);
+ }
+ @if $black {
+ @include font-lato-black($italic);
+ }
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-black-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/lato/lato-black-webfont.eot
new file mode 100755
index 0000000000..254f92b5b6
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-black-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-black-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/lato/lato-black-webfont.ttf
new file mode 100755
index 0000000000..1ecfb60748
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-black-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-black-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/lato/lato-black-webfont.woff
new file mode 100755
index 0000000000..2269286e11
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-black-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-blackitalic-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/lato/lato-blackitalic-webfont.eot
new file mode 100755
index 0000000000..5e6889cc4f
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-blackitalic-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-blackitalic-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/lato/lato-blackitalic-webfont.ttf
new file mode 100755
index 0000000000..bd334e9bea
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-blackitalic-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-blackitalic-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/lato/lato-blackitalic-webfont.woff
new file mode 100755
index 0000000000..6e41ed94fc
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-blackitalic-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-bold-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/lato/lato-bold-webfont.eot
new file mode 100755
index 0000000000..00954909c8
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-bold-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-bold-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/lato/lato-bold-webfont.ttf
new file mode 100755
index 0000000000..695afc99a0
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-bold-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-bold-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/lato/lato-bold-webfont.woff
new file mode 100755
index 0000000000..6c2eb81d98
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-bold-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-bolditalic-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/lato/lato-bolditalic-webfont.eot
new file mode 100755
index 0000000000..0994180ad6
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-bolditalic-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-bolditalic-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/lato/lato-bolditalic-webfont.ttf
new file mode 100755
index 0000000000..321368dac1
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-bolditalic-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-bolditalic-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/lato/lato-bolditalic-webfont.woff
new file mode 100755
index 0000000000..8782b4792b
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-bolditalic-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-hairline-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/lato/lato-hairline-webfont.eot
new file mode 100755
index 0000000000..dc400174fc
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-hairline-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-hairline-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/lato/lato-hairline-webfont.ttf
new file mode 100755
index 0000000000..9041e647f3
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-hairline-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-hairline-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/lato/lato-hairline-webfont.woff
new file mode 100755
index 0000000000..19acf444be
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-hairline-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-hairlineitalic-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/lato/lato-hairlineitalic-webfont.eot
new file mode 100755
index 0000000000..0ba065fe8f
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-hairlineitalic-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-hairlineitalic-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/lato/lato-hairlineitalic-webfont.ttf
new file mode 100755
index 0000000000..05aa693e4d
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-hairlineitalic-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-hairlineitalic-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/lato/lato-hairlineitalic-webfont.woff
new file mode 100755
index 0000000000..d63f45aa24
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-hairlineitalic-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-italic-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/lato/lato-italic-webfont.eot
new file mode 100755
index 0000000000..b0e5bb354f
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-italic-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-italic-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/lato/lato-italic-webfont.ttf
new file mode 100755
index 0000000000..368cf111e6
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-italic-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-italic-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/lato/lato-italic-webfont.woff
new file mode 100755
index 0000000000..9d0784d5e4
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-italic-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-light-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/lato/lato-light-webfont.eot
new file mode 100755
index 0000000000..2233ada12e
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-light-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-light-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/lato/lato-light-webfont.ttf
new file mode 100755
index 0000000000..b9ad943886
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-light-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-light-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/lato/lato-light-webfont.woff
new file mode 100755
index 0000000000..c0270e2863
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-light-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-lightitalic-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/lato/lato-lightitalic-webfont.eot
new file mode 100755
index 0000000000..54635135a9
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-lightitalic-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-lightitalic-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/lato/lato-lightitalic-webfont.ttf
new file mode 100755
index 0000000000..da3ad35f8b
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-lightitalic-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-lightitalic-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/lato/lato-lightitalic-webfont.woff
new file mode 100755
index 0000000000..80f3d711a0
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-lightitalic-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-regular-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/lato/lato-regular-webfont.eot
new file mode 100755
index 0000000000..db0507682a
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-regular-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-regular-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/lato/lato-regular-webfont.ttf
new file mode 100755
index 0000000000..33743b52d9
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-regular-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lato/lato-regular-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/lato/lato-regular-webfont.woff
new file mode 100755
index 0000000000..c287ffcdf3
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lato/lato-regular-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lora/_lora.scss b/WebContent/VAADIN/themes/valo/fonts/lora/_lora.scss
new file mode 100644
index 0000000000..a40f800b5a
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lora/_lora.scss
@@ -0,0 +1,71 @@
+$lora-pathPrefix: null;
+
+@if $v-relative-paths == false {
+ $lora-pathPrefix: "../valo/fonts/lora/";
+}
+
+@mixin font-lora-regular ($italic: true) {
+ @font-face {
+ font-family: 'lora';
+ src: url('#{$lora-pathPrefix}lora-regular-webfont.eot');
+ src: url('#{$lora-pathPrefix}lora-regular-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$lora-pathPrefix}lora-regular-webfont.woff') format('woff'),
+ url('#{$lora-pathPrefix}lora-regular-webfont.ttf') format('truetype');
+ font-weight: 400;
+ font-style: normal;
+ }
+ @if $italic {
+ @font-face {
+ font-family: 'lora';
+ src: url('#{$lora-pathPrefix}lora-italic-webfont.eot');
+ src: url('#{$lora-pathPrefix}lora-italic-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$lora-pathPrefix}lora-italic-webfont.woff') format('woff'),
+ url('#{$lora-pathPrefix}lora-italic-webfont.ttf') format('truetype');
+ font-weight: 400;
+ font-style: italic;
+ }
+ }
+}
+
+
+
+
+
+
+
+@mixin font-lora-bold ($italic: true) {
+ @font-face {
+ font-family: 'lora';
+ src: url('#{$lora-pathPrefix}lora-bold-webfont.eot');
+ src: url('#{$lora-pathPrefix}lora-bold-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$lora-pathPrefix}lora-bold-webfont.woff') format('woff'),
+ url('#{$lora-pathPrefix}lora-bold-webfont.ttf') format('truetype');
+ font-weight: 700;
+ font-style: normal;
+ }
+ @if $italic {
+ @font-face {
+ font-family: 'lora';
+ src: url('#{$lora-pathPrefix}lora-bolditalic-webfont.eot');
+ src: url('#{$lora-pathPrefix}lora-bolditalic-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$lora-pathPrefix}lora-bolditalic-webfont.woff') format('woff'),
+ url('#{$lora-pathPrefix}lora-bolditalic-webfont.ttf') format('truetype');
+ font-weight: 700;
+ font-style: italic;
+ }
+ }
+}
+
+
+
+
+
+
+@mixin font-lora ($italic: false, $extralight: false, $light: false, $regular: true, $medium: false, $bold: false, $black: false) {
+ @if $regular {
+ @include font-lora-regular($italic);
+ }
+ @if $bold {
+ @include font-lora-bold($italic);
+ }
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/fonts/lora/lora-bold-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/lora/lora-bold-webfont.eot
new file mode 100755
index 0000000000..bfd15013c4
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lora/lora-bold-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lora/lora-bold-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/lora/lora-bold-webfont.ttf
new file mode 100755
index 0000000000..1785809e73
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lora/lora-bold-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lora/lora-bold-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/lora/lora-bold-webfont.woff
new file mode 100755
index 0000000000..d09efc35bb
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lora/lora-bold-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lora/lora-bolditalic-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/lora/lora-bolditalic-webfont.eot
new file mode 100755
index 0000000000..507a689c63
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lora/lora-bolditalic-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lora/lora-bolditalic-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/lora/lora-bolditalic-webfont.ttf
new file mode 100755
index 0000000000..19e1459eb0
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lora/lora-bolditalic-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lora/lora-bolditalic-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/lora/lora-bolditalic-webfont.woff
new file mode 100755
index 0000000000..848e03d916
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lora/lora-bolditalic-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lora/lora-italic-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/lora/lora-italic-webfont.eot
new file mode 100755
index 0000000000..f966a9fcf9
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lora/lora-italic-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lora/lora-italic-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/lora/lora-italic-webfont.ttf
new file mode 100755
index 0000000000..aa0bd01b58
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lora/lora-italic-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lora/lora-italic-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/lora/lora-italic-webfont.woff
new file mode 100755
index 0000000000..2cfc2df1d7
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lora/lora-italic-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lora/lora-regular-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/lora/lora-regular-webfont.eot
new file mode 100755
index 0000000000..8c218880c8
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lora/lora-regular-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lora/lora-regular-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/lora/lora-regular-webfont.ttf
new file mode 100755
index 0000000000..908f2e34f4
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lora/lora-regular-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/lora/lora-regular-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/lora/lora-regular-webfont.woff
new file mode 100755
index 0000000000..2b15bf776e
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/lora/lora-regular-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Bold-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Bold-webfont.eot
new file mode 100644
index 0000000000..5d20d91633
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Bold-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Bold-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Bold-webfont.ttf
new file mode 100644
index 0000000000..2109c958e3
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Bold-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Bold-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Bold-webfont.woff
new file mode 100644
index 0000000000..1205787b0e
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Bold-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-BoldItalic-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-BoldItalic-webfont.eot
new file mode 100644
index 0000000000..1f639a15ff
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-BoldItalic-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-BoldItalic-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-BoldItalic-webfont.ttf
new file mode 100644
index 0000000000..242d6b25c3
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-BoldItalic-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-BoldItalic-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-BoldItalic-webfont.woff
new file mode 100644
index 0000000000..ed760c0628
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-BoldItalic-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-ExtraBold-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-ExtraBold-webfont.eot
new file mode 100644
index 0000000000..1e29ad5954
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-ExtraBold-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-ExtraBold-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-ExtraBold-webfont.ttf
new file mode 100644
index 0000000000..6b9118ee35
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-ExtraBold-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-ExtraBold-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-ExtraBold-webfont.woff
new file mode 100644
index 0000000000..a7b99d2552
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-ExtraBold-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-ExtraBoldItalic-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-ExtraBoldItalic-webfont.eot
new file mode 100644
index 0000000000..77184af422
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-ExtraBoldItalic-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-ExtraBoldItalic-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-ExtraBoldItalic-webfont.ttf
new file mode 100644
index 0000000000..26a07e9392
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-ExtraBoldItalic-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-ExtraBoldItalic-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-ExtraBoldItalic-webfont.woff
new file mode 100644
index 0000000000..45395d1bbe
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-ExtraBoldItalic-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Italic-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Italic-webfont.eot
new file mode 100644
index 0000000000..0c8a0ae06e
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Italic-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Italic-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Italic-webfont.ttf
new file mode 100644
index 0000000000..12d25d9a73
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Italic-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Italic-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Italic-webfont.woff
new file mode 100644
index 0000000000..ff652e6435
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Italic-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Light-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Light-webfont.eot
new file mode 100644
index 0000000000..14868406aa
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Light-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Light-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Light-webfont.ttf
new file mode 100644
index 0000000000..63af664cde
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Light-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Light-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Light-webfont.woff
new file mode 100644
index 0000000000..e786074813
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Light-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-LightItalic-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-LightItalic-webfont.eot
new file mode 100644
index 0000000000..8f445929ff
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-LightItalic-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-LightItalic-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-LightItalic-webfont.ttf
new file mode 100644
index 0000000000..01dda2858a
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-LightItalic-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-LightItalic-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-LightItalic-webfont.woff
new file mode 100644
index 0000000000..43e8b9e6cc
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-LightItalic-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Regular-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Regular-webfont.eot
new file mode 100644
index 0000000000..6bbc3cf58c
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Regular-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Regular-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Regular-webfont.ttf
new file mode 100644
index 0000000000..c537f8382a
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Regular-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Regular-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Regular-webfont.woff
new file mode 100644
index 0000000000..e231183dce
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Regular-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Semibold-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Semibold-webfont.eot
new file mode 100644
index 0000000000..d8375dd0ab
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Semibold-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Semibold-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Semibold-webfont.ttf
new file mode 100644
index 0000000000..b3290843a7
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Semibold-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Semibold-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Semibold-webfont.woff
new file mode 100644
index 0000000000..28d6adee03
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-Semibold-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-SemiboldItalic-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-SemiboldItalic-webfont.eot
new file mode 100644
index 0000000000..0ab1db22e6
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-SemiboldItalic-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-SemiboldItalic-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-SemiboldItalic-webfont.ttf
new file mode 100644
index 0000000000..d2d6318f66
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-SemiboldItalic-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-SemiboldItalic-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-SemiboldItalic-webfont.woff
new file mode 100644
index 0000000000..d4dfca402e
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/OpenSans-SemiboldItalic-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/open-sans/_open-sans.scss b/WebContent/VAADIN/themes/valo/fonts/open-sans/_open-sans.scss
new file mode 100644
index 0000000000..ca5851a99d
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/open-sans/_open-sans.scss
@@ -0,0 +1,155 @@
+$open-sans-pathPrefix: null;
+
+@if $v-relative-paths == false {
+ $open-sans-pathPrefix: "../valo/fonts/open-sans/";
+}
+
+@mixin font-open-sans-book ($italic: true) {
+ @font-face {
+ font-family: 'Open Sans';
+ src: url('#{$open-sans-pathPrefix}OpenSans-Regular-webfont.eot');
+ src: url('#{$open-sans-pathPrefix}OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$open-sans-pathPrefix}OpenSans-Regular-webfont.woff') format('woff'),
+ url('#{$open-sans-pathPrefix}OpenSans-Regular-webfont.ttf') format('truetype');
+ font-weight: 400;
+ font-style: normal;
+ }
+ @if $italic {
+ @font-face {
+ font-family: 'Open Sans';
+ src: url('#{$open-sans-pathPrefix}OpenSans-Italic-webfont.eot');
+ src: url('#{$open-sans-pathPrefix}OpenSans-Italic-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$open-sans-pathPrefix}OpenSans-Italic-webfont.woff') format('woff'),
+ url('#{$open-sans-pathPrefix}OpenSans-Italic-webfont.ttf') format('truetype');
+ font-weight: 400;
+ font-style: italic;
+ }
+ }
+}
+
+
+
+
+@mixin font-open-sans-light ($italic: true) {
+ @font-face {
+ font-family: 'Open Sans';
+ src: url('#{$open-sans-pathPrefix}OpenSans-Light-webfont.eot');
+ src: url('#{$open-sans-pathPrefix}OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$open-sans-pathPrefix}OpenSans-Light-webfont.woff') format('woff'),
+ url('#{$open-sans-pathPrefix}OpenSans-Light-webfont.ttf') format('truetype');
+ font-weight: 300;
+ font-style: normal;
+ }
+ @if $italic {
+ @font-face {
+ font-family: 'Open Sans';
+ src: url('#{$open-sans-pathPrefix}OpenSans-LightItalic-webfont.eot');
+ src: url('#{$open-sans-pathPrefix}OpenSans-LightItalic-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$open-sans-pathPrefix}OpenSans-LightItalic-webfont.woff') format('woff'),
+ url('#{$open-sans-pathPrefix}OpenSans-LightItalic-webfont.ttf') format('truetype');
+ font-weight: 300;
+ font-style: italic;
+ }
+ }
+}
+
+
+
+
+
+@mixin font-open-sans-semibold ($italic: true) {
+ @font-face {
+ font-family: 'Open Sans';
+ src: url('#{$open-sans-pathPrefix}OpenSans-Semibold-webfont.eot');
+ src: url('#{$open-sans-pathPrefix}OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$open-sans-pathPrefix}OpenSans-Semibold-webfont.woff') format('woff'),
+ url('#{$open-sans-pathPrefix}OpenSans-Semibold-webfont.ttf') format('truetype');
+ font-weight: 600;
+ font-style: normal;
+ }
+ @if $italic {
+ @font-face {
+ font-family: 'Open Sans';
+ src: url('#{$open-sans-pathPrefix}OpenSans-SemiboldItalic-webfont.eot');
+ src: url('#{$open-sans-pathPrefix}OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$open-sans-pathPrefix}OpenSans-SemiboldItalic-webfont.woff') format('woff'),
+ url('#{$open-sans-pathPrefix}OpenSans-SemiboldItalic-webfont.ttf') format('truetype');
+ font-weight: 600;
+ font-style: italic;
+ }
+ }
+}
+
+
+
+@mixin font-open-sans-bold ($italic: true) {
+ @font-face {
+ font-family: 'Open Sans';
+ src: url('#{$open-sans-pathPrefix}OpenSans-Bold-webfont.eot');
+ src: url('#{$open-sans-pathPrefix}OpenSans-Bold-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$open-sans-pathPrefix}OpenSans-Bold-webfont.woff') format('woff'),
+ url('#{$open-sans-pathPrefix}OpenSans-Bold-webfont.ttf') format('truetype');
+ font-weight: 700;
+ font-style: normal;
+ }
+ @if $italic {
+ @font-face {
+ font-family: 'Open Sans';
+ src: url('#{$open-sans-pathPrefix}OpenSans-BoldItalic-webfont.eot');
+ src: url('#{$open-sans-pathPrefix}OpenSans-BoldItalic-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$open-sans-pathPrefix}OpenSans-BoldItalic-webfont.woff') format('woff'),
+ url('#{$open-sans-pathPrefix}OpenSans-BoldItalic-webfont.ttf') format('truetype');
+ font-weight: 700;
+ font-style: italic;
+ }
+ }
+}
+
+
+
+
+
+@mixin font-open-sans-extrabold ($italic) {
+ @font-face {
+ font-family: 'Open Sans';
+ src: url('#{$open-sans-pathPrefix}OpenSans-ExtraBold-webfont.eot');
+ src: url('#{$open-sans-pathPrefix}OpenSans-ExtraBold-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$open-sans-pathPrefix}OpenSans-ExtraBold-webfont.woff') format('woff'),
+ url('#{$open-sans-pathPrefix}OpenSans-ExtraBold-webfont.ttf') format('truetype');
+ font-weight: 900;
+ font-style: normal;
+ }
+ @if $italic {
+ @font-face {
+ font-family: 'Open Sans';
+ src: url('#{$open-sans-pathPrefix}OpenSans-ExtraBoldItalic-webfont.eot');
+ src: url('#{$open-sans-pathPrefix}OpenSans-ExtraBoldItalic-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$open-sans-pathPrefix}OpenSans-ExtraBoldItalic-webfont.woff') format('woff'),
+ url('#{$open-sans-pathPrefix}OpenSans-ExtraBoldItalic-webfont.ttf') format('truetype');
+ font-weight: 900;
+ font-style: italic;
+ }
+ }
+}
+
+
+
+
+
+@mixin font-open-sans ($italic: false, $light: false, $regular: true, $medium: false, $bold: false, $black: false) {
+ @if $light {
+ @include font-open-sans-light($italic);
+ }
+ @if $regular {
+ @include font-open-sans-book($italic);
+ }
+ @if $medium {
+ @include font-open-sans-semibold($italic);
+ }
+ @if $bold {
+ @include font-open-sans-bold($italic);
+ }
+ @if $black {
+ @include font-open-sans-extrabold($italic);
+ }
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Black-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Black-webfont.eot
new file mode 100755
index 0000000000..fa326d1d12
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Black-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Black-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Black-webfont.ttf
new file mode 100755
index 0000000000..3c3b2b8ae6
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Black-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Black-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Black-webfont.woff
new file mode 100755
index 0000000000..0229086571
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Black-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-BlackItalic-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-BlackItalic-webfont.eot
new file mode 100755
index 0000000000..a2aebfb7da
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-BlackItalic-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-BlackItalic-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-BlackItalic-webfont.ttf
new file mode 100755
index 0000000000..2020dcbc9c
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-BlackItalic-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-BlackItalic-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-BlackItalic-webfont.woff
new file mode 100755
index 0000000000..1875c0b950
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-BlackItalic-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Bold-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Bold-webfont.eot
new file mode 100755
index 0000000000..b73776ee3b
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Bold-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Bold-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Bold-webfont.ttf
new file mode 100755
index 0000000000..1da72769a8
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Bold-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Bold-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Bold-webfont.woff
new file mode 100755
index 0000000000..0c6994871e
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Bold-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-BoldItalic-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-BoldItalic-webfont.eot
new file mode 100755
index 0000000000..b803ec1687
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-BoldItalic-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-BoldItalic-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-BoldItalic-webfont.ttf
new file mode 100755
index 0000000000..78bab05c8c
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-BoldItalic-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-BoldItalic-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-BoldItalic-webfont.woff
new file mode 100755
index 0000000000..99de61af52
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-BoldItalic-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Italic-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Italic-webfont.eot
new file mode 100755
index 0000000000..b708f047ff
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Italic-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Italic-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Italic-webfont.ttf
new file mode 100755
index 0000000000..ae258e8416
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Italic-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Italic-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Italic-webfont.woff
new file mode 100755
index 0000000000..dd74244382
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Italic-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Light-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Light-webfont.eot
new file mode 100755
index 0000000000..072cdc480c
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Light-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Light-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Light-webfont.ttf
new file mode 100755
index 0000000000..3b2fea0ace
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Light-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Light-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Light-webfont.woff
new file mode 100755
index 0000000000..cc534a3815
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Light-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-LightItalic-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-LightItalic-webfont.eot
new file mode 100755
index 0000000000..77396a1ff9
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-LightItalic-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-LightItalic-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-LightItalic-webfont.ttf
new file mode 100755
index 0000000000..b9b38118a3
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-LightItalic-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-LightItalic-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-LightItalic-webfont.woff
new file mode 100755
index 0000000000..3071ff4f23
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-LightItalic-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Medium-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Medium-webfont.eot
new file mode 100755
index 0000000000..f9ad99566d
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Medium-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Medium-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Medium-webfont.ttf
new file mode 100755
index 0000000000..8aa64d8232
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Medium-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Medium-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Medium-webfont.woff
new file mode 100755
index 0000000000..cd810ef929
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Medium-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-MediumItalic-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-MediumItalic-webfont.eot
new file mode 100755
index 0000000000..a03fe4b248
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-MediumItalic-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-MediumItalic-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-MediumItalic-webfont.ttf
new file mode 100755
index 0000000000..6439927f16
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-MediumItalic-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-MediumItalic-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-MediumItalic-webfont.woff
new file mode 100755
index 0000000000..69a1458011
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-MediumItalic-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Regular-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Regular-webfont.eot
new file mode 100755
index 0000000000..9b5e8e4138
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Regular-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Regular-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Regular-webfont.ttf
new file mode 100755
index 0000000000..44dd78d5e1
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Regular-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Regular-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Regular-webfont.woff
new file mode 100755
index 0000000000..bfa05d53f4
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Regular-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Thin-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Thin-webfont.eot
new file mode 100755
index 0000000000..2284a3b3ef
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Thin-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Thin-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Thin-webfont.ttf
new file mode 100755
index 0000000000..18919f7a96
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Thin-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Thin-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Thin-webfont.woff
new file mode 100755
index 0000000000..f10b831e85
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-Thin-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-ThinItalic-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-ThinItalic-webfont.eot
new file mode 100755
index 0000000000..e6291f2657
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-ThinItalic-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-ThinItalic-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-ThinItalic-webfont.ttf
new file mode 100755
index 0000000000..a4e7ae08e0
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-ThinItalic-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-ThinItalic-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-ThinItalic-webfont.woff
new file mode 100755
index 0000000000..9ef17a8681
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/Roboto-ThinItalic-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Bold-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Bold-webfont.eot
new file mode 100755
index 0000000000..bbc67d825b
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Bold-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Bold-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Bold-webfont.ttf
new file mode 100755
index 0000000000..87256d3a34
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Bold-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Bold-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Bold-webfont.woff
new file mode 100755
index 0000000000..235c963d69
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Bold-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-BoldItalic-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-BoldItalic-webfont.eot
new file mode 100755
index 0000000000..5a95d1a144
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-BoldItalic-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-BoldItalic-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-BoldItalic-webfont.ttf
new file mode 100755
index 0000000000..059feb39c5
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-BoldItalic-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-BoldItalic-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-BoldItalic-webfont.woff
new file mode 100755
index 0000000000..df69b95291
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-BoldItalic-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Italic-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Italic-webfont.eot
new file mode 100755
index 0000000000..985364ffed
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Italic-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Italic-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Italic-webfont.ttf
new file mode 100755
index 0000000000..d804301e70
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Italic-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Italic-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Italic-webfont.woff
new file mode 100755
index 0000000000..67804e1e4d
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Italic-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Light-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Light-webfont.eot
new file mode 100755
index 0000000000..d492665160
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Light-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Light-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Light-webfont.ttf
new file mode 100755
index 0000000000..321c450f22
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Light-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Light-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Light-webfont.woff
new file mode 100755
index 0000000000..c414478ca5
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Light-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-LightItalic-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-LightItalic-webfont.eot
new file mode 100755
index 0000000000..c169648374
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-LightItalic-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-LightItalic-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-LightItalic-webfont.ttf
new file mode 100755
index 0000000000..905604d021
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-LightItalic-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-LightItalic-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-LightItalic-webfont.woff
new file mode 100755
index 0000000000..5536e16c5d
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-LightItalic-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Regular-webfont.eot b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Regular-webfont.eot
new file mode 100755
index 0000000000..5710fe6ead
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Regular-webfont.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Regular-webfont.ttf b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Regular-webfont.ttf
new file mode 100755
index 0000000000..be9f6f8ab9
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Regular-webfont.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Regular-webfont.woff b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Regular-webfont.woff
new file mode 100755
index 0000000000..ec28f95c87
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/RobotoCondensed-Regular-webfont.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/roboto/_roboto.scss b/WebContent/VAADIN/themes/valo/fonts/roboto/_roboto.scss
new file mode 100644
index 0000000000..ddc6b4f5a7
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/roboto/_roboto.scss
@@ -0,0 +1,155 @@
+$roboto-pathPrefix: null;
+
+@if $v-relative-paths == false {
+ $roboto-pathPrefix: "../valo/fonts/roboto/";
+}
+
+@mixin font-roboto-regular ($italic: true) {
+ @font-face {
+ font-family: 'Roboto';
+ src: url('#{$roboto-pathPrefix}Roboto-Regular-webfont.eot');
+ src: url('#{$roboto-pathPrefix}Roboto-Regular-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$roboto-pathPrefix}Roboto-Regular-webfont.woff') format('woff'),
+ url('#{$roboto-pathPrefix}Roboto-Regular-webfont.ttf') format('truetype');
+ font-weight: 400;
+ font-style: normal;
+ }
+ @if $italic {
+ @font-face {
+ font-family: 'Roboto';
+ src: url('#{$roboto-pathPrefix}Roboto-Italic-webfont.eot');
+ src: url('#{$roboto-pathPrefix}Roboto-Italic-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$roboto-pathPrefix}Roboto-Italic-webfont.woff') format('woff'),
+ url('#{$roboto-pathPrefix}Roboto-Italic-webfont.ttf') format('truetype');
+ font-weight: 400;
+ font-style: italic;
+ }
+ }
+}
+
+
+
+
+@mixin font-roboto-thin ($italic: true) {
+ @font-face {
+ font-family: 'Roboto';
+ src: url('#{$roboto-pathPrefix}Roboto-Thin-webfont.eot');
+ src: url('#{$roboto-pathPrefix}Roboto-Thin-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$roboto-pathPrefix}Roboto-Thin-webfont.woff') format('woff'),
+ url('#{$roboto-pathPrefix}Roboto-Thin-webfont.ttf') format('truetype');
+ font-weight: 300;
+ font-style: normal;
+ }
+ @if $italic {
+ @font-face {
+ font-family: 'Roboto';
+ src: url('#{$roboto-pathPrefix}Roboto-ThinItalic-webfont.eot');
+ src: url('#{$roboto-pathPrefix}Roboto-ThinItalic-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$roboto-pathPrefix}Roboto-ThinItalic-webfont.woff') format('woff'),
+ url('#{$roboto-pathPrefix}Roboto-ThinItalic-webfont.ttf') format('truetype');
+ font-weight: 300;
+ font-style: italic;
+ }
+ }
+}
+
+
+
+
+
+@mixin font-roboto-medium ($italic: true) {
+ @font-face {
+ font-family: 'Roboto';
+ src: url('#{$roboto-pathPrefix}Roboto-Medium-webfont.eot');
+ src: url('#{$roboto-pathPrefix}Roboto-Medium-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$roboto-pathPrefix}Roboto-Medium-webfont.woff') format('woff'),
+ url('#{$roboto-pathPrefix}Roboto-Medium-webfont.ttf') format('truetype');
+ font-weight: 600;
+ font-style: normal;
+ }
+ @if $italic {
+ @font-face {
+ font-family: 'Roboto';
+ src: url('#{$roboto-pathPrefix}Roboto-MediumItalic-webfont.eot');
+ src: url('#{$roboto-pathPrefix}Roboto-MediumItalic-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$roboto-pathPrefix}Roboto-MediumItalic-webfont.woff') format('woff'),
+ url('#{$roboto-pathPrefix}Roboto-MediumItalic-webfont.ttf') format('truetype');
+ font-weight: 600;
+ font-style: italic;
+ }
+ }
+}
+
+
+
+@mixin font-roboto-bold ($italic: true) {
+ @font-face {
+ font-family: 'Roboto';
+ src: url('#{$roboto-pathPrefix}Roboto-Bold-webfont.eot');
+ src: url('#{$roboto-pathPrefix}Roboto-Bold-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$roboto-pathPrefix}Roboto-Bold-webfont.woff') format('woff'),
+ url('#{$roboto-pathPrefix}Roboto-Bold-webfont.ttf') format('truetype');
+ font-weight: 700;
+ font-style: normal;
+ }
+ @if $italic {
+ @font-face {
+ font-family: 'Roboto';
+ src: url('#{$roboto-pathPrefix}Roboto-BoldItalic-webfont.eot');
+ src: url('#{$roboto-pathPrefix}Roboto-BoldItalic-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$roboto-pathPrefix}Roboto-BoldItalic-webfont.woff') format('woff'),
+ url('#{$roboto-pathPrefix}Roboto-BoldItalic-webfont.ttf') format('truetype');
+ font-weight: 700;
+ font-style: italic;
+ }
+ }
+}
+
+
+
+
+
+@mixin font-roboto-black ($italic) {
+ @font-face {
+ font-family: 'Roboto';
+ src: url('#{$roboto-pathPrefix}Roboto-Black-webfont.eot');
+ src: url('#{$roboto-pathPrefix}Roboto-Black-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$roboto-pathPrefix}Roboto-Black-webfont.woff') format('woff'),
+ url('#{$roboto-pathPrefix}Roboto-Black-webfont.ttf') format('truetype');
+ font-weight: 900;
+ font-style: normal;
+ }
+ @if $italic {
+ @font-face {
+ font-family: 'Roboto';
+ src: url('#{$roboto-pathPrefix}Roboto-BlackItalic-webfont.eot');
+ src: url('#{$roboto-pathPrefix}Roboto-BlackItalic-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$roboto-pathPrefix}Roboto-BlackItalic-webfont.woff') format('woff'),
+ url('#{$roboto-pathPrefix}Roboto-BlackItalic-webfont.ttf') format('truetype');
+ font-weight: 900;
+ font-style: italic;
+ }
+ }
+}
+
+
+
+
+
+@mixin font-roboto ($italic: false, $light: false, $regular: true, $medium: false, $bold: false, $black: false) {
+ @if $light {
+ @include font-roboto-thin($italic);
+ }
+ @if $regular {
+ @include font-roboto-regular($italic);
+ }
+ @if $medium {
+ @include font-roboto-medium($italic);
+ }
+ @if $bold {
+ @include font-roboto-bold($italic);
+ }
+ @if $black {
+ @include font-roboto-black($italic);
+ }
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/_source-sans-pro.scss b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/_source-sans-pro.scss
new file mode 100644
index 0000000000..f324e8f1fb
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/_source-sans-pro.scss
@@ -0,0 +1,184 @@
+$source-sans-pro-pathPrefix: null;
+
+@if $v-relative-paths == false {
+ $source-sans-pro-pathPrefix: "../valo/fonts/source-sans-pro/";
+}
+
+@mixin font-source-sans-pro-regular ($italic: true) {
+ @font-face {
+ font-family: "Source Sans Pro";
+ src: url('#{$source-sans-pro-pathPrefix}sourcesanspro-regular.eot');
+ src: url('#{$source-sans-pro-pathPrefix}sourcesanspro-regular.eot?#iefix') format('embedded-opentype'),
+ url('#{$source-sans-pro-pathPrefix}sourcesanspro-regular.woff') format('woff'),
+ url('#{$source-sans-pro-pathPrefix}sourcesanspro-regular.ttf') format('truetype');
+ font-weight: 400;
+ font-style: normal;
+ }
+ @if $italic {
+ @font-face {
+ font-family: "Source Sans Pro";
+ src: url('#{$source-sans-pro-pathPrefix}sourcesanspro-it.eot');
+ src: url('#{$source-sans-pro-pathPrefix}sourcesanspro-it.eot?#iefix') format('embedded-opentype'),
+ url('#{$source-sans-pro-pathPrefix}sourcesanspro-it.woff') format('woff'),
+ url('#{$source-sans-pro-pathPrefix}sourcesanspro-it.ttf') format('truetype');
+ font-weight: 400;
+ font-style: italic;
+ }
+ }
+}
+
+
+
+
+@mixin font-source-sans-pro-extralight ($italic: true) {
+ @font-face {
+ font-family: "Source Sans Pro";
+ src: url('#{$source-sans-pro-pathPrefix}sourcesanspro-extralight.eot');
+ src: url('#{$source-sans-pro-pathPrefix}sourcesanspro-extralight.eot?#iefix') format('embedded-opentype'),
+ url('#{$source-sans-pro-pathPrefix}sourcesanspro-extralight.woff') format('woff'),
+ url('#{$source-sans-pro-pathPrefix}sourcesanspro-extralight.ttf') format('truetype');
+ font-weight: 300;
+ font-style: normal;
+ }
+ @if $italic {
+ @font-face {
+ font-family: "Source Sans Pro";
+ src: url('#{$source-sans-pro-pathPrefix}sourcesanspro-extralightit.eot');
+ src: url('#{$source-sans-pro-pathPrefix}sourcesanspro-extralightit.eot?#iefix') format('embedded-opentype'),
+ url('#{$source-sans-pro-pathPrefix}sourcesanspro-extralightit.woff') format('woff'),
+ url('#{$source-sans-pro-pathPrefix}sourcesanspro-extralightit.ttf') format('truetype');
+ font-weight: 300;
+ font-style: italic;
+ }
+ }
+}
+
+
+
+
+@mixin font-source-sans-pro-light ($italic: true) {
+ @font-face {
+ font-family: "Source Sans Pro";
+ src: url('#{$source-sans-pro-pathPrefix}sourcesanspro-light.eot');
+ src: url('#{$source-sans-pro-pathPrefix}sourcesanspro-light.eot?#iefix') format('embedded-opentype'),
+ url('#{$source-sans-pro-pathPrefix}sourcesanspro-light.woff') format('woff'),
+ url('#{$source-sans-pro-pathPrefix}sourcesanspro-light.ttf') format('truetype');
+ font-weight: 300;
+ font-style: normal;
+ }
+ @if $italic {
+ @font-face {
+ font-family: "Source Sans Pro";
+ src: url('#{$source-sans-pro-pathPrefix}sourcesanspro-lightit.eot');
+ src: url('#{$source-sans-pro-pathPrefix}sourcesanspro-lightit.eot?#iefix') format('embedded-opentype'),
+ url('#{$source-sans-pro-pathPrefix}sourcesanspro-lightit.woff') format('woff'),
+ url('#{$source-sans-pro-pathPrefix}sourcesanspro-lightit.ttf') format('truetype');
+ font-weight: 300;
+ font-style: italic;
+ }
+ }
+}
+
+
+
+
+
+@mixin font-source-sans-pro-semibold ($italic: true) {
+ @font-face {
+ font-family: "Source Sans Pro";
+ src: url('#{$source-sans-pro-pathPrefix}sourcesanspro-semibold.eot');
+ src: url('#{$source-sans-pro-pathPrefix}sourcesanspro-semibold.eot?#iefix') format('embedded-opentype'),
+ url('#{$source-sans-pro-pathPrefix}sourcesanspro-semibold.woff') format('woff'),
+ url('#{$source-sans-pro-pathPrefix}sourcesanspro-semibold.ttf') format('truetype');
+ font-weight: 600;
+ font-style: normal;
+ }
+ @if $italic {
+ @font-face {
+ font-family: "Source Sans Pro";
+ src: url('#{$source-sans-pro-pathPrefix}sourcesanspro-semiboldit.eot');
+ src: url('#{$source-sans-pro-pathPrefix}sourcesanspro-semiboldit.eot?#iefix') format('embedded-opentype'),
+ url('#{$source-sans-pro-pathPrefix}sourcesanspro-semiboldit.woff') format('woff'),
+ url('#{$source-sans-pro-pathPrefix}sourcesanspro-semiboldit.ttf') format('truetype');
+ font-weight: 600;
+ font-style: italic;
+ }
+ }
+}
+
+
+
+@mixin font-source-sans-pro-bold ($italic: true) {
+ @font-face {
+ font-family: "Source Sans Pro";
+ src: url('#{$source-sans-pro-pathPrefix}sourcesanspro-bold.eot');
+ src: url('#{$source-sans-pro-pathPrefix}sourcesanspro-bold.eot?#iefix') format('embedded-opentype'),
+ url('#{$source-sans-pro-pathPrefix}sourcesanspro-bold.woff') format('woff'),
+ url('#{$source-sans-pro-pathPrefix}sourcesanspro-bold.ttf') format('truetype');
+ font-weight: 700;
+ font-style: normal;
+ }
+ @if $italic {
+ @font-face {
+ font-family: "Source Sans Pro";
+ src: url('#{$source-sans-pro-pathPrefix}sourcesanspro-boldit.eot');
+ src: url('#{$source-sans-pro-pathPrefix}sourcesanspro-boldit.eot?#iefix') format('embedded-opentype'),
+ url('#{$source-sans-pro-pathPrefix}sourcesanspro-boldit.woff') format('woff'),
+ url('#{$source-sans-pro-pathPrefix}sourcesanspro-boldit.ttf') format('truetype');
+ font-weight: 700;
+ font-style: italic;
+ }
+ }
+}
+
+
+
+
+
+@mixin font-source-sans-pro-black ($italic) {
+ @font-face {
+ font-family: "Source Sans Pro";
+ src: url('#{$source-sans-pro-pathPrefix}sourcesanspro-black.eot');
+ src: url('#{$source-sans-pro-pathPrefix}sourcesanspro-black.eot?#iefix') format('embedded-opentype'),
+ url('#{$source-sans-pro-pathPrefix}sourcesanspro-black.woff') format('woff'),
+ url('#{$source-sans-pro-pathPrefix}sourcesanspro-black.ttf') format('truetype');
+ font-weight: 900;
+ font-style: normal;
+ }
+ @if $italic {
+ @font-face {
+ font-family: "Source Sans Pro";
+ src: url('#{$source-sans-pro-pathPrefix}sourcesanspro-blackit.eot');
+ src: url('#{$source-sans-pro-pathPrefix}sourcesanspro-blackit.eot?#iefix') format('embedded-opentype'),
+ url('#{$source-sans-pro-pathPrefix}sourcesanspro-blackit.woff') format('woff'),
+ url('#{$source-sans-pro-pathPrefix}sourcesanspro-blackit.ttf') format('truetype');
+ font-weight: 900;
+ font-style: italic;
+ }
+ }
+}
+
+
+
+
+
+@mixin font-source-sans-pro ($italic: false, $extralight: false, $light: false, $regular: true, $medium: false, $bold: false, $black: false) {
+ @if $extralight {
+ @include font-source-sans-pro-extralight($italic);
+ }
+ @if $light {
+ @include font-source-sans-pro-light($italic);
+ }
+ @if $regular {
+ @include font-source-sans-pro-regular($italic);
+ }
+ @if $medium {
+ @include font-source-sans-pro-semibold($italic);
+ }
+ @if $bold {
+ @include font-source-sans-pro-bold($italic);
+ }
+ @if $black {
+ @include font-source-sans-pro-black($italic);
+ }
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-black.eot b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-black.eot
new file mode 100644
index 0000000000..52d89ee8c2
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-black.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-black.ttf b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-black.ttf
new file mode 100644
index 0000000000..0d727c31f0
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-black.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-black.woff b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-black.woff
new file mode 100644
index 0000000000..2c80d40f53
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-black.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-blackit.eot b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-blackit.eot
new file mode 100644
index 0000000000..a6e65ae2c2
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-blackit.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-blackit.ttf b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-blackit.ttf
new file mode 100644
index 0000000000..d40b74c1a6
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-blackit.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-blackit.woff b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-blackit.woff
new file mode 100644
index 0000000000..e48d2d80cb
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-blackit.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-bold.eot b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-bold.eot
new file mode 100644
index 0000000000..b255c35b76
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-bold.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-bold.ttf b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-bold.ttf
new file mode 100644
index 0000000000..47468b5140
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-bold.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-bold.woff b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-bold.woff
new file mode 100644
index 0000000000..454b77ff0d
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-bold.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-boldit.eot b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-boldit.eot
new file mode 100644
index 0000000000..a5565ddebb
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-boldit.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-boldit.ttf b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-boldit.ttf
new file mode 100644
index 0000000000..2fb6404d6e
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-boldit.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-boldit.woff b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-boldit.woff
new file mode 100644
index 0000000000..57bd10d301
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-boldit.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-extralight.eot b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-extralight.eot
new file mode 100644
index 0000000000..2c588f017a
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-extralight.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-extralight.ttf b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-extralight.ttf
new file mode 100644
index 0000000000..e4d3b9245b
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-extralight.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-extralight.woff b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-extralight.woff
new file mode 100644
index 0000000000..709eae0398
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-extralight.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-extralightit.eot b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-extralightit.eot
new file mode 100644
index 0000000000..0fe99615a2
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-extralightit.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-extralightit.ttf b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-extralightit.ttf
new file mode 100644
index 0000000000..314d9b1226
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-extralightit.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-extralightit.woff b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-extralightit.woff
new file mode 100644
index 0000000000..14038f36eb
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-extralightit.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-it.eot b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-it.eot
new file mode 100644
index 0000000000..989e7dd271
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-it.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-it.ttf b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-it.ttf
new file mode 100644
index 0000000000..076a656119
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-it.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-it.woff b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-it.woff
new file mode 100644
index 0000000000..94a41380e2
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-it.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-light.eot b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-light.eot
new file mode 100644
index 0000000000..5618f2748d
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-light.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-light.ttf b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-light.ttf
new file mode 100644
index 0000000000..483301619e
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-light.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-light.woff b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-light.woff
new file mode 100644
index 0000000000..f9f0aa1198
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-light.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-lightit.eot b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-lightit.eot
new file mode 100644
index 0000000000..3cce3f54df
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-lightit.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-lightit.ttf b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-lightit.ttf
new file mode 100644
index 0000000000..fb2f58f981
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-lightit.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-lightit.woff b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-lightit.woff
new file mode 100644
index 0000000000..d8ea82bae2
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-lightit.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-regular.eot b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-regular.eot
new file mode 100644
index 0000000000..4968aa134a
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-regular.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-regular.ttf b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-regular.ttf
new file mode 100644
index 0000000000..3939d7019d
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-regular.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-regular.woff b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-regular.woff
new file mode 100644
index 0000000000..5b3283af6a
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-regular.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-semibold.eot b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-semibold.eot
new file mode 100644
index 0000000000..7d8014869c
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-semibold.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-semibold.ttf b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-semibold.ttf
new file mode 100644
index 0000000000..b108896526
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-semibold.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-semibold.woff b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-semibold.woff
new file mode 100644
index 0000000000..a138eb3076
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-semibold.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-semiboldit.eot b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-semiboldit.eot
new file mode 100644
index 0000000000..53093c24c4
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-semiboldit.eot
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-semiboldit.ttf b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-semiboldit.ttf
new file mode 100644
index 0000000000..dc5c032c73
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-semiboldit.ttf
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-semiboldit.woff b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-semiboldit.woff
new file mode 100644
index 0000000000..e7a09d7141
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/fonts/source-sans-pro/sourcesanspro-semiboldit.woff
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/optional/_common-stylenames.scss b/WebContent/VAADIN/themes/valo/optional/_common-stylenames.scss
new file mode 100644
index 0000000000..67a9104482
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/optional/_common-stylenames.scss
@@ -0,0 +1,156 @@
+// Common styles for components
+// About 40KB of CSS output
+
+@mixin v-valo-common-stylenames {
+
+ $v-scaling-factor--small: 0.8 !default;
+ $v-scaling-factor--large: 1.2 !default;
+
+ $v-unit-size--small: ceil($v-unit-size * $v-scaling-factor--small);
+ $v-unit-size--large: ceil($v-unit-size * $v-scaling-factor--large);
+
+ $v-font-size--small: ceil($v-font-size * $v-scaling-factor--small);
+ $v-font-size--large: ceil($v-font-size * $v-scaling-factor--large);
+
+
+ .v-button-primary {
+ @include v-valo-button-style($background-color: v-valo-selection-color());
+ padding: 0 round($v-unit-size/1.4);
+ font-weight: bold;
+ }
+
+ .v-button-friendly {
+ @include v-valo-button-style($background-color: #2c9720);
+ }
+
+ .v-button-danger {
+ @include v-valo-button-style($background-color: $v-error-indicator-color);
+ }
+
+ .v-button-borderless {
+ @include v-valo-button-borderless-style;
+ }
+
+ .v-button-link {
+ @include v-valo-button-borderless-style;
+ @include v-valo-link-style;
+ }
+
+ .v-button-small {
+ @include v-valo-button-style($unit-size: $v-unit-size--small);
+ font-size: $v-font-size--small;
+ }
+
+ .v-button-large {
+ @include v-valo-button-style($unit-size: $v-unit-size--large);
+ font-size: $v-font-size--large;
+ }
+
+ .v-button-icon-align-right {
+ @include v-valo-button-icon-align-right-style;
+ }
+
+ .v-tabsheet-centered-tabs {
+ @include v-valo-tabsheet-centered-tabs;
+ }
+
+ .v-tabsheet-equal-width-tabs {
+ @include v-valo-tabsheet-equal-width-tabs($flex: false);
+ }
+
+ .v-tabsheet-icons-on-top {
+ @include v-valo-tabsheet-icons-on-top;
+ }
+
+ .v-panel-borderless {
+ @include v-valo-panel-borderless-style;
+ }
+
+ .v-formlayout.light {
+ @include v-valo-formlayout-light-style;
+ }
+
+ .v-textfield-borderless,
+ .v-textarea-borderless {
+ @include v-valo-textfield-borderless-style;
+ }
+
+ .v-textfield-small {
+ @include v-valo-textfield-style($unit-size: $v-unit-size--small);
+ font-size: $v-font-size--small;
+ }
+
+ .v-textfield-large {
+ @include v-valo-textfield-style($unit-size: $v-unit-size--large);
+ font-size: $v-font-size--large;
+ }
+
+ @include v-valo-textfield-inline-icon($stylename: inline-icon);
+
+ .v-textarea-small {
+ @include v-valo-textarea-style($unit-size: $v-unit-size--small);
+ font-size: $v-font-size--small;
+ }
+
+ .v-textarea-large {
+ @include v-valo-textarea-style($unit-size: $v-unit-size--large);
+ font-size: $v-font-size--large;
+ }
+
+ .v-filterselect-small {
+ @include v-valo-combobox-style($unit-size: $v-unit-size--small);
+ font-size: $v-font-size--small;
+ }
+
+ .v-filterselect-large {
+ @include v-valo-combobox-style($unit-size: $v-unit-size--large);
+ font-size: $v-font-size--large;
+ }
+
+ .v-datefield-small {
+ @include v-valo-datefield-style($unit-size: $v-unit-size--small);
+ }
+
+ .v-datefield-large {
+ @include v-valo-datefield-style($unit-size: $v-unit-size--large);
+ }
+
+ .v-checkbox-small {
+ @include v-valo-checkbox-style($unit-size: $v-unit-size--small);
+ }
+
+ .v-checkbox-large {
+ @include v-valo-checkbox-style($unit-size: $v-unit-size--large);
+ }
+
+ .v-label-spinner {
+ @include v-valo-spinner;
+ }
+
+ .v-panel-well {
+ @include v-valo-panel-well-style;
+ }
+
+ .v-panel-borderless {
+ @include v-valo-panel-borderless-style;
+ }
+
+ .v-csslayout-well {
+ @include v-valo-panel-well-style;
+ @include v-valo-panel-adjust-content-margins;
+ }
+
+ .v-csslayout-card {
+ @include v-valo-panel-style;
+ @include v-valo-panel-adjust-content-margins;
+ }
+
+ @include v-valo-splitpanel-small($stylename: small);
+
+ @include v-valo-component-group;
+
+ .wrapping {
+ @include v-valo-horizontallayout--wrapping;
+ }
+
+}
diff --git a/WebContent/VAADIN/themes/valo/shared/_contextmenu.scss b/WebContent/VAADIN/themes/valo/shared/_contextmenu.scss
new file mode 100644
index 0000000000..7ace0ddb6c
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/shared/_contextmenu.scss
@@ -0,0 +1,15 @@
+@mixin v-valo-contextmenu {
+
+ .v-contextmenu {
+ @include v-valo-selection-overlay-style;
+ }
+
+ .v-contextmenu .gwt-MenuItem {
+ @include v-valo-selection-item-style;
+ }
+
+ .v-contextmenu .gwt-MenuItem-selected {
+ @include v-valo-selection-item-selected-style;
+ }
+
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/shared/_global.scss b/WebContent/VAADIN/themes/valo/shared/_global.scss
new file mode 100644
index 0000000000..f3de32acdd
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/shared/_global.scss
@@ -0,0 +1,361 @@
+@import "loading-indicator";
+@import "contextmenu";
+@import "overlay";
+@import "notification";
+@import "tooltip";
+
+
+// Include global styles only once
+$v-valo-global-included: false !default;
+@mixin v-valo-global {
+ @if $v-valo-global-included == false {
+
+ // Core widget styles come before any other component (and are always included),
+ // so that it has the least specificity
+ @include v-valo-widget;
+
+ .v-generated-body {
+ overflow: hidden;
+ margin: 0;
+ padding: 0;
+ border: 0;
+ }
+
+ .v-app {
+ height: 100%;
+ // Cancel tap highlight from all elements inside the app
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+ }
+
+ .v-ui {
+ position: relative;
+ }
+
+ // Prevent margin collapse
+ .v-ui.v-ui-embedded {
+ margin-top: -1px;
+ border-top: 1px solid transparent;
+ }
+
+ .v-ui:focus {
+ outline: none;
+ }
+
+ .v-overlay-container {
+ width: 0;
+ height: 0;
+ }
+
+ // Removes clear button from input fields introduced by IE10
+ input::-ms-clear {
+ display: none;
+ }
+
+ .v-drag-element {
+ z-index: 60000;
+ // Override any other position properties
+ position: absolute !important;
+ cursor: default;
+ }
+
+ .v-clip {
+ overflow: hidden;
+ }
+
+ .v-scrollable {
+ overflow: auto;
+ // Fix extra whitespace in IE
+ line-height: 0;
+ }
+
+ .v-ios.v-webkit .v-scrollable {
+ -webkit-overflow-scrolling: touch;
+ }
+
+ // Disable native scrolling on iOS 5 due to issue #8792
+ .v-ios5.v-webkit .v-scrollable {
+ -webkit-overflow-scrolling: none;
+ }
+
+ .v-assistive-device-only {
+ position: absolute;
+ top: -2000px;
+ left: -2000px;
+ width: 10px;
+ overflow: hidden;
+ }
+
+ .v-icon,
+ .v-errorindicator,
+ .v-required-field-indicator {
+ display: inline-block;
+ line-height: inherit;
+ }
+
+ .v-caption,
+ .v-captiontext {
+ display: inline-block;
+ line-height: $v-line-height;
+ }
+
+ // Component global styles should also be included here
+ @include v-valo-orderedlayout-global;
+ @include v-valo-gridlayout-global;
+ @include v-valo-calendar-global;
+ @include v-valo-colorpicker-global;
+ @include v-valo-table-global;
+ @include v-valo-tabsheet-global;
+
+ $v-valo-global-included: true;
+ }
+}
+
+
+
+$v-valo-shared-pathPrefix: null;
+
+@if $v-relative-paths == false {
+ $v-valo-shared-pathPrefix: "../valo/shared/";
+}
+
+
+@mixin v-valo-app-style {
+ font: $v-font-weight #{$v-font-size}/#{$v-line-height} $v-font-family;
+ color: $v-font-color;
+ background-color: $v-app-background-color;
+ cursor: default;
+
+ // Default to Helvetica Neue on Macs instead of Helvetica, which has a slightly different baseline
+ @if $v-font-family == sans-serif {
+ .v-mac & {
+ font-family: "Helvetica Neue", sans-serif;
+ }
+ }
+}
+
+
+@mixin v-valo-common {
+
+ //@if & != null {
+ // &,
+ // &.v-app-loading {
+ // @include v-valo-app-style;
+ // }
+ //} @else {
+ &.v-app,
+ &.v-app-loading {
+ @include v-valo-app-style;
+ }
+ //}
+
+ //&.v-overlay-container {
+ // position: absolute;
+ // top: 0;
+ //}
+
+ .v-app-loading {
+ width: 100%;
+ height: 100%;
+ background: $v-app-background-color;
+
+ $_size: 28px + round($v-unit-size/2);
+
+ &:before {
+ content: "";
+ position: fixed;
+ z-index: 100;
+ top: 45%;
+ left: 50%;
+ width: 28px;
+ height: 28px;
+ padding: round($v-unit-size/4);
+ margin-top: round($_size/-2);
+ margin-left: round($_size/-2);
+ background: #fff url($v-valo-shared-pathPrefix + "img/spinner.gif") no-repeat 50%;
+ border-radius: $v-border-radius;
+ }
+
+ @if $v-app-loading-text != "" {
+ &:after {
+ position: fixed;
+ z-index: 100;
+ top: 45%;
+ padding-top: $_size;
+ text-align: center;
+ left: 0;
+ right: 0;
+ content: $v-app-loading-text;
+ }
+ }
+ }
+
+ @include v-valo-loading-bar;
+
+
+ // Fallback spinner for browsers without CSS animations
+ .v-ie8 &,
+ .v-ie9 & {
+ .v-loading-indicator,
+ .v-loading-indicator-delay,
+ .v-loading-indicator-wait {
+ width: 28px !important;
+ height: 28px;
+ padding: round($v-unit-size/4);
+ background: #fff url($v-valo-shared-pathPrefix + "img/spinner.gif") no-repeat 50%;
+ border-radius: $v-border-radius;
+ top: round($v-unit-size/4);
+ right: round($v-unit-size/4);
+ left: auto;
+ filter: alpha(opacity=50);
+
+ &[style*="none"] {
+ display: none !important;
+ }
+ }
+
+ .v-loading-indicator-wait {
+ filter: alpha(opacity=100);
+ }
+ }
+
+ .v-scrollable:focus {
+ outline: none;
+ }
+
+ //.v-captiontext,
+ //.v-errorindicator,
+ //.v-required-field-indicator,
+ img.v-icon {
+ vertical-align: middle;
+ }
+
+ .v-caption {
+ @include v-valo-caption-style;
+ }
+
+ .v-caption-on-left .v-caption,
+ .v-caption-on-right .v-caption {
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .v-icon + .v-captiontext,
+ .v-icon + span {
+ margin-left: round($v-unit-size/5);
+
+ &:empty {
+ margin-left: 0;
+ }
+ }
+
+ .v-errorindicator {
+ @include v-valo-error-indicator-style;
+ }
+
+ .v-required-field-indicator {
+ color: $v-required-field-indicator-color;
+ padding: 0 .2em;
+ }
+
+ select {
+ font: inherit;
+ font-weight: 400;
+ line-height: inherit;
+ color: inherit;
+ padding: round($v-unit-size/8);
+ margin: 0;
+ border-radius: $v-border-radius;
+
+ @include v-valo-nativeselect-select-style;
+ }
+
+ button {
+ font: inherit;
+ font-weight: 400;
+ line-height: inherit;
+ }
+
+ .v-disabled {
+ cursor: default !important;
+ }
+
+ @include v-valo-drag-element;
+
+ @include v-valo-tooltip;
+
+ @include v-valo-contextmenu;
+
+}
+
+
+
+
+@mixin v-valo-caption-style {
+ font-size: $v-caption-font-size;
+ font-weight: $v-caption-font-weight;
+ padding-bottom: .3em;
+ @if $v-border-radius > 0 {
+ padding-left: round($v-border-radius/4);
+ }
+}
+
+
+
+@mixin v-valo-error-indicator-style {
+ color: $v-error-indicator-color;
+ font-weight: 600;
+ width: ceil($v-unit-size/2);
+ text-align: center;
+
+ &:before {
+ @include v-valo-error-indicator-icon-style;
+ }
+}
+
+@mixin v-valo-error-indicator-icon-style {
+ content: "!";
+}
+
+
+
+// Make the BODY element scrollable instead of the .v-ui element. Scrolling the BODY works better on touch screens.
+// NOTE: breaks percentage sized overlay elements
+// @mixin v-valo-natural-page-scrolling
+// @usage
+// // Call without any parent selector somewhere in your theme
+// =v-valo-natural-page-scrolling;
+@mixin v-valo-natural-page-scrolling {
+
+ html {
+ height: auto;
+ }
+
+ .v-generated-body {
+ height: auto;
+ overflow: auto;
+ }
+
+ .v-app,
+ .v-ui.v-scrollable {
+ width: auto !important;
+ height: auto !important;
+ overflow: visible !important;
+ }
+
+ // Reposition loading indicator so that it doens't scroll with the page
+ .v-loading-indicator {
+ position: fixed !important;
+ }
+
+ .v-overlay-container {
+ position: absolute;
+ top: 0;
+ left: 0;
+ }
+
+ // Reposition notifications so that they don't scroll with the page
+ .v-Notification {
+ position: fixed !important;
+ }
+
+}
diff --git a/WebContent/VAADIN/themes/valo/shared/_loading-indicator.scss b/WebContent/VAADIN/themes/valo/shared/_loading-indicator.scss
new file mode 100644
index 0000000000..b20dc33300
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/shared/_loading-indicator.scss
@@ -0,0 +1,116 @@
+// TODO make fallbacks for IE 8 & 9
+
+@-webkit-keyframes v-rotate-360 {
+ to {-webkit-transform: rotate(360deg);}
+}
+@-moz-keyframes v-rotate-360 {
+ to {-moz-transform: rotate(360deg);}
+}
+@-o-keyframes v-rotate-360 {
+ to {-o-transform: rotate(360deg);}
+}
+@keyframes v-rotate-360 {
+ to {transform: rotate(360deg);}
+}
+
+
+@mixin v-valo-spinner ($size: 24px, $thickness: 4px, $color: null, $speed: 500ms) {
+ $color: $color or v-valo-focus-color();
+ // Make size divisible by 2, so that the rotation won't jiggle
+ $size: $size + $size%2;
+ height: $size !important;
+ width: $size !important;
+ @include box-sizing(border-box);
+ border: $thickness solid transparentize($color, .8);
+ border-top-color: transparentize($color, .15);
+ border-radius: 100%;
+ @include animation(v-rotate-360 $speed infinite linear);
+ pointer-events: none;
+ @include transition(all ease-in-out 300ms);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@include keyframes(v-progress-start) {
+ 0% { width: 0%; }
+ 100% { width: 50%; }
+}
+
+@include keyframes(v-progress-delay) {
+ 0% { width: 50%; }
+ 100% { width: 90%; }
+}
+
+@include keyframes(v-progress-wait) {
+ 0% { width: 90%; }
+ 100% { width: 96%; }
+}
+
+@include keyframes(v-progress-wait-pulse) {
+ 0% { opacity: 1; }
+ 50% { opacity: .1; }
+ 100% { opacity: 1; }
+}
+
+
+$v-loading-indicator-color: v-valo-focus-color() !default;
+$v-loading-indicator-bar-height: ceil($v-unit-size/7) !default;
+
+@mixin v-valo-loading-bar {
+
+ .v-loading-indicator {
+ position: fixed !important;
+ z-index: 99999;
+ left: 0;
+ right: auto;
+ top: 0;
+ width: 50%;
+ opacity: 1;
+ height: $v-loading-indicator-bar-height;
+ background-color: $v-loading-indicator-color;
+ //@include linear-gradient(to right, rgba($v-loading-indicator-color,0) 0%, $v-loading-indicator-color 100%);
+ pointer-events: none;
+
+ @include transition(none);
+ @include animation(v-progress-start 1000ms 200ms both);
+ //@include animation-fill-mode(forwards);
+
+ &[style*="none"] {
+ // Chrome skips the transitions because it thinks the element is display: none;
+ display: block !important;
+ width: 100% !important;
+ opacity: 0;
+ @include animation(none);
+ @include transition(opacity 500ms 300ms, width 300ms);
+ }
+ }
+
+ .v-loading-indicator-delay {
+ width: 90%;
+ .v-ff & {
+ width: 50%;
+ }
+ @include animation(v-progress-delay 3.8s forwards);
+ }
+
+ .v-loading-indicator-wait {
+ width: 96%;
+ .v-ff & {
+ width: 90%;
+ }
+ @include animation(v-progress-wait 5s forwards, v-progress-wait-pulse 1s 4s infinite backwards);
+ }
+
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/shared/_notification.scss b/WebContent/VAADIN/themes/valo/shared/_notification.scss
new file mode 100644
index 0000000000..c546a16225
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/shared/_notification.scss
@@ -0,0 +1,297 @@
+@mixin v-valo-notification {
+
+
+
+
+ // Positional offsets
+
+ // Can't match to "top: 0", since that would target "margin-top: 0" also, which all GWT PopupPanels have always
+ .v-Notification[style*=" top: 0"] {
+ margin-top: $v-layout-spacing-vertical !important;
+ }
+
+ .v-Notification[style*="right: 0"] {
+ margin-right: $v-layout-spacing-horizontal;
+ }
+
+ .v-Notification[style*="bottom: 0"] {
+ margin-bottom: $v-layout-spacing-vertical;
+ }
+
+ // Can't match to "left: 0", since that would target "margin-left: 0" also, which all GWT PopupPanels have always
+ .v-Notification[style*=" left: 0"] {
+ margin-left: $v-layout-spacing-horizontal !important;
+ }
+
+
+
+
+ // Custom animations for positions
+ // Left/right positions override top & bottom
+
+ // Can't match to "top: 0", since that would target "margin-top: 0" also, which all GWT PopupPanels have always
+ @if $v-animations-enabled {
+ .v-Notification[style*=" top: 0"] {
+ @include v-valo-anim-slide-down(600ms);
+ }
+
+ .v-Notification[style*="bottom: 0"] {
+ @include v-valo-anim-slide-up(600ms);
+ }
+
+ .v-Notification[style*="right: 0"] {
+ @include v-valo-anim-slide-left(600ms);
+ }
+
+ // Can't match to "left: 0", since that would target "margin-left: 0" also, which all GWT PopupPanels have always
+ .v-Notification[style*=" left: 0"]:not(.v-Notification-system) {
+ @include v-valo-anim-slide-right(600ms);
+ }
+ }
+
+
+
+
+
+ // Default style (a.k.a. humanized)
+
+ .v-Notification {
+ border-radius: $v-border-radius;
+ text-align: center;
+ position: fixed !important;
+
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ -ms-backface-visibility: hidden;
+ backface-visibility: hidden;
+
+ h1 {
+ margin: 0;
+ display: inline-block;
+ text-align: left;
+ font-weight: inherit;
+ line-height: inherit;
+ white-space: nowrap;
+ letter-spacing: 0;
+ }
+
+ p {
+ margin: 0;
+ display: inline-block;
+ vertical-align: middle;
+ max-width: 30em;
+ text-align: left;
+ }
+
+ h1 ~ p {
+ margin-left: round($v-font-size * 1.5);
+ }
+
+ .v-icon + h1 {
+ margin-left: round($v-font-size);
+ }
+
+ @include v-valo-notification-style;
+
+ @if $v-animations-enabled {
+ @include v-valo-anim-fade-in;
+ }
+
+ }
+
+
+ // System notification
+
+ .v-Notification-system {
+ left: 0 !important;
+ right: 0;
+ max-width: 100%;
+ margin: 0 !important;
+ border-radius: 0;
+
+ @include v-valo-notification-system-style;
+ }
+
+ // Needs a more specific selector to override positional margins
+ .v-Notification-system.v-Notification-system {
+ margin: 0 !important;
+ }
+
+
+
+
+ // Tray notification
+
+ .v-Notification.tray {
+ text-align: left;
+ h1 {
+ //display: block;
+ }
+
+ h1 + p {
+ display: block;
+ margin: .5em 0 0;
+ }
+ @include v-valo-notification-tray-style;
+ }
+
+ .v-Notification.warning {
+ @include v-valo-notification-warning-style;
+ }
+
+ .v-Notification.error {
+ @include v-valo-notification-error-style;
+ }
+
+ .v-Notification.closable {
+ @include v-valo-notification-closable-style;
+
+ &.error,
+ &.system {
+ &:after {
+ color: #fff;
+ border-color: #fff;
+ border-color: rgba(255,255,255,.3);
+ }
+ &:active:after {
+ background-color: #fff;
+ color: #000;
+ }
+ }
+
+ &.tray:after {
+ top: round($v-unit-size/2.3);
+ margin-top: 0;
+ }
+ }
+
+}
+
+
+
+
+
+
+@mixin v-valo-notification-closable-style {
+ padding-right: $v-unit-size + round($v-unit-size/1.7);
+ overflow: hidden !important; // Override GWT PopupPanel
+ cursor: pointer;
+
+ //&:before {
+ // content: "";
+ // position: absolute;
+ // top: 0;
+ // right: 0;
+ // bottom: 0;
+ // width: $v-unit-size;
+ // cursor: pointer;
+ // background: #000;
+ // @include opacity(.15);
+ //}
+
+ &:after {
+ content: "\00d7";
+ font-size: 1.5em;
+ position: absolute;
+ top: 50%;
+ margin-top: round($v-unit-size/-3);
+ right: round($v-unit-size/3);
+ width: round($v-unit-size/1.5);
+ height: round($v-unit-size/1.5);
+ line-height: round($v-unit-size/1.5) - 1px;
+ cursor: pointer;
+ color: #000;
+ @include opacity(.5);
+ text-align: center;
+ border: $v-border-width solid #000;
+ border-color: rgba(0,0,0,.3);
+ border-radius: 50%;
+ @include transition(opacity 200ms);
+ }
+
+ &:hover:after {
+ @include opacity(1);
+ }
+
+ &:active:after {
+ background-color: #000;
+ color: #fff;
+ @include opacity(.3);
+ @include transition(none 200ms);
+ }
+}
+
+
+
+
+
+@mixin v-valo-notification-style {
+ background: v-valo-overlay-background-color();
+ box-shadow: 0px 5px 15px 0px rgba(0,0,0,0.15);
+ padding: round($v-unit-size/2) round($v-unit-size/1.7);
+
+ // Make thigns easier to read
+ &[style*="opacity: 0.9;"] {
+ @include opacity(1, true);
+ }
+
+ h1 {
+ color: v-valo-focus-color();
+ font-size: round($v-font-size * 1.2);
+ line-height: 1;
+ }
+ p {
+ line-height: 1.4;
+ }
+}
+
+@mixin v-valo-notification-system-style {
+ background-color: #444;
+ font-weight: $v-font-weight + 100;
+ line-height: round($v-font-size * 1.4);
+ box-shadow: 0px 5px 15px 0px rgba(0,0,0,0.25);
+
+ h1 {
+ color: #fff;
+ vertical-align: middle;
+ }
+
+ p {
+ color: #e6e6e6;
+ max-width: 50em;
+ }
+
+ // No need to underline the "click here" text, let's imply that the whole banner is clickable
+ u {
+ text-decoration: none;
+ }
+}
+
+
+@mixin v-valo-notification-tray-style {}
+
+@mixin v-valo-notification-warning-style {
+ background: #FFF3D2;
+
+ h1 {
+ color: #AC7C00;
+ }
+
+ p {
+ color: #9D874D;
+ }
+}
+
+@mixin v-valo-notification-error-style {
+ background: $v-error-indicator-color;
+ font-weight: $v-font-weight + 100;
+ box-shadow: 0px 5px 15px 0px rgba(0,0,0,0.25);
+
+ h1 {
+ color: v-valo-font-color($v-error-indicator-color, 1);
+ }
+
+ p {
+ color: v-valo-font-color($v-error-indicator-color, .8);
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/shared/_overlay.scss b/WebContent/VAADIN/themes/valo/shared/_overlay.scss
new file mode 100644
index 0000000000..87adb4dffd
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/shared/_overlay.scss
@@ -0,0 +1,214 @@
+$v-overlay-border-radius: $v-border-radius !default;
+$v-overlay-border-width: $v-border-width !default;
+$v-overlay-open-animation: v-valo-overlay-open 200ms !default;
+
+$v-overlay-padding: round($v-unit-size/9) !default;
+$v-overlay-padding-vertical: $v-overlay-padding !default;
+$v-overlay-padding-horizontal: $v-overlay-padding !default;
+
+$v-overlay-shadow-style: 0 2px 4px 0 shade, 0 3px 5px 0 shade !default;
+
+$v-selection-overlay-padding: $v-overlay-padding !default;
+$v-selection-overlay-padding-vertical: $v-selection-overlay-padding !default;
+$v-selection-overlay-padding-horizontal: $v-selection-overlay-padding !default;
+
+$v-selection-item-border-radius: $v-border-radius - 1px !default;
+$v-selection-item-height: ceil($v-unit-size/1.4) !default;
+$v-selection-item-padding-horizontal: ceil($v-unit-size/4) !default;
+$v-selection-item-font-weight: max(400, $v-font-weight);
+
+
+@function v-valo-overlay-background-color ($context: $v-app-background-color) {
+ @if is-dark-color($context) {
+ @return darken($context, 2%);
+ }
+ @return lighten($context, 2%);
+}
+
+
+
+
+
+
+@mixin v-valo-ie8-shadow($shadow, $element: top) {
+ .#{$element} {
+ $shadow-offset-x: nth($shadow, 1);
+ $shadow-offset-y: nth($shadow, 2);
+ $shadow-blur: nth($shadow, 3);
+ $shadow-color: last($shadow);
+ $shadow-color-opacity: opacity($shadow-color);
+ $shadow-color: opacify($shadow-color, 1);
+
+ position: absolute;
+ top: $shadow-offset-y - $shadow-blur;
+ right: -$shadow-offset-x + $shadow-blur;
+ bottom: -$shadow-offset-y + $shadow-blur;
+ left: $shadow-offset-x - $shadow-blur;
+ background: $shadow-color;
+ filter: progid:DXImageTransform.Microsoft.blur(pixelradius=#{strip-units($shadow-blur)}, makeShadow=true, ShadowOpacity=#{$shadow-color-opacity});
+ }
+}
+
+
+
+
+
+// Not needed in modern browsers
+.v-shadow,
+.v-shadow-window {
+ display: none;
+
+ // In IE8 windows get the same shadow as other overlays
+ .v-ie8 & {
+ display: block;
+
+ // Border simulation
+ .center {
+ position: absolute;
+ top: -$v-overlay-border-width;
+ right: -$v-overlay-border-width;
+ bottom: -$v-overlay-border-width;
+ left: -$v-overlay-border-width;
+ background: darken(v-valo-overlay-background-color(), $v-bevel-depth);
+ filter: alpha(opacity=round($v-bevel-depth/1%));
+ }
+
+ // Up to 8 shadows are supported
+ $elements: top, top-left, top-right, left, right, bottom, bottom-left, bottom-right;
+ $shadows: v-valo-shadow($shadow-style: $v-overlay-shadow-style);
+
+ @if type-of(last($shadows)) == color {
+ @include v-valo-ie8-shadow($shadows);
+ } @else {
+ @for $i from 1 through min(length($elements), length($shadows)) {
+ $shadow: nth($shadows, $i);
+ @if length($shadow) == 2 {
+ $shadow: last($shadow); // Workaround for a weird issue when sometimes a shadow is appended to a null list
+ }
+ @if length($shadow) > 3 {
+ @include v-valo-ie8-shadow($shadow: $shadow, $element: nth($elements, $i));
+ }
+ }
+ }
+ }
+}
+
+
+
+
+
+
+@function v-valo-overlay-box-shadow ($bg: null) {
+ $bg: $bg or v-valo-overlay-background-color();
+ @return v-valo-shadow($shadow-style: (0 0 0 $v-overlay-border-width rgba(darken($bg, $v-bevel-depth), $v-bevel-depth/100%), $v-overlay-shadow-style));
+}
+
+
+
+@mixin v-valo-overlay-style ($background-color: null, $open-animation: $v-overlay-open-animation) {
+ padding: $v-overlay-padding-vertical $v-overlay-padding-horizontal;
+ border-radius: $v-overlay-border-radius;
+
+ $bg: $background-color or v-valo-overlay-background-color();
+ background: $bg;
+ color: v-valo-font-color($bg);
+
+ box-shadow: v-valo-overlay-box-shadow($bg);
+
+ @if $v-animations-enabled and $v-overlay-open-animation {
+ @include animation($open-animation);
+ }
+
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ -ms-backface-visibility: hidden;
+ backface-visibility: hidden;
+}
+
+
+
+@if $v-animations-enabled {
+ @include keyframes(v-valo-overlay-open) {
+ 0% {
+ @include transform(translatey(-3px));
+ opacity: 0;
+ }
+ }
+}
+
+
+
+
+
+
+@mixin v-valo-selection-overlay-style ($background-color: null, $open-animation: $v-overlay-open-animation) {
+ @include v-valo-overlay-style($background-color: $background-color, $open-animation: $open-animation);
+ padding: $v-selection-overlay-padding-vertical $v-selection-overlay-padding-horizontal;
+}
+
+
+
+
+@mixin v-valo-selection-item-style {
+ cursor: pointer;
+ line-height: $v-selection-item-height;
+ padding: 0 $v-selection-item-padding-horizontal*2 0 $v-selection-item-padding-horizontal;
+ @if $v-selection-item-border-radius > 0 {
+ border-radius: $v-selection-item-border-radius;
+ }
+ font-weight: $v-selection-item-font-weight;
+ white-space: nowrap;
+
+ position: relative;
+ &:active:before {
+ content: "";
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ background: scale-color(v-valo-selection-color(), $lightness: -30%, $saturation: 50%);
+ @include opacity(.15);
+ pointer-events: none;
+ border-radius: inherit;
+ }
+
+ .v-icon {
+ max-height: $v-selection-item-height;
+ margin-right: round($v-selection-item-padding-horizontal/2);
+ min-width: 1em;
+ }
+}
+
+
+
+
+@mixin v-valo-selection-item-selected-style ($parent-background-color: null) {
+ $selection-color: v-valo-selection-color($parent-background-color);
+ @include v-valo-gradient($selection-color);
+ color: v-valo-font-color($selection-color, 0.9);
+}
+
+
+
+
+
+
+
+
+@mixin v-valo-drag-element {
+ .v-drag-element {
+ @include v-valo-drag-element-style;
+ }
+}
+
+@mixin v-valo-drag-element-style {
+ background: #fff;
+ box-shadow: 0 2px 10px rgba(#000, .2);
+ border-radius: $v-border-radius;
+ overflow: hidden;
+ @include opacity(.5);
+
+ // This has the unfortunate side-effect of selecting an the table row where the drag is dropped
+ //pointer-events: none;
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/shared/_tooltip.scss b/WebContent/VAADIN/themes/valo/shared/_tooltip.scss
new file mode 100644
index 0000000000..9074fc69a7
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/shared/_tooltip.scss
@@ -0,0 +1,67 @@
+// @category Tooltip
+
+$v-tooltip-background-color: rgba(if(is-dark-color($v-app-background-color), scale-color($v-app-background-color, $lightness: 80%), scale-color($v-app-background-color, $lightness: -80%)), .75) !default;
+$v-tooltip-font-color: v-valo-font-color(opacify($v-tooltip-background-color, 1), 1) !default;
+$v-tooltip-font-size: max(12px, round($v-font-size * 0.86)) !default;
+$v-tooltip-box-shadow: 0 2px 12px rgba(#000, .2) !default;
+$v-tooltip-padding-vertical: round($v-unit-size/8) !default;
+$v-tooltip-padding-horizontal: round($v-unit-size/4) !default;
+$v-tooltip-error-message-background-color: #fff !default;
+$v-tooltip-error-message-font-color: $v-error-indicator-color !default;
+$v-tooltip-border-radius: $v-border-radius - 1px !default;
+
+
+@mixin v-valo-tooltip {
+ .v-tooltip {
+ @include v-valo-tooltip-style;
+
+ div[style*="width"] {
+ width: auto !important;
+ }
+
+ .v-errormessage {
+ background-color: opacify($v-tooltip-error-message-background-color, 1);
+ background-color: $v-tooltip-error-message-background-color;
+ color: $v-tooltip-error-message-font-color;
+ margin: -$v-tooltip-padding-vertical #{-$v-tooltip-padding-horizontal};
+ padding: $v-tooltip-padding-vertical $v-tooltip-padding-horizontal;
+ max-height: 10em;
+ overflow: auto;
+ font-weight: $v-font-weight + 100;
+ }
+
+ .v-tooltip-text {
+ max-height: 10em;
+ overflow: auto;
+ margin-top: $v-tooltip-padding-vertical * 2;
+ }
+
+ .v-errormessage[aria-hidden="true"] + .v-tooltip-text {
+ margin-top: 0;
+ }
+
+ h1,
+ h2,
+ h3,
+ h4 {
+ color: inherit;
+ }
+ }
+}
+
+
+@mixin v-valo-tooltip-style {
+ background-color: opacify($v-tooltip-background-color, 1); // For IE8
+ background-color: $v-tooltip-background-color;
+ box-shadow: $v-tooltip-box-shadow;
+ color: $v-tooltip-font-color;
+ padding: $v-tooltip-padding-vertical $v-tooltip-padding-horizontal;
+ border-radius: $v-tooltip-border-radius;
+ max-width: 35em;
+ overflow: hidden !important;
+ font-size: $v-tooltip-font-size;
+
+ @if $v-animations-enabled {
+ //@include v-valo-anim-fade-in;
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/shared/_variables.scss b/WebContent/VAADIN/themes/valo/shared/_variables.scss
new file mode 100644
index 0000000000..a0aabd9590
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/shared/_variables.scss
@@ -0,0 +1,140 @@
+// @category Common
+
+// Color functions are used to calculate default font color
+@import "../util/color";
+
+
+// List of components to include in the theme compilation. The list can be modified to make
+// the compiled theme smaller by removing unused components from the list.
+// @variable v-included-components
+// @usage
+// // Remove the Calendar component styles from the output
+// $v-included-components: remove($v-included-components, calendar);
+$v-included-components:
+ absolutelayout,
+ accordion,
+ button,
+ calendar,
+ checkbox,
+ colorpicker,
+ combobox,
+ csslayout,
+ customcomponent,
+ customlayout,
+ datefield,
+ dragwrapper,
+ form,
+ formlayout,
+ grid,
+ gridlayout,
+ label,
+ link,
+ loginform,
+ menubar,
+ nativebutton,
+ nativeselect,
+ optiongroup,
+ orderedlayout,
+ panel,
+ popupview,
+ progressindicator,
+ slider,
+ splitpanel,
+ table,
+ tabsheet,
+ textfield,
+ textarea,
+ richtextarea,
+ tree,
+ treetable,
+ twincolselect,
+ upload,
+ window !default;
+
+
+// Checks if a given component is included in the compilation. Used by the collection mixins that
+// include all components, like v-valo-components and v-valo-components.
+// @mixin v-is-included
+// @param $component-name {String} the name of the component to check
+// @param $is-included {list} (Optional) the list of components which is checked
+// @return {Boolean} true if the component is included in the compilation, false if not
+@function v-is-included ($component-name, $is-included: $v-included-components) {
+ @return contains($is-included, $component-name);
+}
+
+
+// A static text that is shown while the application JavaScript is loaded and started
+// @variable v-app-loading-text
+// @default ""
+$v-app-loading-text: "" !default;
+
+
+// Base line height used for all widgets
+// @variable v-line-height
+// @default 1.55 !default
+$v-line-height: 1.55 !default;
+
+
+$v-app-background-color: hsl(210, 0%, 98%) !default;
+
+$v-font-size: 16px !default; // Should be specified in pixels
+$v-font-weight: 300 !default; // Must be specified as a numeric value (i.e. not 'normal' or 'bold')
+$v-font-color: v-valo-font-color($v-app-background-color) !default;
+$v-font-family: "Open Sans", sans-serif !default;
+
+$v-caption-font-size: round($v-font-size * 0.9) !default; // Should be a pixel value
+$v-caption-font-weight: max(400, $v-font-weight) !default;
+
+$v-unit-size: round(2.3 * $v-font-size) !default; // Must be specified in pixels (suitable range 18-50)
+
+$v-layout-margin-top: round($v-unit-size) !default;
+$v-layout-margin-right: round($v-unit-size) !default;
+$v-layout-margin-bottom: round($v-unit-size) !default;
+$v-layout-margin-left: round($v-unit-size) !default;
+
+$v-layout-spacing-vertical: round($v-unit-size/3) !default;
+$v-layout-spacing-horizontal: round($v-unit-size/3) !default;
+
+$v-border-width: 1px !default; // Must be specified in pixels
+$v-border-radius: 4px !default; // Must be specified in pixels
+
+$v-gradient-style: linear !default;
+$v-gradient-depth: 8% !default;
+
+$v-bevel-style: inset 0 1px 0 hilite, inset 0 -1px 0 shade !default;
+$v-bevel-depth: 25% !default;
+
+$v-shadow-style: 0 2px 3px shade !default;
+$v-shadow-depth: 5% !default;
+
+$v-focus-style: 0 0 0 2px focus-color !default;
+$v-focus-color: null !default;
+
+$v-animations-enabled: true !default;
+$v-hover-styles-enabled: true !default;
+
+$v-disabled-opacity: 0.7 !default;
+
+$v-selection-color: null !default;
+
+$v-default-field-width: $v-unit-size * 5 !default;
+
+$v-error-indicator-color: #ed473b !default;
+$v-required-field-indicator-color: $v-error-indicator-color !default;
+
+
+
+
+$v-valo-include-common-stylenames: true !default;
+
+
+
+
+// A flag to note whether relative URL paths are relative to the currently parsed SCSS file or to the compilation root file.
+// The Vaadin compiler parses URL paths differently than the regular Sass compiler (i.e. Vaadin modifies relative url paths).
+// This boolean is used to flag which compiler is used, so that paths are correct for different resources.
+// false == Ruby, true == Vaadin
+// @private
+// @variable v-relative-paths
+// @default false
+$v-relative-paths: false !default; \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/shared/img/spinner.gif b/WebContent/VAADIN/themes/valo/shared/img/spinner.gif
new file mode 100644
index 0000000000..acf8f1c43a
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/shared/img/spinner.gif
Binary files differ
diff --git a/WebContent/VAADIN/themes/valo/styles.scss b/WebContent/VAADIN/themes/valo/styles.scss
new file mode 100644
index 0000000000..851aa89893
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/styles.scss
@@ -0,0 +1,5 @@
+@import "valo";
+
+.valo {
+ @include v-valo;
+}
diff --git a/WebContent/VAADIN/themes/valo/util/_anim.scss b/WebContent/VAADIN/themes/valo/util/_anim.scss
new file mode 100644
index 0000000000..b73d2edf8b
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/_anim.scss
@@ -0,0 +1,63 @@
+@include keyframes(v-valo-anim-fade-in) {
+ 0% {
+ opacity: 0;
+ }
+}
+
+
+@include keyframes(v-valo-anim-fade-out) {
+ 100% {
+ opacity: 0;
+ }
+}
+
+
+@include keyframes(v-valo-anim-slide-down) {
+ 0% {
+ @include transform( translateY(-100%) );
+ }
+}
+
+@include keyframes(v-valo-anim-slide-up) {
+ 0% {
+ @include transform( translateY(100%) );
+ }
+}
+
+@include keyframes(v-valo-anim-slide-left) {
+ 0% {
+ @include transform( translateX(100%) );
+ }
+}
+
+@include keyframes(v-valo-anim-slide-right) {
+ 0% {
+ @include transform( translateX(-100%) );
+ }
+}
+
+
+
+@mixin v-valo-anim-fade-in ($duration: 120ms, $delay: null){
+ @include animation(v-valo-anim-fade-in $duration $delay);
+}
+
+@mixin v-valo-anim-fade-out ($duration: 120ms, $delay: null){
+ @include animation(v-valo-anim-fade-out $duration $delay);
+}
+
+@mixin v-valo-anim-slide-down ($duration: 260ms, $delay: null){
+ @include animation(v-valo-anim-slide-down $duration $delay);
+}
+
+@mixin v-valo-anim-slide-up ($duration: 260ms, $delay: null){
+ @include animation(v-valo-anim-slide-up $duration $delay);
+}
+
+@mixin v-valo-anim-slide-left ($duration: 260ms, $delay: null){
+ @include animation(v-valo-anim-slide-left $duration $delay);
+}
+
+@mixin v-valo-anim-slide-right ($duration: 260ms, $delay: null){
+ @include animation(v-valo-anim-slide-right $duration $delay);
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/util/_bevel-and-shadow.scss b/WebContent/VAADIN/themes/valo/util/_bevel-and-shadow.scss
new file mode 100644
index 0000000000..2b627df3e7
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/_bevel-and-shadow.scss
@@ -0,0 +1,63 @@
+@function v-valo-bevel ($color, $bevel-style: $v-bevel-style, $bevel-depth: $v-bevel-depth,
+ $gradient-style: $v-gradient-style, $gradient-depth: $v-gradient-depth) {
+
+ @if $bevel-depth == 0% or $bevel-style == none {
+ @return null;
+ }
+
+ $color-stops: v-valo-gradient-color-stops($color, $gradient-style, $gradient-depth);
+
+ $top-color: first(first($color-stops));
+ $bottom-color: first(last($color-stops));
+
+ $top-color: blend-lighten(adjust-color($top-color, $lightness: $bevel-depth/4, $saturation: -$bevel-depth), scale-color($top-color, $lightness: $bevel-depth/4));
+ $bottom-color: blend-darken(rgba(scale-color($bottom-color, $lightness: max(-30%, -$bevel-depth/3), $saturation: -$bevel-depth), $bevel-depth/100%), $bottom-color);
+
+ @return v-valo-replace-hilite-and-shade($bevel-style, $top-color, $bottom-color);
+}
+
+
+
+@function v-valo-shadow ($shadow-style: null, $shadow-depth: null) {
+ $shadow-style: $shadow-style or $v-shadow-style;
+ $shadow-depth: $shadow-depth or $v-shadow-depth;
+
+ @if $shadow-depth == 0% or $shadow-style == none {
+ @return null;
+ }
+
+ @return v-valo-replace-hilite-and-shade($shadow-style, rgba(#fff, $shadow-depth/100%), rgba(#000, $shadow-depth/100%));
+}
+
+
+
+@function v-valo-replace-hilite-and-shade($shadow-list, $hilite, $shade) {
+ @if $shadow-list == none {
+ @return null;
+ }
+
+ @if type-of(last($shadow-list)) == color {
+ @return $shadow-list;
+ }
+
+ // If the shadow-list only contains one shadow
+ // (we can't use the recursive replace function because that will mess up the list delimeters)
+ @if last($shadow-list) == hilite {
+ @return replace($shadow-list, hilite, $hilite);
+ } @else if last($shadow-list) == shade {
+ @return replace($shadow-list, shade, $shade);
+ }
+
+ // If there are multiple shadows in a list, recurse and separate lists with a comma
+ $new: null;
+ @each $part in $shadow-list {
+ @if type-of($part) == list and length($part) > 0 {
+ $part: v-valo-replace-hilite-and-shade($part, $hilite, $shade);
+ @if $part {
+ $new: $new, $part;
+ }
+ }
+ }
+
+ @return $new;
+}
diff --git a/WebContent/VAADIN/themes/valo/util/_blend-modes.scss b/WebContent/VAADIN/themes/valo/util/_blend-modes.scss
new file mode 100644
index 0000000000..3da575660d
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/_blend-modes.scss
@@ -0,0 +1,532 @@
+// From https://github.com/heygrady/scss-blend-modes
+// MIT license
+// Remember to add a license notice to Vaadin
+
+//--------------------------------
+// Normal
+//--------------------------------
+@function blend-normal ($foreground, $background) {
+ $opacity: opacity($foreground);
+ $background-opacity: opacity($background);
+
+ // calculate opacity
+ $bm-red: red($foreground) * $opacity + red($background) * $background-opacity * (1 - $opacity);
+ $bm-green: green($foreground) * $opacity + green($background) * $background-opacity * (1 - $opacity);
+ $bm-blue: blue($foreground) * $opacity + blue($background) * $background-opacity * (1 - $opacity);
+ @return rgb($bm-red, $bm-green, $bm-blue);
+}
+
+//--------------------------------
+// Multiply
+//--------------------------------
+@function blend-multiply ($foreground, $background) {
+ $bm-red: red($background) * red($foreground) / 255;
+ $bm-green: green($background) * green($foreground) / 255;
+ $bm-blue: blue($background) * blue($foreground) / 255;
+
+ @return blend-normal(rgba($bm-red, $bm-green, $bm-blue, opacity($foreground)), $background);
+}
+
+//--------------------------------
+// Lighten
+//--------------------------------
+@function blend-lighten ($foreground, $background) {
+ $bm-red: blend-lighten-color(red($foreground), red($background));
+ $bm-green: blend-lighten-color(green($foreground), green($background));
+ $bm-blue: blend-lighten-color(blue($foreground), blue($background));
+
+ @return blend-normal(rgba($bm-red, $bm-green, $bm-blue, opacity($foreground)), $background);
+}
+@function blend-lighten-color($foreground, $background) {
+ @if $background > $foreground {
+ $foreground: $background;
+ }
+ @return $foreground;
+}
+
+//--------------------------------
+// Darken
+//--------------------------------
+@function blend-darken ($foreground, $background) {
+ $bm-red: blend-darken-color(red($foreground), red($background));
+ $bm-green: blend-darken-color(green($foreground), green($background));
+ $bm-blue: blend-darken-color(blue($foreground), blue($background));
+
+ @return blend-normal(rgba($bm-red, $bm-green, $bm-blue, opacity($foreground)), $background);
+}
+@function blend-darken-color($foreground, $background) {
+ @if $background < $foreground {
+ $foreground: $background;
+ }
+ @return $foreground;
+}
+
+//--------------------------------
+// Darker Color
+//--------------------------------
+@function blend-darkercolor ($foreground, $background) {
+ $bm-red: red($foreground);
+ $bm-green: green($foreground);
+ $bm-blue: blue($foreground);
+ $background-red: red($background);
+ $background-green: green($background);
+ $background-blue: blue($background);
+
+ @if $background-red * 0.3 + $background-green * 0.59 + $background-blue * 0.11 <= $bm-red * 0.3 + $bm-green * 0.59 + $bm-blue * 0.11 {
+ $bm-red: $background-red;
+ $bm-green: $background-green;
+ $bm-blue: $background-blue;
+ }
+ @return blend-normal(rgba($bm-red, $bm-green, $bm-blue, opacity($foreground)), $background);
+}
+
+//--------------------------------
+// Lighter Color
+//--------------------------------
+@function blend-lightercolor ($foreground, $background) {
+ $bm-red: red($foreground);
+ $bm-green: green($foreground);
+ $bm-blue: blue($foreground);
+ $background-red: red($background);
+ $background-green: green($background);
+ $background-blue: blue($background);
+
+ @if $background-red * 0.3 + $background-green * 0.59 + $background-blue * 0.11 > $bm-red * 0.3 + $bm-green * 0.59 + $bm-blue * 0.11 {
+ $bm-red: $background-red;
+ $bm-green: $background-green;
+ $bm-blue: $background-blue;
+ }
+ @return blend-normal(rgba($bm-red, $bm-green, $bm-blue, opacity($foreground)), $background);
+}
+
+//--------------------------------
+// Linear Dodge
+//--------------------------------
+@function blend-lineardodge ($foreground, $background) {
+ $bm-red: blend-lineardodge-color(red($foreground), red($background));
+ $bm-green: blend-lineardodge-color(green($foreground), green($background));
+ $bm-blue: blend-lineardodge-color(blue($foreground), blue($background));
+
+ @return blend-normal(rgba($bm-red, $bm-green, $bm-blue, opacity($foreground)), $background);
+}
+@function blend-lineardodge-color($foreground, $background) {
+ @if $background + $foreground > 255 {
+ $foreground: 255;
+ }
+ @else {
+ $foreground: $background + $foreground;
+ }
+ @return $foreground;
+}
+
+//--------------------------------
+// Linear Burn
+//--------------------------------
+@function blend-linearburn ($foreground, $background) {
+ $bm-red: blend-linearburn-color(red($foreground), red($background));
+ $bm-green: blend-linearburn-color(green($foreground), green($background));
+ $bm-blue: blend-linearburn-color(blue($foreground), blue($background));
+
+ @return blend-normal(rgba($bm-red, $bm-green, $bm-blue, opacity($foreground)), $background);
+}
+@function blend-linearburn-color($foreground, $background) {
+ @if $background + $foreground < 255 {
+ $foreground: 0;
+ }
+ @else {
+ $foreground: $background + $foreground - 255;
+ }
+ @return $foreground;
+}
+
+//--------------------------------
+// Difference
+//--------------------------------
+@function blend-difference ($foreground, $background) {
+ $bm-red: abs(red($background) - red($foreground));
+ $bm-green: abs(green($background) - green($foreground));
+ $bm-blue: abs(blue($background) - blue($foreground));
+
+ @return blend-normal(rgba($bm-red, $bm-green, $bm-blue, opacity($foreground)), $background);
+}
+
+//--------------------------------
+// Screen
+//--------------------------------
+@function blend-screen ($foreground, $background) {
+ $bm-red: blend-screen-color(red($foreground), red($background));
+ $bm-green: blend-screen-color(green($foreground), green($background));
+ $bm-blue: blend-screen-color(blue($foreground), blue($background));
+
+ @return blend-normal(rgba($bm-red, $bm-green, $bm-blue, opacity($foreground)), $background);
+}
+@function blend-screen-color($foreground, $background) {
+ @return (255 - ( ( (255 - $foreground) * (255 - $background)) / 256));
+}
+
+//--------------------------------
+// Exclusion
+//--------------------------------
+@function blend-exclusion ($foreground, $background) {
+ $bm-red: blend-exclusion-color(red($foreground), red($background));
+ $bm-green: blend-exclusion-color(green($foreground), green($background));
+ $bm-blue: blend-exclusion-color(blue($foreground), blue($background));
+
+ @return blend-normal(rgba($bm-red, $bm-green, $bm-blue, opacity($foreground)), $background);
+}
+@function blend-exclusion-color($foreground, $background) {
+ @return $background - ($background * (2 / 255) - 1) * $foreground;
+}
+
+//--------------------------------
+// Overlay
+//--------------------------------
+@function blend-overlay ($foreground, $background) {
+ $bm-red: blend-overlay-color(red($foreground), red($background));
+ $bm-green: blend-overlay-color(green($foreground), green($background));
+ $bm-blue: blend-overlay-color(blue($foreground), blue($background));
+
+ @return blend-normal(rgba($bm-red, $bm-green, $bm-blue, opacity($foreground)), $background);
+}
+@function blend-overlay-color($foreground, $background) {
+ @if $background <= 255 / 2 {
+ $foreground: (2 * $background * $foreground) / 255;
+ } @else {
+ $foreground: 255 - (255 - 2 * ($background - (255 / 2))) * (255 - $foreground) / 255;
+ }
+ @return $foreground;
+}
+
+//--------------------------------
+// Soft Light
+//--------------------------------
+@function blend-softlight ($foreground, $background) {
+ $bm-red: blend-softlight-color(red($foreground), red($background));
+ $bm-green: blend-softlight-color(green($foreground), green($background));
+ $bm-blue: blend-softlight-color(blue($foreground), blue($background));
+
+ @return blend-normal(rgba($bm-red, $bm-green, $bm-blue, opacity($foreground)), $background);
+}
+@function blend-softlight-color($foreground, $background) {
+ @if $background < 128 {
+ $foreground: (($foreground / 2) + 64) * $background * (2 / 255);
+ } @else {
+ $foreground: 255 - (191 - ($foreground / 2)) * (255 - $background) * (2 / 255);
+ }
+ @return $foreground;
+}
+
+//--------------------------------
+// Hard Light
+//--------------------------------
+@function blend-hardlight ($foreground, $background) {
+ $bm-red: blend-hardlight-color(red($foreground), red($background));
+ $bm-green: blend-hardlight-color(green($foreground), green($background));
+ $bm-blue: blend-hardlight-color(blue($foreground), blue($background));
+
+ @return blend-normal(rgba($bm-red, $bm-green, $bm-blue, opacity($foreground)), $background);
+}
+@function blend-hardlight-color($foreground, $background) {
+ $tmp-blend: $foreground;
+ @if $tmp-blend < 128 {
+ $foreground: $background * $tmp-blend * (2 / 255);
+ } @else {
+ $foreground: 255 - (255-$background) * (255-$tmp-blend) * (2 / 255);
+ }
+ @return $foreground;
+}
+
+//--------------------------------
+// Color Dodge
+//--------------------------------
+@function blend-colordodge ($foreground, $background) {
+ $bm-red: blend-colordodge-color(red($foreground), red($background));
+ $bm-green: blend-colordodge-color(green($foreground), green($background));
+ $bm-blue: blend-colordodge-color(blue($foreground), blue($background));
+
+ @return blend-normal(rgba($bm-red, $bm-green, $bm-blue, opacity($foreground)), $background);
+}
+@function blend-colordodge-color($foreground, $background) {
+ $tmp: $background * 256 / (255 - $foreground);
+ @if $tmp > 255 or $foreground == 255 {
+ $foreground: 255;
+ } @else {
+ $foreground: $tmp;
+ }
+ @return $foreground;
+}
+
+//--------------------------------
+// Color Burn
+//--------------------------------
+@function blend-colorburn ($foreground, $background) {
+ $bm-red: blend-colorburn-color(red($foreground), red($background));
+ $bm-green: blend-colorburn-color(green($foreground), green($background));
+ $bm-blue: blend-colorburn-color(blue($foreground), blue($background));
+
+ @return blend-normal(rgba($bm-red, $bm-green, $bm-blue, opacity($foreground)), $background);
+}
+@function blend-colorburn-color($foreground, $background) {
+ $tmp: (255 - ((255 - $background) * 255) / $foreground);
+
+ // TODO: hacked to replicate photoshop
+ @if $foreground == 0 {
+ $foreground: 255;
+ } @elseif $tmp < 0 {
+ $foreground: 0;
+ } @else {
+ $foreground: $tmp;
+ }
+ @return $foreground;
+}
+
+//--------------------------------
+// Linear Light
+//--------------------------------
+@function blend-linearlight ($foreground, $background) {
+ $bm-red: blend-linearlight-color(red($foreground), red($background));
+ $bm-green: blend-linearlight-color(green($foreground), green($background));
+ $bm-blue: blend-linearlight-color(blue($foreground), blue($background));
+
+ @return blend-normal(rgba($bm-red, $bm-green, $bm-blue, opacity($foreground)), $background);
+}
+@function blend-linearlight-color($foreground, $background) {
+ @if $foreground < 128 {
+ $foreground: blend-linearburn-color($background, 2 * $foreground);
+ } @else {
+ $foreground: blend-lineardodge-color($background, 2 * ($foreground - 128));
+ }
+ @return $foreground;
+}
+
+//--------------------------------
+// Vivid Light
+//--------------------------------
+@function blend-vividlight ($foreground, $background) {
+ $bm-red: blend-vividlight-color(red($foreground), red($background));
+ $bm-green: blend-vividlight-color(green($foreground), green($background));
+ $bm-blue: blend-vividlight-color(blue($foreground), blue($background));
+
+ @return blend-normal(rgba($bm-red, $bm-green, $bm-blue, opacity($foreground)), $background);
+}
+
+@function blend-vividlight-color($foreground, $background) {
+ @if $foreground < 128 {
+ $foreground: blend-colorburn-color(2 * $foreground, $background);
+ } @else {
+ $foreground: blend-colordodge-color(2 * ($foreground - 128), $background);
+ }
+ @return $foreground;
+}
+
+//--------------------------------
+// Pin Light
+//--------------------------------
+@function blend-pinlight ($foreground, $background) {
+ $bm-red: blend-pinlight-color(red($foreground), red($background));
+ $bm-green: blend-pinlight-color(green($foreground), green($background));
+ $bm-blue: blend-pinlight-color(blue($foreground), blue($background));
+
+ @return blend-normal(rgba($bm-red, $bm-green, $bm-blue, opacity($foreground)), $background);
+}
+
+@function blend-pinlight-color($foreground, $background) {
+ @if $foreground < 128 {
+ $foreground: blend-darken-color($background, 2 * $foreground);
+ } @else {
+ $foreground: blend-lighten-color($background, 2 * ($foreground - 128));
+ }
+ @return $foreground;
+}
+
+//--------------------------------
+// Hard Mix
+//--------------------------------
+@function blend-hardmix ($foreground, $background) {
+ $bm-red: blend-hardmix-color(red($foreground), red($background));
+ $bm-green: blend-hardmix-color(green($foreground), green($background));
+ $bm-blue: blend-hardmix-color(blue($foreground), blue($background));
+
+ @return blend-normal(rgba($bm-red, $bm-green, $bm-blue, opacity($foreground)), $background);
+}
+
+@function blend-hardmix-color($foreground, $background) {
+ $tmp: blend-vividlight-color($foreground, $background);
+ @if $tmp < 128 {
+ $foreground: 0;
+ } @else {
+ $foreground: 255;
+ }
+ @return $foreground;
+}
+
+
+// Unique to Photoshop
+
+//--------------------------------
+// Color Blend
+//--------------------------------
+@function blend-colorblend ($foreground, $background) {
+ $foreground-hsv: color-to-hsv($foreground);
+ $background-hsv: color-to-hsv($background);
+
+ $bm-hsv: nth($foreground-hsv, 1), nth($foreground-hsv, 2), nth($background-hsv, 3);
+ $bm-color: hsv-to-color($bm-hsv);
+
+ @return blend-normal(rgba(red($bm-color), green($bm-color), blue($bm-color), opacity($foreground)), $background);
+}
+
+//--------------------------------
+// Dissolve
+//--------------------------------
+@function blend-dissolve ($foreground, $background) {
+ // The Dissolve blend mode acts on transparent and partially transparent pixels
+ // it treats transparency as a pixel pattern and applies a diffusion dither pattern.
+ // @see http://photoblogstop.com/photoshop/photoshop-blend-modes-explained
+ @return $foreground;
+}
+
+//--------------------------------
+// Divide
+//--------------------------------
+@function blend-divide ($foreground, $background) {
+ $bm-red: blend-divide-colors(red($foreground), red($background));
+ $bm-green: blend-divide-colors(green($foreground), green($background));
+ $bm-blue:blend-divide-colors(blue($foreground), blue($background));
+
+ @return blend-normal(rgba($bm-red, $bm-green, $bm-blue, opacity($foreground)), $background);
+}
+@function blend-divide-colors($foreground, $background) {
+ @return min((($background / 255) / ($foreground / 255)) * 255, 255);
+}
+
+//--------------------------------
+// Hue
+//--------------------------------
+@function blend-hue ($foreground, $background) {
+ $foreground-hsv: color-to-hsv($foreground);
+ $background-hsv: color-to-hsv($background);
+
+ $bm-hsv: nth($foreground-hsv, 1), nth($background-hsv, 2), nth($background-hsv, 3);
+ $bm-color: hsv-to-color($bm-hsv);
+
+ @return blend-normal(rgba(red($bm-color), green($bm-color), blue($bm-color), opacity($foreground)), $background);
+}
+
+//--------------------------------
+// Luminosity
+//--------------------------------
+@function blend-luminosity ($foreground, $background) {
+ $foreground-hsv: color-to-hsv($foreground);
+ $background-hsv: color-to-hsv($background);
+
+ $bm-hsv: nth($background-hsv, 1), nth($background-hsv, 2), nth($foreground-hsv, 3);
+ $bm-color: hsv-to-color($bm-hsv);
+
+ @return blend-normal(rgba(red($bm-color), green($bm-color), blue($bm-color), opacity($foreground)), $background);
+}
+
+//--------------------------------
+// Saturation
+//--------------------------------
+@function blend-saturation ($foreground, $background) {
+ $foreground-hsv: color-to-hsv($foreground);
+ $background-hsv: color-to-hsv($background);
+
+ $bm-hsv: nth($background-hsv, 1), nth($foreground-hsv, 2), nth($background-hsv, 3);
+ $bm-color: hsv-to-color($bm-hsv);
+
+ @return blend-normal(rgba(red($bm-color), green($bm-color), blue($bm-color), opacity($foreground)), $background);
+}
+
+//--------------------------------
+// Subtract
+//--------------------------------
+@function blend-subtract ($foreground, $background) {
+ $bm-red: max(red($background) - red($foreground), 0);
+ $bm-green: max(green($background) - green($foreground), 0);
+ $bm-blue: max(blue($background) - blue($foreground), 0);
+
+ @return blend-normal(rgba($bm-red, $bm-green, $bm-blue, opacity($foreground)), $background);
+}
+
+//--------------------------------
+// HSL and HSV
+//--------------------------------
+// @see https://gist.github.com/1069204
+@function hsv-to-hsl($h, $s: 0, $v: 0) {
+ @if type-of($h) == 'list' {
+ $v: nth($h, 3);
+ $s: nth($h, 2);
+ $h: nth($h, 1);
+ }
+
+ @if unit($h) == 'deg' {
+ $h: 3.1415 * 2 * ($h / 360deg);
+ }
+ @if unit($s) == '%' {
+ $s: 0 + ($s / 100%);
+ }
+ @if unit($v) == '%' {
+ $v: 0 + ($v / 100%);
+ }
+
+ $ss: $s * $v;
+ $ll: (2 - $s) * $v;
+
+ @if $ll <= 1 {
+ $ss: $ss / $ll;
+ } @else if ($ll == 2) {
+ $ss: 0;
+ } @else {
+ $ss: $ss / (2 - $ll);
+ }
+
+ $ll: $ll / 2;
+
+ @return 360deg * $h / (3.1415 * 2), percentage(max(0, min(1, $ss))), percentage(max(0, min(1, $ll)));
+}
+
+@function hsl-to-hsv($h, $ss: 0, $ll: 0) {
+ @if type-of($h) == 'list' {
+ $ll: nth($h, 3);
+ $ss: nth($h, 2);
+ $h: nth($h, 1);
+ } @else if type-of($h) == 'color' {
+ $ll: lightness($h);
+ $ss: saturation($h);
+ $h: hue($h);
+ }
+
+ @if unit($h) == 'deg' {
+ $h: 3.1415 * 2 * ($h / 360deg);
+ }
+ @if unit($ss) == '%' {
+ $ss: 0 + ($ss / 100%);
+ }
+ @if unit($ll) == '%' {
+ $ll: 0 + ($ll / 100%);
+ }
+
+ $ll: $ll * 2;
+
+ @if $ll <= 1 {
+ $ss: $ss * $ll;
+ } @else {
+ $ss: $ss * (2 - $ll);
+ }
+
+ $v: ($ll + $ss) / 2;
+ $s: (2 * $ss) / ($ll + $ss);
+
+ @return 360deg * $h / (3.1415 * 2), percentage(max(0, min(1, $s))), percentage(max(0, min(1, $v)));
+}
+
+@function color-to-hsv($color) {
+ @return hsl-to-hsv($color);
+}
+
+@function hsv-to-color($h, $s: 0, $v: 0) {
+ $hsl: hsv-to-hsl($h, $s, $v);
+ @return hsl(nth($hsl, 1), nth($hsl, 2), nth($hsl, 3));
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/util/_color.scss b/WebContent/VAADIN/themes/valo/util/_color.scss
new file mode 100644
index 0000000000..77fe0ed5c7
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/_color.scss
@@ -0,0 +1,111 @@
+@import "blend-modes";
+
+// Returns the luminance of a color (0-255)
+// (perceived brightness, rather than absolute mathematical lightness value)
+//
+// "The luminance calculation is a weighted average of the color channels that approximates
+// how humans perceive brightness, while lightness is just an average of the largest and
+// smallest channels without regard to perception."
+//
+// Source for equation: http://en.wikipedia.org/wiki/Luminance_(relative)
+@function color-luminance ($color) {
+ @return 0.2126 * red($color) + 0.7152 * green($color) + 0.0722 * blue($color);
+}
+
+
+@function luminance-diff($color1, $color2) {
+ @return abs(color-luminance($color1) - color-luminance($color2));
+}
+
+@function saturation-diff($color1, $color2) {
+ @return abs(saturation($color1) - saturation($color2));
+}
+
+@function hue-diff($color1, $color2) {
+ @return abs(hue($color1) - hue($color2));
+}
+
+
+// Arbitrary luminance threshold after which colors should be adjusted either darker or lighter
+$v-luminance-threshold: 150 !default;
+
+
+
+@function black($opacity: 1) {
+ @return transparentize(#000, 1 - $opacity);
+}
+
+@function white($opacity: 1) {
+ @return transparentize(#fff, 1 - $opacity);
+}
+
+
+
+@function is-dark-color($bg-color) {
+ $luminance: color-luminance($bg-color);
+ @if $luminance < $v-luminance-threshold or (saturation($bg-color) > 80% and ($luminance < $v-luminance-threshold + 20)) {
+ @return true;
+ } @else {
+ @return false;
+ }
+}
+
+// Returns a text color with enough contrast for the given background color
+//
+@function v-valo-font-color ($bg-color, $contrast: 0.8) {
+ @if $bg-color {
+ @if is-dark-color($bg-color) {
+ @return scale_color($bg-color, $lightness: min(100%, 100% * $contrast), $saturation: max(-100%, -50% * $contrast));
+ } @else {
+ @return scale_color($bg-color, $lightness: max(-100%, -100% * $contrast * 0.9), $saturation: max(-100%, -50% * $contrast));
+ }
+ }
+ @return null;
+}
+
+
+@function v-valo-header-color ($bg-color, $contrast: 1) {
+ $font-color: v-valo-font-color($bg-color);
+ @if is-dark-color($bg-color) {
+ @return lighten($font-color, 30% * $contrast);
+ } @else {
+ @return darken($font-color, 20% * $contrast);
+ }
+}
+
+
+
+
+@function v-valo-focus-color ($color: null, $context: null) {
+ $context: $context or $v-app-background-color;
+
+ $fallback: $context;
+ @if is-dark-color($fallback) {
+ $fallback: scale-color($fallback, $lightness: 40%, $saturation: 80%);
+ } @else {
+ $fallback: scale-color($fallback, $lightness: -50%, $saturation: 80%);
+ }
+
+ $focus-color: $color or $v-focus-color or $fallback;
+ //@if luminance-diff($context, $focus-color) < 30 or (luminance-diff($context, $focus-color) < 10 and saturation-diff($context, $focus-color) < 20%) {
+ // $focus-color: #fff;
+ //}
+ @return $focus-color;
+}
+
+
+
+@function v-valo-focus-box-shadow ($color: null, $focus-style: $v-focus-style) {
+ $focus-color: v-valo-focus-color($color: $color);
+ @return replace($focus-style, focus-color, transparentize($focus-color, .5));
+}
+
+
+
+@function v-valo-selection-color ($color: null, $context: null) {
+ $selection-color: $color or $v-selection-color or v-valo-focus-color($color: $color, $context: $context);
+ //@if luminance-diff($context, $selection-color) < 30 or (luminance-diff($context, $selection-color) < 10 and saturation-diff($context, $selection-color) < 20%) {
+ // $selection-color: #fff;
+ //}
+ @return $selection-color;
+}
diff --git a/WebContent/VAADIN/themes/valo/util/_css3.scss b/WebContent/VAADIN/themes/valo/util/_css3.scss
new file mode 100644
index 0000000000..c04930512c
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/_css3.scss
@@ -0,0 +1,28 @@
+@mixin opacity ($o, $important: false) {
+ $imp: "";
+
+ @if $important {
+ $imp: "!important";
+ }
+
+ opacity: $o #{unquote($imp)};
+
+ @if $o < 1 {
+ filter: alpha(opacity=$o*100) #{unquote($imp)};
+ } @else {
+ filter: none #{unquote($imp)};
+ }
+}
+
+
+@mixin border-radius ($br) {
+ -webkit-border-radius: $br;
+ border-radius: $br;
+}
+
+
+@mixin width-breakpoint ($point) {
+ @media (max-width: $point) {
+ @content;
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/util/_gradient.scss b/WebContent/VAADIN/themes/valo/util/_gradient.scss
new file mode 100644
index 0000000000..6266fe9864
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/_gradient.scss
@@ -0,0 +1,31 @@
+@mixin v-valo-gradient($color, $style: $v-gradient-style, $depth: $v-gradient-depth, $fallback: null, $direction: to bottom) {
+ @if $color {
+ @if $depth <= 0 {
+ background: $fallback or $color;
+ } @else {
+ $color-stops: v-valo-gradient-color-stops($color, $style, $depth);
+ @include linear-gradient($direction, $color-stops, $fallback: $fallback or $color);
+ }
+ }
+}
+
+@function v-valo-gradient-color-stops($color, $style: $v-gradient-style, $depth: $v-gradient-depth) {
+ @if $depth > 0 {
+
+ @if $style == linear or $style == linear-reverse {
+ $start: blend-overlay(transparentize(#fff, 1-$depth/100%), $color);
+ $end: blend-overlay(transparentize(#000, max(0, 1-$depth/100%)), $color);
+ $end: blend-multiply(transparentize(#000, max(0, 1-$depth/200%)), $end);
+
+ @if $style == linear {
+ @return $start 2%, $end 98%;
+ } @else {
+ @return $end 2%, $start 98%;
+ }
+
+ }
+
+ }
+
+ @return $color 0%, $color 100%;
+}
diff --git a/WebContent/VAADIN/themes/valo/util/_lists.scss b/WebContent/VAADIN/themes/valo/util/_lists.scss
new file mode 100644
index 0000000000..aad9c2f611
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/_lists.scss
@@ -0,0 +1,279 @@
+@function contains ($list, $var, $recursive: false) {
+ @if $recursive == false {
+ @return (false != index($list, $var));
+ }
+
+ $ret: false;
+ @each $item in $list {
+ @if type-of($item) == list and $recursive {
+ @if contains($item, $var, true) {
+ @return true;
+ }
+ } @else if $item == $var {
+ @return true;
+ }
+ }
+
+ @return false;
+}
+
+// Author: Hugo Giraudel
+// Repository: https://github.com/Team-Sass/Sass-list-functions
+// License: MIT
+
+
+@function first($list) {
+ @return nth($list, 1);
+}
+
+
+@function last($list) {
+ @return nth($list, length($list));
+}
+
+
+@function last-index($list, $value) {
+ @for $i from length($list)*-1 through -1 {
+ @if nth($list, abs($i)) == $value {
+ @return abs($i);
+ }
+ }
+
+ @return null;
+}
+
+
+@function to-string($list, $glue: '', $is-nested: false) {
+ $result: null;
+
+ @for $i from 1 through length($list) {
+ $e: nth($list, $i);
+
+ @if type-of($e) == list {
+ $result: $result#{to-string($e, $glue, true)};
+ }
+
+ @else {
+ $result: if($i != length($list) or $is-nested, $result#{$e}#{$glue}, $result#{$e});
+ }
+ }
+
+ @return $result;
+}
+
+
+@function prepend($list, $value) {
+ @return join($value, $list);
+}
+
+
+@function insert-nth($list, $index, $value) {
+ $result: false;
+
+ @if type-of($index) != number {
+ @warn "$index: #{quote($index)} is not a number for `insert-nth`.";
+ @return $result;
+ }
+
+ @else if $index < 1 {
+ @warn "List index 0 must be a non-zero integer for `insert-nth`";
+ @return $result;
+ }
+
+ @else if $index > length($list) {
+ @warn "List index is #{$index} but list is only #{length($list)} item long for `insert-nth'.";
+ @return $result;
+ }
+
+ @else {
+ $result: ();
+
+ @for $i from 1 through length($list) {
+ @if $i == $index {
+ $result: append($result, $value);
+ }
+
+ $result: append($result, nth($list, $i));
+ }
+ }
+
+ @return $result;
+}
+
+
+@function replace-nth($list, $index, $value) {
+ $result: false;
+
+ @if type-of($index) != number {
+ @warn "$index: #{quote($index)} is not a number for `replace-nth`.";
+ @return $result;
+ }
+
+ @else if $index == 0 {
+ @warn "List index 0 must be a non-zero integer for `replace-nth`.";
+ @return $result;
+ }
+
+ @else if abs($index) > length($list) {
+ @warn "List index is #{$index} but list is only #{length($list)} item long for `replace-nth`.";
+ @return $result;
+ }
+
+ @else {
+ $result: ();
+ $index: if($index < 0, length($list) + $index + 1, $index);
+
+ @for $i from 1 through length($list) {
+ @if $i == $index {
+ $result: append($result, $value);
+ }
+
+ @else {
+ $result: append($result, nth($list, $i));
+ }
+ }
+ }
+
+ @return $result;
+}
+
+
+@function replace($list, $old-value, $new-value, $recursive: false) {
+ $result: ();
+
+ @for $i from 1 through length($list) {
+ @if type-of(nth($list, $i)) == list and $recursive {
+ $result: append($result, replace(nth($list, $i), $old-value, $new-value, $recursive));
+ }
+
+ @else {
+ @if nth($list, $i) == $old-value {
+ $result: append($result, $new-value);
+ }
+
+ @else {
+ $result: append($result, nth($list, $i));
+ }
+ }
+ }
+
+ @return $result;
+}
+
+
+@function remove-nth($list, $index) {
+ $result: false;
+
+ @if type-of($index) != number {
+ @warn "$index: #{quote($index)} is not a number for `remove-nth`.";
+ @return $result;
+ }
+
+ @else if $index == 0 {
+ @warn "List index 0 must be a non-zero integer for `remove-nth`.";
+ @return $result;
+ }
+
+ @else if abs($index) > length($list) {
+ @warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`.";
+ @return $result;
+ }
+
+ @else {
+ $result: ();
+ $index: if($index < 0, length($list) + $index + 1, $index);
+
+ @for $i from 1 through length($list) {
+ @if $i != $index {
+ $result: append($result, nth($list, $i));
+ }
+ }
+ }
+
+ @return $result;
+}
+
+
+@function remove($list, $value, $recursive: false) {
+ $result: ();
+
+ @for $i from 1 through length($list) {
+ @if type-of(nth($list, $i)) == list and $recursive {
+ $result: append($result, remove(nth($list, $i), $value, $recursive));
+ }
+
+ @else if nth($list, $i) != $value {
+ $result: append($result, nth($list, $i));
+ }
+ }
+
+ @return $result;
+}
+
+
+@function slice($list, $start: 1, $end: length($list)) {
+ $result: false;
+
+ @if type-of($start) != number or type-of($end) != number {
+ @warn "Either $start or $end are not a number for `slice`.";
+ @return $result;
+ }
+
+ @else if $start > $end {
+ @warn "The start index has to be lesser than or equals to the end index for `slice`.";
+ @return $result;
+ }
+
+ @else if $start < 1 or $end < 1 {
+ @warn "List indexes must be non-zero integers for `slice`.";
+ @return $result;
+ }
+
+ @else if $start > length($list) {
+ @warn "List index is #{$start} but list is only #{length($list)} item long for `slice`.";
+ @return $result;
+ }
+
+ @else if $end > length($list) {
+ @warn "List index is #{$end} but list is only #{length($list)} item long for `slice`.";
+ @return $result;
+ }
+
+ @else {
+ $result: ();
+
+ @for $i from $start through $end {
+ $result: append($result, nth($list, $i));
+ }
+ }
+
+ @return $result;
+}
+
+
+@function reverse($list, $recursive: false) {
+ $result: ();
+
+ @for $i from length($list)*-1 through -1 {
+ @if type-of(nth($list, abs($i))) == list and $recursive {
+ $result: append($result, reverse(nth($list, abs($i)), $recursive));
+ }
+
+ @else {
+ $result: append($result, nth($list, abs($i)));
+ }
+ }
+
+ @return $result;
+}
+
+
+@function shift($list, $value: 1) {
+ $result: ();
+
+ @for $i from 0 to length($list) {
+ $result: append($result, nth($list, ($i - $value) % length($list) + 1));
+ }
+
+ @return $result;
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/util/_util.scss b/WebContent/VAADIN/themes/valo/util/_util.scss
new file mode 100644
index 0000000000..0472275c88
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/_util.scss
@@ -0,0 +1,45 @@
+// Align element vertically inside
+@mixin vertical-align-guide ($to-align: (), $align: middle, $pseudo-element: after) {
+ &:#{$pseudo-element} {
+ content: "";
+ display: inline-block;
+ width: 0;
+ height: 100%;
+ vertical-align: middle;
+ }
+
+ @if length($to-align) > 0 {
+ @each $selector in $to-align {
+ & > #{unquote($selector)} {
+ vertical-align: $align;
+ }
+ }
+ }
+}
+
+
+// Calculates the (approximated) square root for a given number
+@function sqrt($number) {
+ $guess: rand();
+ $root: 4; // Academic guess, a.k.a random number
+ @for $i from 1 through 10 {
+ $root: $root - ($root*$root - $number) / (2 * $root);
+ }
+ @return $root;
+}
+
+
+
+
+@mixin v-valo-round {
+ border-radius: 50%;
+}
+
+
+
+
+@mixin v-valo-tappable {
+ @include user-select(none);
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+ -webkit-touch-callout: none;
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/_bourbon-deprecated-upcoming.scss b/WebContent/VAADIN/themes/valo/util/bourbon/_bourbon-deprecated-upcoming.scss
new file mode 100644
index 0000000000..5332496d82
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/_bourbon-deprecated-upcoming.scss
@@ -0,0 +1,13 @@
+//************************************************************************//
+// These mixins/functions are deprecated
+// They will be removed in the next MAJOR version release
+//************************************************************************//
+@mixin box-shadow ($shadows...) {
+ @include prefixer(box-shadow, $shadows, spec);
+ @warn "box-shadow is deprecated and will be removed in the next major version release";
+}
+
+@mixin background-size ($lengths...) {
+ @include prefixer(background-size, $lengths, spec);
+ @warn "background-size is deprecated and will be removed in the next major version release";
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/_bourbon.scss b/WebContent/VAADIN/themes/valo/util/bourbon/_bourbon.scss
new file mode 100644
index 0000000000..e97b2fe8d4
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/_bourbon.scss
@@ -0,0 +1,69 @@
+// Settings
+@import "settings/prefixer";
+@import "settings/px-to-em";
+
+// Custom Helpers
+@import "helpers/gradient-positions-parser";
+@import "helpers/linear-positions-parser";
+@import "helpers/radial-arg-parser";
+@import "helpers/radial-positions-parser";
+@import "helpers/render-gradients";
+@import "helpers/shape-size-stripper";
+
+// Custom Functions
+@import "functions/flex-grid";
+@import "functions/grid-width";
+@import "functions/golden-ratio";
+@import "functions/linear-gradient";
+@import "functions/modular-scale";
+@import "functions/px-to-em";
+@import "functions/radial-gradient";
+@import "functions/strip-units";
+@import "functions/tint-shade";
+@import "functions/transition-property-name";
+@import "functions/unpack";
+
+// CSS3 Mixins
+@import "css3/animation";
+@import "css3/appearance";
+@import "css3/backface-visibility";
+@import "css3/background";
+@import "css3/background-image";
+@import "css3/border-image";
+@import "css3/border-radius";
+@import "css3/box-sizing";
+@import "css3/calc";
+@import "css3/columns";
+@import "css3/flex-box";
+@import "css3/font-face";
+@import "css3/hyphens";
+@import "css3/hidpi-media-query";
+@import "css3/image-rendering";
+@import "css3/inline-block";
+@import "css3/keyframes";
+@import "css3/linear-gradient";
+@import "css3/perspective";
+@import "css3/radial-gradient";
+@import "css3/transform";
+@import "css3/transition";
+@import "css3/user-select";
+@import "css3/placeholder";
+
+// Addons & other mixins
+@import "addons/button";
+@import "addons/clearfix";
+@import "addons/directional-values";
+@import "addons/ellipsis";
+@import "addons/font-family";
+@import "addons/hide-text";
+//@import "addons/html5-input-types";
+@import "addons/position";
+@import "addons/prefixer";
+@import "addons/rem";
+@import "addons/retina-image";
+@import "addons/size";
+@import "addons/timing-functions";
+@import "addons/triangle";
+
+// Soon to be deprecated Mixins
+@import "bourbon-deprecated-upcoming";
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/addons/_button.scss b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_button.scss
new file mode 100644
index 0000000000..fcc39fdf35
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_button.scss
@@ -0,0 +1,273 @@
+@mixin button ($style: simple, $base-color: #4294f0) {
+
+ @if type-of($style) == color {
+ $base-color: $style;
+ $style: simple;
+ }
+
+ // Grayscale button
+ @if $base-color == grayscale($base-color) {
+ @if $style == simple {
+ @include simple($base-color, $grayscale: true);
+ }
+
+ @else if $style == shiny {
+ @include shiny($base-color, $grayscale: true);
+ }
+
+ @else if $style == pill {
+ @include pill($base-color, $grayscale: true);
+ }
+ }
+
+ // Colored button
+ @else {
+ @if $style == simple {
+ @include simple($base-color);
+ }
+
+ @else if $style == shiny {
+ @include shiny($base-color);
+ }
+
+ @else if $style == pill {
+ @include pill($base-color);
+ }
+ }
+
+ &:disabled {
+ opacity: 0.5;
+ cursor: not-allowed;
+ }
+}
+
+
+// Simple Button
+//************************************************************************//
+@mixin simple($base-color, $grayscale: false) {
+ $color: hsl(0, 0, 100%);
+ $border: adjust-color($base-color, $saturation: 9%, $lightness: -14%);
+ $inset-shadow: adjust-color($base-color, $saturation: -8%, $lightness: 15%);
+ $stop-gradient: adjust-color($base-color, $saturation: 9%, $lightness: -11%);
+ $text-shadow: adjust-color($base-color, $saturation: 15%, $lightness: -18%);
+
+ @if lightness($base-color) > 70% {
+ $color: hsl(0, 0, 20%);
+ $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
+ }
+
+ @if $grayscale == true {
+ $border: grayscale($border);
+ $inset-shadow: grayscale($inset-shadow);
+ $stop-gradient: grayscale($stop-gradient);
+ $text-shadow: grayscale($text-shadow);
+ }
+
+ border: 1px solid $border;
+ border-radius: 3px;
+ box-shadow: inset 0 1px 0 0 $inset-shadow;
+ color: $color;
+ display: inline-block;
+ font-size: inherit;
+ font-weight: bold;
+ @include linear-gradient ($base-color, $stop-gradient);
+ padding: 7px 18px;
+ text-decoration: none;
+ text-shadow: 0 1px 0 $text-shadow;
+ background-clip: padding-box;
+
+ &:hover:not(:disabled) {
+ $base-color-hover: adjust-color($base-color, $saturation: -4%, $lightness: -5%);
+ $inset-shadow-hover: adjust-color($base-color, $saturation: -7%, $lightness: 5%);
+ $stop-gradient-hover: adjust-color($base-color, $saturation: 8%, $lightness: -14%);
+
+ @if $grayscale == true {
+ $base-color-hover: grayscale($base-color-hover);
+ $inset-shadow-hover: grayscale($inset-shadow-hover);
+ $stop-gradient-hover: grayscale($stop-gradient-hover);
+ }
+
+ box-shadow: inset 0 1px 0 0 $inset-shadow-hover;
+ cursor: pointer;
+ @include linear-gradient ($base-color-hover, $stop-gradient-hover);
+ }
+
+ &:active:not(:disabled) {
+ $border-active: adjust-color($base-color, $saturation: 9%, $lightness: -14%);
+ $inset-shadow-active: adjust-color($base-color, $saturation: 7%, $lightness: -17%);
+
+ @if $grayscale == true {
+ $border-active: grayscale($border-active);
+ $inset-shadow-active: grayscale($inset-shadow-active);
+ }
+
+ border: 1px solid $border-active;
+ box-shadow: inset 0 0 8px 4px $inset-shadow-active, inset 0 0 8px 4px $inset-shadow-active, 0 1px 1px 0 #eee;
+ }
+}
+
+
+// Shiny Button
+//************************************************************************//
+@mixin shiny($base-color, $grayscale: false) {
+ $color: hsl(0, 0, 100%);
+ $border: adjust-color($base-color, $red: -117, $green: -111, $blue: -81);
+ $border-bottom: adjust-color($base-color, $red: -126, $green: -127, $blue: -122);
+ $fourth-stop: adjust-color($base-color, $red: -79, $green: -70, $blue: -46);
+ $inset-shadow: adjust-color($base-color, $red: 37, $green: 29, $blue: 12);
+ $second-stop: adjust-color($base-color, $red: -56, $green: -50, $blue: -33);
+ $text-shadow: adjust-color($base-color, $red: -140, $green: -141, $blue: -114);
+ $third-stop: adjust-color($base-color, $red: -86, $green: -75, $blue: -48);
+
+ @if lightness($base-color) > 70% {
+ $color: hsl(0, 0, 20%);
+ $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
+ }
+
+ @if $grayscale == true {
+ $border: grayscale($border);
+ $border-bottom: grayscale($border-bottom);
+ $fourth-stop: grayscale($fourth-stop);
+ $inset-shadow: grayscale($inset-shadow);
+ $second-stop: grayscale($second-stop);
+ $text-shadow: grayscale($text-shadow);
+ $third-stop: grayscale($third-stop);
+ }
+
+ border: 1px solid $border;
+ border-bottom: 1px solid $border-bottom;
+ border-radius: 5px;
+ box-shadow: inset 0 1px 0 0 $inset-shadow;
+ color: $color;
+ display: inline-block;
+ font-size: inherit;
+ font-weight: bold;
+ @include linear-gradient(top, $base-color 0%, $second-stop 50%, $third-stop 50%, $fourth-stop 100%);
+ padding: 8px 20px;
+ text-align: center;
+ text-decoration: none;
+ text-shadow: 0 -1px 1px $text-shadow;
+
+ &:hover:not(:disabled) {
+ $first-stop-hover: adjust-color($base-color, $red: -13, $green: -15, $blue: -18);
+ $second-stop-hover: adjust-color($base-color, $red: -66, $green: -62, $blue: -51);
+ $third-stop-hover: adjust-color($base-color, $red: -93, $green: -85, $blue: -66);
+ $fourth-stop-hover: adjust-color($base-color, $red: -86, $green: -80, $blue: -63);
+
+ @if $grayscale == true {
+ $first-stop-hover: grayscale($first-stop-hover);
+ $second-stop-hover: grayscale($second-stop-hover);
+ $third-stop-hover: grayscale($third-stop-hover);
+ $fourth-stop-hover: grayscale($fourth-stop-hover);
+ }
+
+ cursor: pointer;
+ @include linear-gradient(top, $first-stop-hover 0%,
+ $second-stop-hover 50%,
+ $third-stop-hover 50%,
+ $fourth-stop-hover 100%);
+ }
+
+ &:active:not(:disabled) {
+ $inset-shadow-active: adjust-color($base-color, $red: -111, $green: -116, $blue: -122);
+
+ @if $grayscale == true {
+ $inset-shadow-active: grayscale($inset-shadow-active);
+ }
+
+ box-shadow: inset 0 0 20px 0 $inset-shadow-active, 0 1px 0 #fff;
+ }
+}
+
+
+// Pill Button
+//************************************************************************//
+@mixin pill($base-color, $grayscale: false) {
+ $color: hsl(0, 0, 100%);
+ $border-bottom: adjust-color($base-color, $hue: 8, $saturation: -11%, $lightness: -26%);
+ $border-sides: adjust-color($base-color, $hue: 4, $saturation: -21%, $lightness: -21%);
+ $border-top: adjust-color($base-color, $hue: -1, $saturation: -30%, $lightness: -15%);
+ $inset-shadow: adjust-color($base-color, $hue: -1, $saturation: -1%, $lightness: 7%);
+ $stop-gradient: adjust-color($base-color, $hue: 8, $saturation: 14%, $lightness: -10%);
+ $text-shadow: adjust-color($base-color, $hue: 5, $saturation: -19%, $lightness: -15%);
+
+ @if lightness($base-color) > 70% {
+ $color: hsl(0, 0, 20%);
+ $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
+ }
+
+ @if $grayscale == true {
+ $border-bottom: grayscale($border-bottom);
+ $border-sides: grayscale($border-sides);
+ $border-top: grayscale($border-top);
+ $inset-shadow: grayscale($inset-shadow);
+ $stop-gradient: grayscale($stop-gradient);
+ $text-shadow: grayscale($text-shadow);
+ }
+
+ border: 1px solid $border-top;
+ border-color: $border-top $border-sides $border-bottom;
+ border-radius: 16px;
+ box-shadow: inset 0 1px 0 0 $inset-shadow, 0 1px 2px 0 #b3b3b3;
+ color: $color;
+ display: inline-block;
+ font-size: inherit;
+ font-weight: normal;
+ line-height: 1;
+ @include linear-gradient ($base-color, $stop-gradient);
+ padding: 5px 16px;
+ text-align: center;
+ text-decoration: none;
+ text-shadow: 0 -1px 1px $text-shadow;
+ background-clip: padding-box;
+
+ &:hover:not(:disabled) {
+ $base-color-hover: adjust-color($base-color, $lightness: -4.5%);
+ $border-bottom: adjust-color($base-color, $hue: 8, $saturation: 13.5%, $lightness: -32%);
+ $border-sides: adjust-color($base-color, $hue: 4, $saturation: -2%, $lightness: -27%);
+ $border-top: adjust-color($base-color, $hue: -1, $saturation: -17%, $lightness: -21%);
+ $inset-shadow-hover: adjust-color($base-color, $saturation: -1%, $lightness: 3%);
+ $stop-gradient-hover: adjust-color($base-color, $hue: 8, $saturation: -4%, $lightness: -15.5%);
+ $text-shadow-hover: adjust-color($base-color, $hue: 5, $saturation: -5%, $lightness: -22%);
+
+ @if $grayscale == true {
+ $base-color-hover: grayscale($base-color-hover);
+ $border-bottom: grayscale($border-bottom);
+ $border-sides: grayscale($border-sides);
+ $border-top: grayscale($border-top);
+ $inset-shadow-hover: grayscale($inset-shadow-hover);
+ $stop-gradient-hover: grayscale($stop-gradient-hover);
+ $text-shadow-hover: grayscale($text-shadow-hover);
+ }
+
+ border: 1px solid $border-top;
+ border-color: $border-top $border-sides $border-bottom;
+ box-shadow: inset 0 1px 0 0 $inset-shadow-hover;
+ cursor: pointer;
+ @include linear-gradient ($base-color-hover, $stop-gradient-hover);
+ text-shadow: 0 -1px 1px $text-shadow-hover;
+ background-clip: padding-box;
+ }
+
+ &:active:not(:disabled) {
+ $active-color: adjust-color($base-color, $hue: 4, $saturation: -12%, $lightness: -10%);
+ $border-active: adjust-color($base-color, $hue: 6, $saturation: -2.5%, $lightness: -30%);
+ $border-bottom-active: adjust-color($base-color, $hue: 11, $saturation: 6%, $lightness: -31%);
+ $inset-shadow-active: adjust-color($base-color, $hue: 9, $saturation: 2%, $lightness: -21.5%);
+ $text-shadow-active: adjust-color($base-color, $hue: 5, $saturation: -12%, $lightness: -21.5%);
+
+ @if $grayscale == true {
+ $active-color: grayscale($active-color);
+ $border-active: grayscale($border-active);
+ $border-bottom-active: grayscale($border-bottom-active);
+ $inset-shadow-active: grayscale($inset-shadow-active);
+ $text-shadow-active: grayscale($text-shadow-active);
+ }
+
+ background: $active-color;
+ border: 1px solid $border-active;
+ border-bottom: 1px solid $border-bottom-active;
+ box-shadow: inset 0 0 6px 3px $inset-shadow-active, 0 1px 0 0 #fff;
+ text-shadow: 0 -1px 1px $text-shadow-active;
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/addons/_clearfix.scss b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_clearfix.scss
new file mode 100644
index 0000000000..783cfbc792
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_clearfix.scss
@@ -0,0 +1,23 @@
+// Modern micro clearfix provides an easy way to contain floats without adding additional markup.
+//
+// Example usage:
+//
+// // Contain all floats within .wrapper
+// .wrapper {
+// @include clearfix;
+// .content,
+// .sidebar {
+// float : left;
+// }
+// }
+
+@mixin clearfix {
+ &:after {
+ content:"";
+ display:table;
+ clear:both;
+ }
+}
+
+// Acknowledgements
+// Beat *that* clearfix: [Thierry Koblentz](http://www.css-101.org/articles/clearfix/latest-new-clearfix-so-far.php)
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/addons/_directional-values.scss b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_directional-values.scss
new file mode 100644
index 0000000000..4818f62fd8
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_directional-values.scss
@@ -0,0 +1,114 @@
+// directional-property mixins are shorthands
+// for writing properties like the following
+//
+// @include margin(null 0 10px);
+// ------
+// margin-right: 0;
+// margin-bottom: 10px;
+// margin-left: 0;
+//
+// - or -
+//
+// @include border-style(dotted null);
+// ------
+// border-top-style: dotted;
+// border-bottom-style: dotted;
+//
+// ------
+//
+// Note: You can also use false instead of null
+
+@function collapse-directionals($vals) {
+ $output: null;
+
+ $A: nth( $vals, 1 );
+ $B: if( length($vals) < 2, $A, nth($vals, 2));
+ $C: if( length($vals) < 3, $A, nth($vals, 3));
+ $D: if( length($vals) < 2, $A, nth($vals, if( length($vals) < 4, 2, 4) ));
+
+ @if $A == 0 { $A: 0 }
+ @if $B == 0 { $B: 0 }
+ @if $C == 0 { $C: 0 }
+ @if $D == 0 { $D: 0 }
+
+ @if $A == $B and $A == $C and $A == $D { $output: $A }
+ @else if $A == $C and $B == $D { $output: $A $B }
+ @else if $B == $D { $output: $A $B $C }
+ @else { $output: $A $B $C $D }
+
+ @return $output;
+}
+
+@function contains-falsy($list) {
+ @each $item in $list {
+ @if not $item {
+ @return true;
+ }
+ }
+
+ @return false;
+}
+
+@mixin directional-property($pre, $suf, $vals) {
+ // Property Names
+ $top: $pre + "-top" + if($suf, "-#{$suf}", "");
+ $bottom: $pre + "-bottom" + if($suf, "-#{$suf}", "");
+ $left: $pre + "-left" + if($suf, "-#{$suf}", "");
+ $right: $pre + "-right" + if($suf, "-#{$suf}", "");
+ $all: $pre + if($suf, "-#{$suf}", "");
+
+ // Get list inside $vals (is there a better way?)
+ @each $val in $vals { $vals: $val; }
+
+ $vals: collapse-directionals($vals);
+
+ @if contains-falsy($vals) {
+ @if nth($vals, 1) { #{$top}: nth($vals, 1); }
+
+ @if length($vals) == 1 {
+ @if nth($vals, 1) { #{$right}: nth($vals, 1); }
+ } @else {
+ @if nth($vals, 2) { #{$right}: nth($vals, 2); }
+ }
+
+ // prop: top/bottom right/left
+ @if length($vals) == 2 {
+ @if nth($vals, 1) { #{$bottom}: nth($vals, 1); }
+ @if nth($vals, 2) { #{$left}: nth($vals, 2); }
+
+ // prop: top right/left bottom
+ } @else if length($vals) == 3 {
+ @if nth($vals, 3) { #{$bottom}: nth($vals, 3); }
+ @if nth($vals, 2) { #{$left}: nth($vals, 2); }
+
+ // prop: top right bottom left
+ } @else if length($vals) == 4 {
+ @if nth($vals, 3) { #{$bottom}: nth($vals, 3); }
+ @if nth($vals, 4) { #{$left}: nth($vals, 4); }
+ }
+
+ // prop: top/right/bottom/left
+ } @else {
+ #{$all}: $vals;
+ }
+}
+
+@mixin margin($vals...) {
+ @include directional-property(margin, false, $vals);
+}
+
+@mixin padding($vals...) {
+ @include directional-property(padding, false, $vals);
+}
+
+@mixin border-style($vals...) {
+ @include directional-property(border, style, $vals);
+}
+
+@mixin border-color($vals...) {
+ @include directional-property(border, color, $vals);
+}
+
+@mixin border-width($vals...) {
+ @include directional-property(border, width, $vals);
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/addons/_ellipsis.scss b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_ellipsis.scss
new file mode 100644
index 0000000000..a8ea2a4a86
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_ellipsis.scss
@@ -0,0 +1,7 @@
+@mixin ellipsis($width: 100%) {
+ display: inline-block;
+ max-width: $width;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/addons/_font-family.scss b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_font-family.scss
new file mode 100644
index 0000000000..31f5d9ca75
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_font-family.scss
@@ -0,0 +1,5 @@
+$georgia: Georgia, Cambria, "Times New Roman", Times, serif;
+$helvetica: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
+$lucida-grande: "Lucida Grande", Tahoma, Verdana, Arial, sans-serif;
+$monospace: "Bitstream Vera Sans Mono", Consolas, Courier, monospace;
+$verdana: Verdana, Geneva, sans-serif;
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/addons/_hide-text.scss b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_hide-text.scss
new file mode 100644
index 0000000000..fc7943811d
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_hide-text.scss
@@ -0,0 +1,10 @@
+@mixin hide-text {
+ overflow: hidden;
+
+ &:before {
+ content: "";
+ display: block;
+ width: 0;
+ height: 100%;
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/addons/_html5-input-types.scss b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_html5-input-types.scss
new file mode 100644
index 0000000000..26fc879021
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_html5-input-types.scss
@@ -0,0 +1,110 @@
+//************************************************************************//
+// Generate a variable ($all-text-inputs) with a list of all html5
+// input types that have a text-based input, excluding textarea.
+// http://diveintohtml5.org/forms.html
+//************************************************************************//
+$inputs-list: 'input[type="email"]',
+ 'input[type="number"]',
+ 'input[type="password"]',
+ 'input[type="search"]',
+ 'input[type="tel"]',
+ 'input[type="text"]',
+ 'input[type="url"]',
+
+ // Webkit & Gecko may change the display of these in the future
+ 'input[type="color"]',
+ 'input[type="date"]',
+ 'input[type="datetime"]',
+ 'input[type="datetime-local"]',
+ 'input[type="month"]',
+ 'input[type="time"]',
+ 'input[type="week"]';
+
+$unquoted-inputs-list: ();
+@each $input-type in $inputs-list {
+ $unquoted-inputs-list: append($unquoted-inputs-list, unquote($input-type), comma) !global;
+}
+
+$all-text-inputs: $unquoted-inputs-list;
+
+
+// Hover Pseudo-class
+//************************************************************************//
+$all-text-inputs-hover: ();
+@each $input-type in $unquoted-inputs-list {
+ $input-type-hover: $input-type + ":hover";
+ $all-text-inputs-hover: append($all-text-inputs-hover, $input-type-hover, comma) !global;
+}
+
+// Focus Pseudo-class
+//************************************************************************//
+$all-text-inputs-focus: ();
+@each $input-type in $unquoted-inputs-list {
+ $input-type-focus: $input-type + ":focus";
+ $all-text-inputs-focus: append($all-text-inputs-focus, $input-type-focus, comma) !global;
+}
+
+// You must use interpolation on the variable:
+// #{$all-text-inputs}
+// #{$all-text-inputs-hover}
+// #{$all-text-inputs-focus}
+
+// Example
+//************************************************************************//
+// #{$all-text-inputs}, textarea {
+// border: 1px solid red;
+// }
+
+
+
+//************************************************************************//
+// Generate a variable ($all-button-inputs) with a list of all html5
+// input types that have a button-based input, excluding button.
+//************************************************************************//
+$inputs-button-list: 'input[type="button"]',
+ 'input[type="reset"]',
+ 'input[type="submit"]';
+
+$unquoted-inputs-button-list: ();
+@each $input-type in $inputs-button-list {
+ $unquoted-inputs-button-list: append($unquoted-inputs-button-list, unquote($input-type), comma);
+}
+
+$all-button-inputs: $unquoted-inputs-button-list;
+
+
+// Hover Pseudo-class
+//************************************************************************//
+$all-button-inputs-hover: ();
+@each $input-type in $unquoted-inputs-button-list {
+ $input-type-hover: $input-type + ":hover";
+ $all-button-inputs-hover: append($all-button-inputs-hover, $input-type-hover, comma);
+}
+
+// Focus Pseudo-class
+//************************************************************************//
+$all-button-inputs-focus: ();
+@each $input-type in $unquoted-inputs-button-list {
+ $input-type-focus: $input-type + ":focus";
+ $all-button-inputs-focus: append($all-button-inputs-focus, $input-type-focus, comma);
+}
+
+// Active Pseudo-class
+//************************************************************************//
+$all-button-inputs-active: ();
+@each $input-type in $unquoted-inputs-button-list {
+ $input-type-active: $input-type + ":active";
+ $all-button-inputs-active: append($all-button-inputs-active, $input-type-active, comma);
+}
+
+// You must use interpolation on the variable:
+// #{$all-button-inputs}
+// #{$all-button-inputs-hover}
+// #{$all-button-inputs-focus}
+// #{$all-button-inputs-active}
+
+// Example
+//************************************************************************//
+// #{$all-button-inputs}, button {
+// border: 1px solid red;
+// }
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/addons/_position.scss b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_position.scss
new file mode 100644
index 0000000000..aba34edcd9
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_position.scss
@@ -0,0 +1,32 @@
+@mixin position ($position: relative, $coordinates: 0 0 0 0) {
+
+ @if type-of($position) == list {
+ $coordinates: $position;
+ $position: relative;
+ }
+
+ $coordinates: unpack($coordinates);
+
+ $top: nth($coordinates, 1);
+ $right: nth($coordinates, 2);
+ $bottom: nth($coordinates, 3);
+ $left: nth($coordinates, 4);
+
+ position: $position;
+
+ @if ($top and $top == auto) or (type-of($top) == number and not unitless($top)) {
+ top: $top;
+ }
+
+ @if ($right and $right == auto) or (type-of($right) == number and not unitless($right)) {
+ right: $right;
+ }
+
+ @if ($bottom and $bottom == auto) or (type-of($bottom) == number and not unitless($bottom)) {
+ bottom: $bottom;
+ }
+
+ @if ($left and $left == auto) or (type-of($left) == number and not unitless($left)) {
+ left: $left;
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/addons/_prefixer.scss b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_prefixer.scss
new file mode 100644
index 0000000000..bac1aed2cc
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_prefixer.scss
@@ -0,0 +1,45 @@
+//************************************************************************//
+// Example: @include prefixer(border-radius, $radii, webkit ms spec);
+//************************************************************************//
+// Variables located in /settings/_prefixer.scss
+
+@mixin prefixer ($property, $value, $prefixes) {
+ @each $prefix in $prefixes {
+ @if $prefix == webkit {
+ @if $prefix-for-webkit {
+ -webkit-#{$property}: $value;
+ }
+ }
+ @else if $prefix == moz {
+ @if $prefix-for-mozilla {
+ -moz-#{$property}: $value;
+ }
+ }
+ @else if $prefix == ms {
+ @if $prefix-for-microsoft {
+ -ms-#{$property}: $value;
+ }
+ }
+ @else if $prefix == o {
+ @if $prefix-for-opera {
+ -o-#{$property}: $value;
+ }
+ }
+ @else if $prefix == spec {
+ @if $prefix-for-spec {
+ #{$property}: $value;
+ }
+ }
+ @else {
+ @warn "Unrecognized prefix: #{$prefix}";
+ }
+ }
+}
+
+@mixin disable-prefix-for-all() {
+ $prefix-for-webkit: false;
+ $prefix-for-mozilla: false;
+ $prefix-for-microsoft: false;
+ $prefix-for-opera: false;
+ $prefix-for-spec: false;
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/addons/_rem.scss b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_rem.scss
new file mode 100644
index 0000000000..ddd7022b44
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_rem.scss
@@ -0,0 +1,33 @@
+@mixin rem($property, $size, $base: $em-base) {
+ @if not unitless($base) {
+ $base: strip-units($base);
+ }
+
+ $unitless_values: ();
+ @each $num in $size {
+ @if not unitless($num) {
+ @if unit($num) == "em" {
+ $num: $num * $base;
+ }
+
+ $num: strip-units($num);
+ }
+
+ $unitless_values: append($unitless_values, $num);
+ }
+ $size: $unitless_values;
+
+ $pixel_values: ();
+ $rem_values: ();
+ @each $value in $pxval {
+ $pixel_value: $value * 1px;
+ $pixel_values: append($pixel_values, $pixel_value);
+
+ $rem_value: ($value / $base) * 1rem;
+ $rem_values: append($rem_values, $rem_value);
+ }
+
+ #{$property}: $pixel_values;
+ #{$property}: $rem_values;
+}
+
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/addons/_retina-image.scss b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_retina-image.scss
new file mode 100644
index 0000000000..7931bd1333
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_retina-image.scss
@@ -0,0 +1,31 @@
+@mixin retina-image($filename, $background-size, $extension: png, $retina-filename: null, $retina-suffix: _2x, $asset-pipeline: false) {
+ @if $asset-pipeline {
+ background-image: image-url("#{$filename}.#{$extension}");
+ }
+ @else {
+ background-image: url("#{$filename}.#{$extension}");
+ }
+
+ @include hidpi {
+ @if $asset-pipeline {
+ @if $retina-filename {
+ background-image: image-url("#{$retina-filename}.#{$extension}");
+ }
+ @else {
+ background-image: image-url("#{$filename}#{$retina-suffix}.#{$extension}");
+ }
+ }
+
+ @else {
+ @if $retina-filename {
+ background-image: url("#{$retina-filename}.#{$extension}");
+ }
+ @else {
+ background-image: url("#{$filename}#{$retina-suffix}.#{$extension}");
+ }
+ }
+
+ background-size: $background-size;
+
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/addons/_size.scss b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_size.scss
new file mode 100644
index 0000000000..342e41b79f
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_size.scss
@@ -0,0 +1,44 @@
+@mixin size($size) {
+ @if length($size) == 1 {
+ @if $size == auto {
+ width: $size;
+ height: $size;
+ }
+
+ @else if unitless($size) {
+ width: $size + px;
+ height: $size + px;
+ }
+
+ @else if not(unitless($size)) {
+ width: $size;
+ height: $size;
+ }
+ }
+
+ // Width x Height
+ @if length($size) == 2 {
+ $width: nth($size, 1);
+ $height: nth($size, 2);
+
+ @if $width == auto {
+ width: $width;
+ }
+ @else if not(unitless($width)) {
+ width: $width;
+ }
+ @else if unitless($width) {
+ width: $width + px;
+ }
+
+ @if $height == auto {
+ height: $height;
+ }
+ @else if not(unitless($height)) {
+ height: $height;
+ }
+ @else if unitless($height) {
+ height: $height + px;
+ }
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/addons/_timing-functions.scss b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_timing-functions.scss
new file mode 100644
index 0000000000..51b2410914
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_timing-functions.scss
@@ -0,0 +1,32 @@
+// CSS cubic-bezier timing functions. Timing functions courtesy of jquery.easie (github.com/jaukia/easie)
+// Timing functions are the same as demo'ed here: http://jqueryui.com/demos/effect/easing.html
+
+// EASE IN
+$ease-in-quad: cubic-bezier(0.550, 0.085, 0.680, 0.530);
+$ease-in-cubic: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+$ease-in-quart: cubic-bezier(0.895, 0.030, 0.685, 0.220);
+$ease-in-quint: cubic-bezier(0.755, 0.050, 0.855, 0.060);
+$ease-in-sine: cubic-bezier(0.470, 0.000, 0.745, 0.715);
+$ease-in-expo: cubic-bezier(0.950, 0.050, 0.795, 0.035);
+$ease-in-circ: cubic-bezier(0.600, 0.040, 0.980, 0.335);
+$ease-in-back: cubic-bezier(0.600, -0.280, 0.735, 0.045);
+
+// EASE OUT
+$ease-out-quad: cubic-bezier(0.250, 0.460, 0.450, 0.940);
+$ease-out-cubic: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+$ease-out-quart: cubic-bezier(0.165, 0.840, 0.440, 1.000);
+$ease-out-quint: cubic-bezier(0.230, 1.000, 0.320, 1.000);
+$ease-out-sine: cubic-bezier(0.390, 0.575, 0.565, 1.000);
+$ease-out-expo: cubic-bezier(0.190, 1.000, 0.220, 1.000);
+$ease-out-circ: cubic-bezier(0.075, 0.820, 0.165, 1.000);
+$ease-out-back: cubic-bezier(0.175, 0.885, 0.320, 1.275);
+
+// EASE IN OUT
+$ease-in-out-quad: cubic-bezier(0.455, 0.030, 0.515, 0.955);
+$ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1.000);
+$ease-in-out-quart: cubic-bezier(0.770, 0.000, 0.175, 1.000);
+$ease-in-out-quint: cubic-bezier(0.860, 0.000, 0.070, 1.000);
+$ease-in-out-sine: cubic-bezier(0.445, 0.050, 0.550, 0.950);
+$ease-in-out-expo: cubic-bezier(1.000, 0.000, 0.000, 1.000);
+$ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.150, 0.860);
+$ease-in-out-back: cubic-bezier(0.680, -0.550, 0.265, 1.550);
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/addons/_triangle.scss b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_triangle.scss
new file mode 100644
index 0000000000..0e02aca2ca
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/addons/_triangle.scss
@@ -0,0 +1,45 @@
+@mixin triangle ($size, $color, $direction) {
+ height: 0;
+ width: 0;
+
+ @if ($direction == up) or ($direction == down) or ($direction == right) or ($direction == left) {
+ border-color: transparent;
+ border-style: solid;
+ border-width: $size / 2;
+
+ @if $direction == up {
+ border-bottom-color: $color;
+
+ } @else if $direction == right {
+ border-left-color: $color;
+
+ } @else if $direction == down {
+ border-top-color: $color;
+
+ } @else if $direction == left {
+ border-right-color: $color;
+ }
+ }
+
+ @else if ($direction == up-right) or ($direction == up-left) {
+ border-top: $size solid $color;
+
+ @if $direction == up-right {
+ border-left: $size solid transparent;
+
+ } @else if $direction == up-left {
+ border-right: $size solid transparent;
+ }
+ }
+
+ @else if ($direction == down-right) or ($direction == down-left) {
+ border-bottom: $size solid $color;
+
+ @if $direction == down-right {
+ border-left: $size solid transparent;
+
+ } @else if $direction == down-left {
+ border-right: $size solid transparent;
+ }
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/css3/_animation.scss b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_animation.scss
new file mode 100644
index 0000000000..08c3dbf157
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_animation.scss
@@ -0,0 +1,52 @@
+// http://www.w3.org/TR/css3-animations/#the-animation-name-property-
+// Each of these mixins support comma separated lists of values, which allows different transitions for individual properties to be described in a single style rule. Each value in the list corresponds to the value at that same position in the other properties.
+
+// Official animation shorthand property.
+@mixin animation ($animations...) {
+ @include prefixer(animation, $animations, webkit moz spec);
+}
+
+// Individual Animation Properties
+@mixin animation-name ($names...) {
+ @include prefixer(animation-name, $names, webkit moz spec);
+}
+
+
+@mixin animation-duration ($times...) {
+ @include prefixer(animation-duration, $times, webkit moz spec);
+}
+
+
+@mixin animation-timing-function ($motions...) {
+// ease | linear | ease-in | ease-out | ease-in-out
+ @include prefixer(animation-timing-function, $motions, webkit moz spec);
+}
+
+
+@mixin animation-iteration-count ($values...) {
+// infinite | <number>
+ @include prefixer(animation-iteration-count, $values, webkit moz spec);
+}
+
+
+@mixin animation-direction ($directions...) {
+// normal | alternate
+ @include prefixer(animation-direction, $directions, webkit moz spec);
+}
+
+
+@mixin animation-play-state ($states...) {
+// running | paused
+ @include prefixer(animation-play-state, $states, webkit moz spec);
+}
+
+
+@mixin animation-delay ($times...) {
+ @include prefixer(animation-delay, $times, webkit moz spec);
+}
+
+
+@mixin animation-fill-mode ($modes...) {
+// none | forwards | backwards | both
+ @include prefixer(animation-fill-mode, $modes, webkit moz spec);
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/css3/_appearance.scss b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_appearance.scss
new file mode 100644
index 0000000000..3eb16e45de
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_appearance.scss
@@ -0,0 +1,3 @@
+@mixin appearance ($value) {
+ @include prefixer(appearance, $value, webkit moz ms o spec);
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/css3/_backface-visibility.scss b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_backface-visibility.scss
new file mode 100644
index 0000000000..1161fe60dd
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_backface-visibility.scss
@@ -0,0 +1,6 @@
+//************************************************************************//
+// Backface-visibility mixin
+//************************************************************************//
+@mixin backface-visibility($visibility) {
+ @include prefixer(backface-visibility, $visibility, webkit spec);
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/css3/_background-image.scss b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_background-image.scss
new file mode 100644
index 0000000000..17016b91b9
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_background-image.scss
@@ -0,0 +1,48 @@
+//************************************************************************//
+// Background-image property for adding multiple background images with
+// gradients, or for stringing multiple gradients together.
+//************************************************************************//
+
+@mixin background-image($images...) {
+ background-image: _add-prefix($images, webkit);
+ background-image: _add-prefix($images);
+}
+
+@function _add-prefix($images, $vendor: false) {
+ $images-prefixed: ();
+ $gradient-positions: false;
+ @for $i from 1 through length($images) {
+ $type: type-of(nth($images, $i)); // Get type of variable - List or String
+
+ // If variable is a list - Gradient
+ @if $type == list {
+ $gradient-type: nth(nth($images, $i), 1); // linear or radial
+ $gradient-pos: null;
+ $gradient-args: null;
+
+ @if ($gradient-type == linear) or ($gradient-type == radial) {
+ $gradient-pos: nth(nth($images, $i), 2); // Get gradient position
+ $gradient-args: nth(nth($images, $i), 3); // Get actual gradient (red, blue)
+ }
+ @else {
+ $gradient-args: nth(nth($images, $i), 2); // Get actual gradient (red, blue)
+ }
+
+ $gradient-positions: _gradient-positions-parser($gradient-type, $gradient-pos);
+ $gradient: _render-gradients($gradient-positions, $gradient-args, $gradient-type, $vendor);
+ $images-prefixed: append($images-prefixed, $gradient, comma);
+ }
+ // If variable is a string - Image
+ @else if $type == string {
+ $images-prefixed: join($images-prefixed, nth($images, $i), comma);
+ }
+ }
+ @return $images-prefixed;
+}
+
+//Examples:
+ //@include background-image(linear-gradient(top, orange, red));
+ //@include background-image(radial-gradient(50% 50%, cover circle, orange, red));
+ //@include background-image(url("/images/a.png"), linear-gradient(orange, red));
+ //@include background-image(url("image.png"), linear-gradient(orange, red), url("image.png"));
+ //@include background-image(linear-gradient(hsla(0, 100%, 100%, 0.25) 0%, hsla(0, 100%, 100%, 0.08) 50%, transparent 50%), linear-gradient(orange, red));
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/css3/_background.scss b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_background.scss
new file mode 100644
index 0000000000..975f0a6e5f
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_background.scss
@@ -0,0 +1,103 @@
+//************************************************************************//
+// Background property for adding multiple backgrounds using shorthand
+// notation.
+//************************************************************************//
+
+@mixin background(
+ $background-1 , $background-2: null,
+ $background-3: null, $background-4: null,
+ $background-5: null, $background-6: null,
+ $background-7: null, $background-8: null,
+ $background-9: null, $background-10: null,
+ $fallback: null
+) {
+ $backgrounds: $background-1, $background-2,
+ $background-3, $background-4,
+ $background-5, $background-6,
+ $background-7, $background-8,
+ $background-9, $background-10;
+
+ $fallback-color: false;
+ @if (type-of($fallback) == color) or ($fallback == "transparent") {
+ $fallback-color: $fallback;
+ }
+ @else {
+ $fallback-color: _extract-background-color($backgrounds);
+ }
+
+ @if $fallback-color {
+ background-color: $fallback-color;
+ }
+ background: _background-add-prefix($backgrounds, webkit);
+ background: _background-add-prefix($backgrounds);
+}
+
+@function _extract-background-color($backgrounds) {
+ $final-bg-layer: nth($backgrounds, length($backgrounds));
+ @if type-of($final-bg-layer) == list {
+ @for $i from 1 through length($final-bg-layer) {
+ $value: nth($final-bg-layer, $i);
+ @if type-of($value) == color {
+ @return $value;
+ }
+ }
+ }
+ @return false;
+}
+
+@function _background-add-prefix($backgrounds, $vendor: false) {
+ $backgrounds-prefixed: ();
+
+ @for $i from 1 through length($backgrounds) {
+ $shorthand: nth($backgrounds, $i); // Get member for current index
+ $type: type-of($shorthand); // Get type of variable - List (gradient) or String (image)
+
+ // If shorthand is a list (gradient)
+ @if $type == list {
+ $first-member: nth($shorthand, 1); // Get first member of shorthand
+
+ // Linear Gradient
+ @if index(linear radial, nth($first-member, 1)) {
+ $gradient-type: nth($first-member, 1); // linear || radial
+ $gradient-args: false;
+ $gradient-positions: false;
+ $shorthand-start: false;
+ @if type-of($first-member) == list { // Linear gradient plus additional shorthand values - lg(red,orange)repeat,...
+ $gradient-positions: nth($first-member, 2);
+ $gradient-args: nth($first-member, 3);
+ $shorthand-start: 2;
+ }
+ @else { // Linear gradient only - lg(red,orange),...
+ $gradient-positions: nth($shorthand, 2);
+ $gradient-args: nth($shorthand, 3); // Get gradient (red, blue)
+ }
+
+ $gradient-positions: _gradient-positions-parser($gradient-type, $gradient-positions);
+ $gradient: _render-gradients($gradient-positions, $gradient-args, $gradient-type, $vendor);
+
+ // Append any additional shorthand args to gradient
+ @if $shorthand-start {
+ @for $j from $shorthand-start through length($shorthand) {
+ $gradient: join($gradient, nth($shorthand, $j), space);
+ }
+ }
+ $backgrounds-prefixed: append($backgrounds-prefixed, $gradient, comma);
+ }
+ // Image with additional properties
+ @else {
+ $backgrounds-prefixed: append($backgrounds-prefixed, $shorthand, comma);
+ }
+ }
+ // If shorthand is a simple string (color or image)
+ @else if $type == string {
+ $backgrounds-prefixed: join($backgrounds-prefixed, $shorthand, comma);
+ }
+ }
+ @return $backgrounds-prefixed;
+}
+
+//Examples:
+ //@include background(linear-gradient(top, orange, red));
+ //@include background(radial-gradient(circle at 40% 40%, orange, red));
+ //@include background(url("/images/a.png") no-repeat, linear-gradient(orange, red));
+ //@include background(url("image.png") center center, linear-gradient(orange, red), url("image.png"));
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/css3/_border-image.scss b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_border-image.scss
new file mode 100644
index 0000000000..e552ee442e
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_border-image.scss
@@ -0,0 +1,56 @@
+@mixin border-image($images) {
+ -webkit-border-image: _border-add-prefix($images, webkit);
+ -moz-border-image: _border-add-prefix($images, moz);
+ -o-border-image: _border-add-prefix($images, o);
+ border-image: _border-add-prefix($images);
+ border-style: solid;
+}
+
+@function _border-add-prefix($images, $vendor: false) {
+ $border-image: null;
+ $images-type: type-of(nth($images, 1));
+ $first-var: nth(nth($images, 1), 1); // Get type of Gradient (Linear || radial)
+
+ // If input is a gradient
+ @if $images-type == string {
+ @if ($first-var == "linear") or ($first-var == "radial") {
+ $gradient-type: nth($images, 1); // Get type of gradient (linear || radial)
+ $gradient-pos: nth($images, 2); // Get gradient position
+ $gradient-args: nth($images, 3); // Get actual gradient (red, blue)
+ $gradient-positions: _gradient-positions-parser($gradient-type, $gradient-pos);
+ $border-image: _render-gradients($gradient-positions, $gradient-args, $gradient-type, $vendor);
+ }
+ // If input is a URL
+ @else {
+ $border-image: $images;
+ }
+ }
+ // If input is gradient or url + additional args
+ @else if $images-type == list {
+ $type: type-of(nth($images, 1)); // Get type of variable - List or String
+
+ // If variable is a list - Gradient
+ @if $type == list {
+ $gradient: nth($images, 1);
+ $gradient-type: nth($gradient, 1); // Get type of gradient (linear || radial)
+ $gradient-pos: nth($gradient, 2); // Get gradient position
+ $gradient-args: nth($gradient, 3); // Get actual gradient (red, blue)
+ $gradient-positions: _gradient-positions-parser($gradient-type, $gradient-pos);
+ $border-image: _render-gradients($gradient-positions, $gradient-args, $gradient-type, $vendor);
+
+ @for $i from 2 through length($images) {
+ $border-image: append($border-image, nth($images, $i));
+ }
+ }
+ }
+ @return $border-image;
+}
+
+//Examples:
+// @include border-image(url("image.png"));
+// @include border-image(url("image.png") 20 stretch);
+// @include border-image(linear-gradient(45deg, orange, yellow));
+// @include border-image(linear-gradient(45deg, orange, yellow) stretch);
+// @include border-image(linear-gradient(45deg, orange, yellow) 20 30 40 50 stretch round);
+// @include border-image(radial-gradient(top, cover, orange, yellow, orange));
+
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/css3/_border-radius.scss b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_border-radius.scss
new file mode 100644
index 0000000000..7c17190109
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_border-radius.scss
@@ -0,0 +1,22 @@
+//************************************************************************//
+// Shorthand Border-radius mixins
+//************************************************************************//
+@mixin border-top-radius($radii) {
+ @include prefixer(border-top-left-radius, $radii, spec);
+ @include prefixer(border-top-right-radius, $radii, spec);
+}
+
+@mixin border-bottom-radius($radii) {
+ @include prefixer(border-bottom-left-radius, $radii, spec);
+ @include prefixer(border-bottom-right-radius, $radii, spec);
+}
+
+@mixin border-left-radius($radii) {
+ @include prefixer(border-top-left-radius, $radii, spec);
+ @include prefixer(border-bottom-left-radius, $radii, spec);
+}
+
+@mixin border-right-radius($radii) {
+ @include prefixer(border-top-right-radius, $radii, spec);
+ @include prefixer(border-bottom-right-radius, $radii, spec);
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/css3/_box-sizing.scss b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_box-sizing.scss
new file mode 100644
index 0000000000..f07e1d412e
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_box-sizing.scss
@@ -0,0 +1,4 @@
+@mixin box-sizing ($box) {
+// content-box | border-box | inherit
+ @include prefixer(box-sizing, $box, webkit moz spec);
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/css3/_calc.scss b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_calc.scss
new file mode 100644
index 0000000000..94d7e4cef3
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_calc.scss
@@ -0,0 +1,4 @@
+@mixin calc($property, $value) {
+ #{$property}: -webkit-calc(#{$value});
+ #{$property}: calc(#{$value});
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/css3/_columns.scss b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_columns.scss
new file mode 100644
index 0000000000..42274a4eeb
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_columns.scss
@@ -0,0 +1,47 @@
+@mixin columns($arg: auto) {
+// <column-count> || <column-width>
+ @include prefixer(columns, $arg, webkit moz spec);
+}
+
+@mixin column-count($int: auto) {
+// auto || integer
+ @include prefixer(column-count, $int, webkit moz spec);
+}
+
+@mixin column-gap($length: normal) {
+// normal || length
+ @include prefixer(column-gap, $length, webkit moz spec);
+}
+
+@mixin column-fill($arg: auto) {
+// auto || length
+ @include prefixer(columns-fill, $arg, webkit moz spec);
+}
+
+@mixin column-rule($arg) {
+// <border-width> || <border-style> || <color>
+ @include prefixer(column-rule, $arg, webkit moz spec);
+}
+
+@mixin column-rule-color($color) {
+ @include prefixer(column-rule-color, $color, webkit moz spec);
+}
+
+@mixin column-rule-style($style: none) {
+// none | hidden | dashed | dotted | double | groove | inset | inset | outset | ridge | solid
+ @include prefixer(column-rule-style, $style, webkit moz spec);
+}
+
+@mixin column-rule-width ($width: none) {
+ @include prefixer(column-rule-width, $width, webkit moz spec);
+}
+
+@mixin column-span($arg: none) {
+// none || all
+ @include prefixer(column-span, $arg, webkit moz spec);
+}
+
+@mixin column-width($length: auto) {
+// auto || length
+ @include prefixer(column-width, $length, webkit moz spec);
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/css3/_flex-box.scss b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_flex-box.scss
new file mode 100644
index 0000000000..b48476e870
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_flex-box.scss
@@ -0,0 +1,321 @@
+// CSS3 Flexible Box Model and property defaults
+
+// Custom shorthand notation for flexbox
+@mixin box($orient: inline-axis, $pack: start, $align: stretch) {
+ @include display-box;
+ @include box-orient($orient);
+ @include box-pack($pack);
+ @include box-align($align);
+}
+
+@mixin display-box {
+ display: -webkit-box;
+ display: -moz-box;
+ display: -ms-flexbox; // IE 10
+ display: box;
+}
+
+@mixin box-orient($orient: inline-axis) {
+// horizontal|vertical|inline-axis|block-axis|inherit
+ @include prefixer(box-orient, $orient, webkit moz spec);
+}
+
+@mixin box-pack($pack: start) {
+// start|end|center|justify
+ @include prefixer(box-pack, $pack, webkit moz spec);
+ -ms-flex-pack: $pack; // IE 10
+}
+
+@mixin box-align($align: stretch) {
+// start|end|center|baseline|stretch
+ @include prefixer(box-align, $align, webkit moz spec);
+ -ms-flex-align: $align; // IE 10
+}
+
+@mixin box-direction($direction: normal) {
+// normal|reverse|inherit
+ @include prefixer(box-direction, $direction, webkit moz spec);
+ -ms-flex-direction: $direction; // IE 10
+}
+
+@mixin box-lines($lines: single) {
+// single|multiple
+ @include prefixer(box-lines, $lines, webkit moz spec);
+}
+
+@mixin box-ordinal-group($int: 1) {
+ @include prefixer(box-ordinal-group, $int, webkit moz spec);
+ -ms-flex-order: $int; // IE 10
+}
+
+@mixin box-flex($value: 0.0) {
+ @include prefixer(box-flex, $value, webkit moz spec);
+ -ms-flex: $value; // IE 10
+}
+
+@mixin box-flex-group($int: 1) {
+ @include prefixer(box-flex-group, $int, webkit moz spec);
+}
+
+// CSS3 Flexible Box Model and property defaults
+// Unified attributes for 2009, 2011, and 2012 flavours.
+
+// 2009 - display (box | inline-box)
+// 2011 - display (flexbox | inline-flexbox)
+// 2012 - display (flex | inline-flex)
+@mixin display($value) {
+// flex | inline-flex
+ @if $value == "flex" {
+ // 2009
+ display: -webkit-box;
+ display: -moz-box;
+ display: box;
+
+ // 2012
+ display: -webkit-flex;
+ display: -moz-flex;
+ display: -ms-flexbox; // 2011 (IE 10)
+ display: flex;
+ }
+
+ @elseif $value == "inline-flex" {
+ display: -webkit-inline-box;
+ display: -moz-inline-box;
+ display: inline-box;
+
+ display: -webkit-inline-flex;
+ display: -moz-inline-flex;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ }
+
+ @else {
+ display: $value;
+ }
+}
+
+// 2009 - box-flex (integer)
+// 2011 - flex (decimal | width decimal)
+// 2012 - flex (integer integer width)
+@mixin flex($value) {
+
+ // Grab flex-grow for older browsers.
+ $flex-grow: nth($value, 1);
+
+ // 2009
+ @include prefixer(box-flex, $flex-grow, webkit moz spec);
+
+ // 2011 (IE 10), 2012
+ @include prefixer(flex, $value, webkit moz ms spec);
+}
+
+// 2009 - box-orient ( horizontal | vertical | inline-axis | block-axis)
+// - box-direction (normal | reverse)
+// 2011 - flex-direction (row | row-reverse | column | column-reverse)
+// 2012 - flex-direction (row | row-reverse | column | column-reverse)
+@mixin flex-direction($value: row) {
+
+ // Alt values.
+ $value-2009: $value;
+ $value-2011: $value;
+ $direction: "normal";
+
+ @if $value == row {
+ $value-2009: horizontal;
+ }
+
+ @elseif $value == "row-reverse" {
+ $value-2009: horizontal;
+ $direction: reverse;
+ }
+
+ @elseif $value == column {
+ $value-2009: vertical;
+ }
+
+ @elseif $value == "column-reverse" {
+ $value-2009: vertical;
+ $direction: reverse;
+ }
+
+ // 2009
+ @include prefixer(box-orient, $value-2009, webkit moz spec);
+ @if $direction == "reverse" {
+ @include prefixer(box-direction, $direction, webkit moz spec);
+ }
+
+ // 2012
+ @include prefixer(flex-direction, $value, webkit moz spec);
+
+ // 2011 (IE 10)
+ -ms-flex-direction: $value;
+}
+
+// 2009 - box-lines (single | multiple)
+// 2011 - flex-wrap (nowrap | wrap | wrap-reverse)
+// 2012 - flex-wrap (nowrap | wrap | wrap-reverse)
+@mixin flex-wrap($value: nowrap) {
+
+ // Alt values.
+ $alt-value: $value;
+ @if $value == nowrap {
+ $alt-value: single;
+ }
+
+ @elseif $value == wrap {
+ $alt-value: multiple;
+ }
+
+ @elseif $value == "wrap-reverse" {
+ $alt-value: multiple;
+ }
+
+ @include prefixer(box-lines, $alt-value, webkit moz spec);
+ @include prefixer(flex-wrap, $value, webkit moz ms spec);
+}
+
+// 2009 - TODO: parse values into flex-direction/flex-wrap
+// 2011 - TODO: parse values into flex-direction/flex-wrap
+// 2012 - flex-flow (flex-direction || flex-wrap)
+@mixin flex-flow($value) {
+ @include prefixer(flex-flow, $value, webkit moz spec);
+}
+
+// 2009 - box-ordinal-group (integer)
+// 2011 - flex-order (integer)
+// 2012 - order (integer)
+@mixin order($int: 0) {
+ // 2009
+ @include prefixer(box-ordinal-group, $int, webkit moz spec);
+
+ // 2012
+ @include prefixer(order, $int, webkit moz spec);
+
+ // 2011 (IE 10)
+ -ms-flex-order: $int;
+}
+
+// 2012 - flex-grow (number)
+@mixin flex-grow($number: 0) {
+ @include prefixer(flex-grow, $number, webkit moz spec);
+ -ms-flex-positive: $number;
+}
+
+// 2012 - flex-shrink (number)
+@mixin flex-shrink($number: 1) {
+ @include prefixer(flex-shrink, $number, webkit moz spec);
+ -ms-flex-negative: $number;
+}
+
+// 2012 - flex-basis (number)
+@mixin flex-basis($width: auto) {
+ @include prefixer(flex-basis, $width, webkit moz spec);
+ -ms-flex-preferred-size: $width;
+}
+
+// 2009 - box-pack (start | end | center | justify)
+// 2011 - flex-pack (start | end | center | justify)
+// 2012 - justify-content (flex-start | flex-end | center | space-between | space-around)
+@mixin justify-content ($value: flex-start) {
+
+ // Alt values.
+ $alt-value: $value;
+ @if $value == "flex-start" {
+ $alt-value: start;
+ }
+
+ @elseif $value == "flex-end" {
+ $alt-value: end;
+ }
+
+ @elseif $value == "space-between" {
+ $alt-value: justify;
+ }
+
+ @elseif $value == "space-around" {
+ $alt-value: center;
+ }
+
+ // 2009
+ @include prefixer(box-pack, $alt-value, webkit moz spec);
+
+ // 2012
+ @include prefixer(justify-content, $value, webkit moz ms o spec);
+
+ // 2011 (IE 10)
+ -ms-flex-pack: $alt-value;
+}
+
+// 2009 - box-align (start | end | center | baseline | stretch)
+// 2011 - flex-align (start | end | center | baseline | stretch)
+// 2012 - align-items (flex-start | flex-end | center | baseline | stretch)
+@mixin align-items($value: stretch) {
+
+ $alt-value: $value;
+
+ @if $value == "flex-start" {
+ $alt-value: start;
+ }
+
+ @elseif $value == "flex-end" {
+ $alt-value: end;
+ }
+
+ // 2009
+ @include prefixer(box-align, $alt-value, webkit moz spec);
+
+ // 2012
+ @include prefixer(align-items, $value, webkit moz ms o spec);
+
+ // 2011 (IE 10)
+ -ms-flex-align: $alt-value;
+}
+
+// 2011 - flex-item-align (auto | start | end | center | baseline | stretch)
+// 2012 - align-self (auto | flex-start | flex-end | center | baseline | stretch)
+@mixin align-self($value: auto) {
+
+ $value-2011: $value;
+ @if $value == "flex-start" {
+ $value-2011: start;
+ }
+
+ @elseif $value == "flex-end" {
+ $value-2011: end;
+ }
+
+ // 2012
+ @include prefixer(align-self, $value, webkit moz spec);
+
+ // 2011 (IE 10)
+ -ms-flex-item-align: $value-2011;
+}
+
+// 2011 - flex-line-pack (start | end | center | justify | distribute | stretch)
+// 2012 - align-content (flex-start | flex-end | center | space-between | space-around | stretch)
+@mixin align-content($value: stretch) {
+
+ $value-2011: $value;
+ @if $value == "flex-start" {
+ $value-2011: start;
+ }
+
+ @elseif $value == "flex-end" {
+ $value-2011: end;
+ }
+
+ @elseif $value == "space-between" {
+ $value-2011: justify;
+ }
+
+ @elseif $value == "space-around" {
+ $value-2011: distribute;
+ }
+
+ // 2012
+ @include prefixer(align-content, $value, webkit moz spec);
+
+ // 2011 (IE 10)
+ -ms-flex-line-pack: $value-2011;
+}
+
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/css3/_font-face.scss b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_font-face.scss
new file mode 100644
index 0000000000..029ee8fe88
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_font-face.scss
@@ -0,0 +1,23 @@
+// Order of the includes matters, and it is: normal, bold, italic, bold+italic.
+
+@mixin font-face($font-family, $file-path, $weight: normal, $style: normal, $asset-pipeline: false ) {
+ @font-face {
+ font-family: $font-family;
+ font-weight: $weight;
+ font-style: $style;
+
+ @if $asset-pipeline == true {
+ src: font-url('#{$file-path}.eot');
+ src: font-url('#{$file-path}.eot?#iefix') format('embedded-opentype'),
+ font-url('#{$file-path}.woff') format('woff'),
+ font-url('#{$file-path}.ttf') format('truetype'),
+ font-url('#{$file-path}.svg##{$font-family}') format('svg');
+ } @else {
+ src: url('#{$file-path}.eot');
+ src: url('#{$file-path}.eot?#iefix') format('embedded-opentype'),
+ url('#{$file-path}.woff') format('woff'),
+ url('#{$file-path}.ttf') format('truetype'),
+ url('#{$file-path}.svg##{$font-family}') format('svg');
+ }
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/css3/_hidpi-media-query.scss b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_hidpi-media-query.scss
new file mode 100644
index 0000000000..111e4009b5
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_hidpi-media-query.scss
@@ -0,0 +1,10 @@
+// HiDPI mixin. Default value set to 1.3 to target Google Nexus 7 (http://bjango.com/articles/min-device-pixel-ratio/)
+@mixin hidpi($ratio: 1.3) {
+ @media only screen and (-webkit-min-device-pixel-ratio: $ratio),
+ only screen and (min--moz-device-pixel-ratio: $ratio),
+ only screen and (-o-min-device-pixel-ratio: #{$ratio}/1),
+ only screen and (min-resolution: #{round($ratio*96)}dpi),
+ only screen and (min-resolution: #{$ratio}dppx) {
+ @content;
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/css3/_hyphens.scss b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_hyphens.scss
new file mode 100644
index 0000000000..5f8bddafa5
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_hyphens.scss
@@ -0,0 +1,4 @@
+@mixin hyphens($hyphenation: none) {
+// none | manual | auto
+ @include prefixer(hyphens, $hyphenation, webkit moz ms spec);
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/css3/_image-rendering.scss b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_image-rendering.scss
new file mode 100644
index 0000000000..d4bac3ce0d
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_image-rendering.scss
@@ -0,0 +1,13 @@
+@mixin image-rendering ($mode:auto) {
+
+ @if ($mode == crisp-edges) {
+ image-rendering: -moz-crisp-edges;
+ image-rendering: -o-crisp-edges;
+ image-rendering: -webkit-optimize-contrast;
+ image-rendering: crisp-edges;
+ }
+
+ @else {
+ image-rendering: $mode;
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/css3/_inline-block.scss b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_inline-block.scss
new file mode 100644
index 0000000000..3272a0010b
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_inline-block.scss
@@ -0,0 +1,8 @@
+// Legacy support for inline-block in IE7 (maybe IE6)
+@mixin inline-block {
+ display: inline-block;
+ vertical-align: baseline;
+ zoom: 1;
+ *display: inline;
+ *vertical-align: auto;
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/css3/_keyframes.scss b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_keyframes.scss
new file mode 100644
index 0000000000..a9af53da4f
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_keyframes.scss
@@ -0,0 +1,38 @@
+// Adds keyframes blocks for supported prefixes, removing redundant prefixes in the block's content
+@mixin keyframes($name) {
+ $original-prefix-for-webkit: $prefix-for-webkit;
+ $original-prefix-for-mozilla: $prefix-for-mozilla;
+ $original-prefix-for-microsoft: $prefix-for-microsoft;
+ $original-prefix-for-opera: $prefix-for-opera;
+ $original-prefix-for-spec: $prefix-for-spec;
+
+ @if $original-prefix-for-webkit {
+ @include disable-prefix-for-all();
+ $prefix-for-webkit: true;
+ @-webkit-keyframes #{$name} {
+ @content;
+ }
+ }
+ @if $original-prefix-for-mozilla {
+ @include disable-prefix-for-all();
+ $prefix-for-mozilla: true;
+ @-moz-keyframes #{$name} {
+ @content;
+ }
+ }
+ @if $original-prefix-for-spec {
+ @include disable-prefix-for-all();
+ $prefix-for-spec: true;
+ // Chrome supports the standard keyframes syntax, but not the standard transform syntax
+ $prefix-for-webkit: true;
+ @keyframes #{$name} {
+ @content;
+ }
+ }
+
+ $prefix-for-webkit: $original-prefix-for-webkit;
+ $prefix-for-mozilla: $original-prefix-for-mozilla;
+ $prefix-for-microsoft: $original-prefix-for-microsoft;
+ $prefix-for-opera: $original-prefix-for-opera;
+ $prefix-for-spec: $original-prefix-for-spec;
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/css3/_linear-gradient.scss b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_linear-gradient.scss
new file mode 100644
index 0000000000..e0da35128b
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_linear-gradient.scss
@@ -0,0 +1,38 @@
+@mixin linear-gradient($pos, $G1, $G2: null,
+ $G3: null, $G4: null,
+ $G5: null, $G6: null,
+ $G7: null, $G8: null,
+ $G9: null, $G10: null,
+ $fallback: null) {
+ // Detect what type of value exists in $pos
+ $pos-type: type-of(nth($pos, 1));
+ $pos-spec: null;
+ $pos-degree: null;
+
+ // If $pos is missing from mixin, reassign vars and add default position
+ @if ($pos-type == color) or (nth($pos, 1) == "transparent") {
+ $G10: $G9; $G9: $G8; $G8: $G7; $G7: $G6; $G6: $G5;
+ $G5: $G4; $G4: $G3; $G3: $G2; $G2: $G1; $G1: $pos;
+ $pos: null;
+ }
+
+ @if $pos {
+ $positions: _linear-positions-parser($pos);
+ $pos-degree: nth($positions, 1);
+ $pos-spec: nth($positions, 2);
+ }
+
+ $full: $G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10;
+
+ // Set $G1 as the default fallback color
+ $fallback-color: nth($G1, 1);
+
+ // If $fallback is a color use that color as the fallback color
+ @if (type-of($fallback) == color) or ($fallback == "transparent") {
+ $fallback-color: $fallback;
+ }
+
+ background-color: $fallback-color;
+ background-image: -webkit-linear-gradient($pos-degree $full); // Safari 5.1+, Chrome
+ background-image: unquote("linear-gradient(#{$pos-spec}#{$full})");
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/css3/_perspective.scss b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_perspective.scss
new file mode 100644
index 0000000000..0e4deb80f3
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_perspective.scss
@@ -0,0 +1,8 @@
+@mixin perspective($depth: none) {
+ // none | <length>
+ @include prefixer(perspective, $depth, webkit moz spec);
+}
+
+@mixin perspective-origin($value: 50% 50%) {
+ @include prefixer(perspective-origin, $value, webkit moz spec);
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/css3/_placeholder.scss b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_placeholder.scss
new file mode 100644
index 0000000000..22fd92b4f2
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_placeholder.scss
@@ -0,0 +1,29 @@
+$placeholders: '-webkit-input-placeholder',
+ '-moz-placeholder',
+ '-ms-input-placeholder';
+
+@mixin placeholder {
+ @each $placeholder in $placeholders {
+ @if $placeholder == "-webkit-input-placeholder" {
+ &::#{$placeholder} {
+ @content;
+ }
+ }
+ @else if $placeholder == "-moz-placeholder" {
+ // FF 18-
+ &:#{$placeholder} {
+ @content;
+ }
+
+ // FF 19+
+ &::#{$placeholder} {
+ @content;
+ }
+ }
+ @else {
+ &:#{$placeholder} {
+ @content;
+ }
+ }
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/css3/_radial-gradient.scss b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_radial-gradient.scss
new file mode 100644
index 0000000000..7a8c3765f1
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_radial-gradient.scss
@@ -0,0 +1,39 @@
+// Requires Sass 3.1+
+@mixin radial-gradient($G1, $G2,
+ $G3: null, $G4: null,
+ $G5: null, $G6: null,
+ $G7: null, $G8: null,
+ $G9: null, $G10: null,
+ $pos: null,
+ $shape-size: null,
+ $fallback: null) {
+
+ $data: _radial-arg-parser($G1, $G2, $pos, $shape-size);
+ $G1: nth($data, 1);
+ $G2: nth($data, 2);
+ $pos: nth($data, 3);
+ $shape-size: nth($data, 4);
+
+ $full: $G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10;
+
+ // Strip deprecated cover/contain for spec
+ $shape-size-spec: _shape-size-stripper($shape-size);
+
+ // Set $G1 as the default fallback color
+ $first-color: nth($full, 1);
+ $fallback-color: nth($first-color, 1);
+
+ @if (type-of($fallback) == color) or ($fallback == "transparent") {
+ $fallback-color: $fallback;
+ }
+
+ // Add Commas and spaces
+ $shape-size: if($shape-size, '#{$shape-size}, ', null);
+ $pos: if($pos, '#{$pos}, ', null);
+ $pos-spec: if($pos, 'at #{$pos}', null);
+ $shape-size-spec: if(($shape-size-spec != ' ') and ($pos == null), '#{$shape-size-spec}, ', '#{$shape-size-spec} ');
+
+ background-color: $fallback-color;
+ background-image: -webkit-radial-gradient(unquote(#{$pos}#{$shape-size}#{$full}));
+ background-image: unquote("radial-gradient(#{$shape-size-spec}#{$pos-spec}#{$full})");
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/css3/_transform.scss b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_transform.scss
new file mode 100644
index 0000000000..8cc35963d5
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_transform.scss
@@ -0,0 +1,15 @@
+@mixin transform($property: none) {
+// none | <transform-function>
+ @include prefixer(transform, $property, webkit moz ms o spec);
+}
+
+@mixin transform-origin($axes: 50%) {
+// x-axis - left | center | right | length | %
+// y-axis - top | center | bottom | length | %
+// z-axis - length
+ @include prefixer(transform-origin, $axes, webkit moz ms o spec);
+}
+
+@mixin transform-style ($style: flat) {
+ @include prefixer(transform-style, $style, webkit moz ms o spec);
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/css3/_transition.scss b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_transition.scss
new file mode 100644
index 0000000000..fe18933fef
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_transition.scss
@@ -0,0 +1,34 @@
+// Shorthand mixin. Supports multiple parentheses-deliminated values for each variable.
+// Example: @include transition (all 2s ease-in-out);
+// @include transition (opacity 1s ease-in 2s, width 2s ease-out);
+// @include transition-property (transform, opacity);
+
+@mixin transition ($properties...) {
+ @if length($properties) >= 1 {
+ @include prefixer(transition, $properties, webkit moz spec);
+ }
+
+ @else {
+ $properties: all 0.15s ease-out 0s;
+ @include prefixer(transition, $properties, webkit moz spec);
+ }
+}
+
+@mixin transition-property ($properties...) {
+ -webkit-transition-property: transition-property-names($properties, 'webkit');
+ -moz-transition-property: transition-property-names($properties, 'moz');
+ transition-property: transition-property-names($properties, false);
+}
+
+@mixin transition-duration ($times...) {
+ @include prefixer(transition-duration, $times, webkit moz spec);
+}
+
+@mixin transition-timing-function ($motions...) {
+// ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier()
+ @include prefixer(transition-timing-function, $motions, webkit moz spec);
+}
+
+@mixin transition-delay ($times...) {
+ @include prefixer(transition-delay, $times, webkit moz spec);
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/css3/_user-select.scss b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_user-select.scss
new file mode 100644
index 0000000000..1380aa8baa
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/css3/_user-select.scss
@@ -0,0 +1,3 @@
+@mixin user-select($arg: none) {
+ @include prefixer(user-select, $arg, webkit moz ms spec);
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/functions/_flex-grid.scss b/WebContent/VAADIN/themes/valo/util/bourbon/functions/_flex-grid.scss
new file mode 100644
index 0000000000..3bbd866573
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/functions/_flex-grid.scss
@@ -0,0 +1,39 @@
+// Flexible grid
+@function flex-grid($columns, $container-columns: $fg-max-columns) {
+ $width: $columns * $fg-column + ($columns - 1) * $fg-gutter;
+ $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter;
+ @return percentage($width / $container-width);
+}
+
+// Flexible gutter
+@function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) {
+ $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter;
+ @return percentage($gutter / $container-width);
+}
+
+// The $fg-column, $fg-gutter and $fg-max-columns variables must be defined in your base stylesheet to properly use the flex-grid function.
+// This function takes the fluid grid equation (target / context = result) and uses columns to help define each.
+//
+// The calculation presumes that your column structure will be missing the last gutter:
+//
+// -- column -- gutter -- column -- gutter -- column
+//
+// $fg-column: 60px; // Column Width
+// $fg-gutter: 25px; // Gutter Width
+// $fg-max-columns: 12; // Total Columns For Main Container
+//
+// div {
+// width: flex-grid(4); // returns (315px / 995px) = 31.65829%;
+// margin-left: flex-gutter(); // returns (25px / 995px) = 2.51256%;
+//
+// p {
+// width: flex-grid(2, 4); // returns (145px / 315px) = 46.031746%;
+// float: left;
+// margin: flex-gutter(4); // returns (25px / 315px) = 7.936508%;
+// }
+//
+// blockquote {
+// float: left;
+// width: flex-grid(2, 4); // returns (145px / 315px) = 46.031746%;
+// }
+// } \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/functions/_golden-ratio.scss b/WebContent/VAADIN/themes/valo/util/bourbon/functions/_golden-ratio.scss
new file mode 100644
index 0000000000..463d14a00c
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/functions/_golden-ratio.scss
@@ -0,0 +1,3 @@
+@function golden-ratio($value, $increment) {
+ @return modular-scale($value, $increment, $golden)
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/functions/_grid-width.scss b/WebContent/VAADIN/themes/valo/util/bourbon/functions/_grid-width.scss
new file mode 100644
index 0000000000..8e63d83d60
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/functions/_grid-width.scss
@@ -0,0 +1,13 @@
+@function grid-width($n) {
+ @return $n * $gw-column + ($n - 1) * $gw-gutter;
+}
+
+// The $gw-column and $gw-gutter variables must be defined in your base stylesheet to properly use the grid-width function.
+//
+// $gw-column: 100px; // Column Width
+// $gw-gutter: 40px; // Gutter Width
+//
+// div {
+// width: grid-width(4); // returns 520px;
+// margin-left: $gw-gutter; // returns 40px;
+// }
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/functions/_linear-gradient.scss b/WebContent/VAADIN/themes/valo/util/bourbon/functions/_linear-gradient.scss
new file mode 100644
index 0000000000..c8454d83f0
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/functions/_linear-gradient.scss
@@ -0,0 +1,13 @@
+@function linear-gradient($pos, $gradients...) {
+ $type: linear;
+ $pos-type: type-of(nth($pos, 1));
+
+ // if $pos doesn't exist, fix $gradient
+ @if ($pos-type == color) or (nth($pos, 1) == "transparent") {
+ $gradients: zip($pos $gradients);
+ $pos: false;
+ }
+
+ $type-gradient: $type, $pos, $gradients;
+ @return $type-gradient;
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/functions/_modular-scale.scss b/WebContent/VAADIN/themes/valo/util/bourbon/functions/_modular-scale.scss
new file mode 100644
index 0000000000..0a7185916c
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/functions/_modular-scale.scss
@@ -0,0 +1,66 @@
+// Scaling Varaibles
+$golden: 1.618;
+$minor-second: 1.067;
+$major-second: 1.125;
+$minor-third: 1.2;
+$major-third: 1.25;
+$perfect-fourth: 1.333;
+$augmented-fourth: 1.414;
+$perfect-fifth: 1.5;
+$minor-sixth: 1.6;
+$major-sixth: 1.667;
+$minor-seventh: 1.778;
+$major-seventh: 1.875;
+$octave: 2;
+$major-tenth: 2.5;
+$major-eleventh: 2.667;
+$major-twelfth: 3;
+$double-octave: 4;
+
+@function modular-scale($value, $increment, $ratio) {
+ $v1: nth($value, 1);
+ $v2: nth($value, length($value));
+ $value: $v1;
+
+ // scale $v2 to just above $v1
+ @while $v2 > $v1 {
+ $v2: ($v2 / $ratio); // will be off-by-1
+ }
+ @while $v2 < $v1 {
+ $v2: ($v2 * $ratio); // will fix off-by-1
+ }
+
+ // check AFTER scaling $v2 to prevent double-counting corner-case
+ $double-stranded: $v2 > $v1;
+
+ @if $increment > 0 {
+ @for $i from 1 through $increment {
+ @if $double-stranded and ($v1 * $ratio) > $v2 {
+ $value: $v2;
+ $v2: ($v2 * $ratio);
+ } @else {
+ $v1: ($v1 * $ratio);
+ $value: $v1;
+ }
+ }
+ }
+
+ @if $increment < 0 {
+ // adjust $v2 to just below $v1
+ @if $double-stranded {
+ $v2: ($v2 / $ratio);
+ }
+
+ @for $i from $increment through -1 {
+ @if $double-stranded and ($v1 / $ratio) < $v2 {
+ $value: $v2;
+ $v2: ($v2 / $ratio);
+ } @else {
+ $v1: ($v1 / $ratio);
+ $value: $v1;
+ }
+ }
+ }
+
+ @return $value;
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/functions/_px-to-em.scss b/WebContent/VAADIN/themes/valo/util/bourbon/functions/_px-to-em.scss
new file mode 100644
index 0000000000..4832245e45
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/functions/_px-to-em.scss
@@ -0,0 +1,13 @@
+// Convert pixels to ems
+// eg. for a relational value of 12px write em(12) when the parent is 16px
+// if the parent is another value say 24px write em(12, 24)
+
+@function em($pxval, $base: $em-base) {
+ @if not unitless($pxval) {
+ $pxval: strip-units($pxval);
+ }
+ @if not unitless($base) {
+ $base: strip-units($base);
+ }
+ @return ($pxval / $base) * 1em;
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/functions/_radial-gradient.scss b/WebContent/VAADIN/themes/valo/util/bourbon/functions/_radial-gradient.scss
new file mode 100644
index 0000000000..4466a9c9af
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/functions/_radial-gradient.scss
@@ -0,0 +1,23 @@
+// This function is required and used by the background-image mixin.
+@function radial-gradient($G1, $G2,
+ $G3: null, $G4: null,
+ $G5: null, $G6: null,
+ $G7: null, $G8: null,
+ $G9: null, $G10: null,
+ $pos: null,
+ $shape-size: null) {
+
+ $data: _radial-arg-parser($G1, $G2, $pos, $shape-size);
+ $G1: nth($data, 1);
+ $G2: nth($data, 2);
+ $pos: nth($data, 3);
+ $shape-size: nth($data, 4);
+
+ $type: radial;
+ $gradient: $G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10;
+
+ $type-gradient: $type, $shape-size $pos, $gradient;
+ @return $type-gradient;
+}
+
+
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/functions/_strip-units.scss b/WebContent/VAADIN/themes/valo/util/bourbon/functions/_strip-units.scss
new file mode 100644
index 0000000000..6afc6e601c
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/functions/_strip-units.scss
@@ -0,0 +1,5 @@
+// Srtips the units from a value. e.g. 12px -> 12
+
+@function strip-units($val) {
+ @return ($val / ($val * 0 + 1));
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/functions/_tint-shade.scss b/WebContent/VAADIN/themes/valo/util/bourbon/functions/_tint-shade.scss
new file mode 100644
index 0000000000..f7172004ac
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/functions/_tint-shade.scss
@@ -0,0 +1,9 @@
+// Add percentage of white to a color
+@function tint($color, $percent){
+ @return mix(white, $color, $percent);
+}
+
+// Add percentage of black to a color
+@function shade($color, $percent){
+ @return mix(black, $color, $percent);
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/functions/_transition-property-name.scss b/WebContent/VAADIN/themes/valo/util/bourbon/functions/_transition-property-name.scss
new file mode 100644
index 0000000000..111deeb70f
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/functions/_transition-property-name.scss
@@ -0,0 +1,22 @@
+// Return vendor-prefixed property names if appropriate
+// Example: transition-property-names((transform, color, background), moz) -> -moz-transform, color, background
+//************************************************************************//
+@function transition-property-names($props, $vendor: false) {
+ $new-props: ();
+
+ @each $prop in $props {
+ $new-props: append($new-props, transition-property-name($prop, $vendor), comma);
+ }
+
+ @return $new-props;
+}
+
+@function transition-property-name($prop, $vendor: false) {
+ // put other properties that need to be prefixed here aswell
+ @if $vendor and $prop == transform {
+ @return unquote('-'+$vendor+'-'+$prop);
+ }
+ @else {
+ @return $prop;
+ }
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/functions/_unpack.scss b/WebContent/VAADIN/themes/valo/util/bourbon/functions/_unpack.scss
new file mode 100644
index 0000000000..377596365c
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/functions/_unpack.scss
@@ -0,0 +1,17 @@
+// Convert shorthand to the 4-value syntax
+
+@function unpack($shorthand) {
+ @if length($shorthand) == 1 {
+ @return nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1);
+ }
+ @else if length($shorthand) == 2 {
+ @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 1) nth($shorthand, 2);
+ }
+ @else if length($shorthand) == 3 {
+ @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 3) nth($shorthand, 2);
+ }
+ @else {
+ @return $shorthand;
+ }
+}
+
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/helpers/_gradient-positions-parser.scss b/WebContent/VAADIN/themes/valo/util/bourbon/helpers/_gradient-positions-parser.scss
new file mode 100644
index 0000000000..07d30b6cf9
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/helpers/_gradient-positions-parser.scss
@@ -0,0 +1,13 @@
+@function _gradient-positions-parser($gradient-type, $gradient-positions) {
+ @if $gradient-positions
+ and ($gradient-type == linear)
+ and (type-of($gradient-positions) != color) {
+ $gradient-positions: _linear-positions-parser($gradient-positions);
+ }
+ @else if $gradient-positions
+ and ($gradient-type == radial)
+ and (type-of($gradient-positions) != color) {
+ $gradient-positions: _radial-positions-parser($gradient-positions);
+ }
+ @return $gradient-positions;
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/helpers/_linear-positions-parser.scss b/WebContent/VAADIN/themes/valo/util/bourbon/helpers/_linear-positions-parser.scss
new file mode 100644
index 0000000000..d26383edce
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/helpers/_linear-positions-parser.scss
@@ -0,0 +1,61 @@
+@function _linear-positions-parser($pos) {
+ $type: type-of(nth($pos, 1));
+ $spec: null;
+ $degree: null;
+ $side: null;
+ $corner: null;
+ $length: length($pos);
+ // Parse Side and corner positions
+ @if ($length > 1) {
+ @if nth($pos, 1) == "to" { // Newer syntax
+ $side: nth($pos, 2);
+
+ @if $length == 2 { // eg. to top
+ // Swap for backwards compatability
+ $degree: _position-flipper(nth($pos, 2));
+ }
+ @else if $length == 3 { // eg. to top left
+ $corner: nth($pos, 3);
+ }
+ }
+ @else if $length == 2 { // Older syntax ("top left")
+ $side: _position-flipper(nth($pos, 1));
+ $corner: _position-flipper(nth($pos, 2));
+ }
+
+ @if ("#{$side} #{$corner}" == "left top") or ("#{$side} #{$corner}" == "top left") {
+ $degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
+ }
+ @else if ("#{$side} #{$corner}" == "right top") or ("#{$side} #{$corner}" == "top right") {
+ $degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
+ }
+ @else if ("#{$side} #{$corner}" == "right bottom") or ("#{$side} #{$corner}" == "bottom right") {
+ $degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
+ }
+ @else if ("#{$side} #{$corner}" == "left bottom") or ("#{$side} #{$corner}" == "bottom left") {
+ $degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
+ }
+ $spec: to $side $corner;
+ }
+ @else if $length == 1 {
+ // Swap for backwards compatability
+ @if $type == string {
+ $degree: $pos;
+ $spec: to _position-flipper($pos);
+ }
+ @else {
+ $degree: -270 - $pos; //rotate the gradient opposite from spec
+ $spec: $pos;
+ }
+ }
+ $degree: unquote($degree + ",");
+ $spec: unquote($spec + ",");
+ @return $degree $spec;
+}
+
+@function _position-flipper($pos) {
+ @return if($pos == left, right, null)
+ if($pos == right, left, null)
+ if($pos == top, bottom, null)
+ if($pos == bottom, top, null);
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/helpers/_radial-arg-parser.scss b/WebContent/VAADIN/themes/valo/util/bourbon/helpers/_radial-arg-parser.scss
new file mode 100644
index 0000000000..a3a3704af5
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/helpers/_radial-arg-parser.scss
@@ -0,0 +1,69 @@
+@function _radial-arg-parser($G1, $G2, $pos, $shape-size) {
+ @each $value in $G1, $G2 {
+ $first-val: nth($value, 1);
+ $pos-type: type-of($first-val);
+ $spec-at-index: null;
+
+ // Determine if spec was passed to mixin
+ @if type-of($value) == list {
+ $spec-at-index: if(index($value, at), index($value, at), false);
+ }
+ @if $spec-at-index {
+ @if $spec-at-index > 1 {
+ @for $i from 1 through ($spec-at-index - 1) {
+ $shape-size: $shape-size nth($value, $i);
+ }
+ @for $i from ($spec-at-index + 1) through length($value) {
+ $pos: $pos nth($value, $i);
+ }
+ }
+ @else if $spec-at-index == 1 {
+ @for $i from ($spec-at-index + 1) through length($value) {
+ $pos: $pos nth($value, $i);
+ }
+ }
+ $G1: null;
+ }
+
+ // If not spec calculate correct values
+ @else {
+ @if ($pos-type != color) or ($first-val != "transparent") {
+ @if ($pos-type == number)
+ or ($first-val == "center")
+ or ($first-val == "top")
+ or ($first-val == "right")
+ or ($first-val == "bottom")
+ or ($first-val == "left") {
+
+ $pos: $value;
+
+ @if $pos == $G1 {
+ $G1: null;
+ }
+ }
+
+ @else if
+ ($first-val == "ellipse")
+ or ($first-val == "circle")
+ or ($first-val == "closest-side")
+ or ($first-val == "closest-corner")
+ or ($first-val == "farthest-side")
+ or ($first-val == "farthest-corner")
+ or ($first-val == "contain")
+ or ($first-val == "cover") {
+
+ $shape-size: $value;
+
+ @if $value == $G1 {
+ $G1: null;
+ }
+
+ @else if $value == $G2 {
+ $G2: null;
+ }
+ }
+ }
+ }
+ }
+ @return $G1, $G2, $pos, $shape-size;
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/helpers/_radial-positions-parser.scss b/WebContent/VAADIN/themes/valo/util/bourbon/helpers/_radial-positions-parser.scss
new file mode 100644
index 0000000000..6a5b477778
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/helpers/_radial-positions-parser.scss
@@ -0,0 +1,18 @@
+@function _radial-positions-parser($gradient-pos) {
+ $shape-size: nth($gradient-pos, 1);
+ $pos: nth($gradient-pos, 2);
+ $shape-size-spec: _shape-size-stripper($shape-size);
+
+ $pre-spec: unquote(if($pos, "#{$pos}, ", null))
+ unquote(if($shape-size, "#{$shape-size},", null));
+ $pos-spec: if($pos, "at #{$pos}", null);
+
+ $spec: "#{$shape-size-spec} #{$pos-spec}";
+
+ // Add comma
+ @if ($spec != ' ') {
+ $spec: "#{$spec},"
+ }
+
+ @return $pre-spec $spec;
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/helpers/_render-gradients.scss b/WebContent/VAADIN/themes/valo/util/bourbon/helpers/_render-gradients.scss
new file mode 100644
index 0000000000..5765676838
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/helpers/_render-gradients.scss
@@ -0,0 +1,26 @@
+// User for linear and radial gradients within background-image or border-image properties
+
+@function _render-gradients($gradient-positions, $gradients, $gradient-type, $vendor: false) {
+ $pre-spec: null;
+ $spec: null;
+ $vendor-gradients: null;
+ @if $gradient-type == linear {
+ @if $gradient-positions {
+ $pre-spec: nth($gradient-positions, 1);
+ $spec: nth($gradient-positions, 2);
+ }
+ }
+ @else if $gradient-type == radial {
+ $pre-spec: nth($gradient-positions, 1);
+ $spec: nth($gradient-positions, 2);
+ }
+
+ @if $vendor {
+ $vendor-gradients: -#{$vendor}-#{$gradient-type}-gradient(#{$pre-spec} $gradients);
+ }
+ @else if $vendor == false {
+ $vendor-gradients: "#{$gradient-type}-gradient(#{$spec} #{$gradients})";
+ $vendor-gradients: unquote($vendor-gradients);
+ }
+ @return $vendor-gradients;
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/helpers/_shape-size-stripper.scss b/WebContent/VAADIN/themes/valo/util/bourbon/helpers/_shape-size-stripper.scss
new file mode 100644
index 0000000000..ee5eda4220
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/helpers/_shape-size-stripper.scss
@@ -0,0 +1,10 @@
+@function _shape-size-stripper($shape-size) {
+ $shape-size-spec: null;
+ @each $value in $shape-size {
+ @if ($value == "cover") or ($value == "contain") {
+ $value: null;
+ }
+ $shape-size-spec: "#{$shape-size-spec} #{$value}";
+ }
+ @return $shape-size-spec;
+}
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/settings/_prefixer.scss b/WebContent/VAADIN/themes/valo/util/bourbon/settings/_prefixer.scss
new file mode 100644
index 0000000000..c29a961919
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/settings/_prefixer.scss
@@ -0,0 +1,6 @@
+// Variable settings for /addons/prefixer.scss
+$prefix-for-webkit: true;
+$prefix-for-mozilla: true;
+$prefix-for-microsoft: true;
+$prefix-for-opera: true;
+$prefix-for-spec: true; // required for keyframe mixin
diff --git a/WebContent/VAADIN/themes/valo/util/bourbon/settings/_px-to-em.scss b/WebContent/VAADIN/themes/valo/util/bourbon/settings/_px-to-em.scss
new file mode 100644
index 0000000000..f2f9a3e8de
--- /dev/null
+++ b/WebContent/VAADIN/themes/valo/util/bourbon/settings/_px-to-em.scss
@@ -0,0 +1 @@
+$em-base: 16px !default;