From 5fdb80a98517c7f9a43098d8a88c3c616da8e5a2 Mon Sep 17 00:00:00 2001 From: Chris Hu Date: Mon, 22 Aug 2016 21:00:27 +0800 Subject: [PATCH] update vimrc, add colors support --- my_configs.vim | 3 + .../vim-css-color/.gitattributes | 5 + sources_non_forked/vim-css-color/LICENSE | 21 + sources_non_forked/vim-css-color/README.md | 8 + .../vim-css-color/after/syntax/css.vim | 4 + .../vim-css-color/after/syntax/go.vim | 4 + .../vim-css-color/after/syntax/html.vim | 5 + .../vim-css-color/after/syntax/javascript.vim | 15 + .../vim-css-color/after/syntax/json.vim | 4 + .../vim-css-color/after/syntax/jsx.vim | 5 + .../vim-css-color/after/syntax/less.vim | 11 + .../vim-css-color/after/syntax/moon.vim | 4 + .../vim-css-color/after/syntax/perl.vim | 4 + .../vim-css-color/after/syntax/php.vim | 4 + .../vim-css-color/after/syntax/python.vim | 5 + .../vim-css-color/after/syntax/r.vim | 4 + .../vim-css-color/after/syntax/ruby.vim | 4 + .../vim-css-color/after/syntax/sass.vim | 4 + .../vim-css-color/after/syntax/scss.vim | 4 + .../vim-css-color/after/syntax/stylus.vim | 4 + .../vim-css-color/after/syntax/vim.vim | 4 + .../vim-css-color/after/syntax/xdefaults.vim | 4 + .../vim-css-color/after/syntax/xml.vim | 4 + .../vim-css-color/after/syntax/yaml.vim | 4 + .../vim-css-color/autoload/css_color.vim | 632 ++++++++++++++++++ sources_non_forked/vim-css-color/tests/bench | 6 + .../vim-css-color/tests/example.css | 24 + .../vim-css-color/tests/example.jsx | 11 + .../vim-css-color/tests/example.less | 24 + .../vim-css-color/tests/example.sass | 25 + .../vim-css-color/tests/example.scss | 24 + .../vim-css-color/tests/example.stylus | 28 + .../vim-css-color/tests/torture.css | 256 +++++++ 33 files changed, 1168 insertions(+) create mode 100644 sources_non_forked/vim-css-color/.gitattributes create mode 100644 sources_non_forked/vim-css-color/LICENSE create mode 100644 sources_non_forked/vim-css-color/README.md create mode 100644 sources_non_forked/vim-css-color/after/syntax/css.vim create mode 100644 sources_non_forked/vim-css-color/after/syntax/go.vim create mode 100644 sources_non_forked/vim-css-color/after/syntax/html.vim create mode 100644 sources_non_forked/vim-css-color/after/syntax/javascript.vim create mode 100644 sources_non_forked/vim-css-color/after/syntax/json.vim create mode 100644 sources_non_forked/vim-css-color/after/syntax/jsx.vim create mode 100644 sources_non_forked/vim-css-color/after/syntax/less.vim create mode 100644 sources_non_forked/vim-css-color/after/syntax/moon.vim create mode 100644 sources_non_forked/vim-css-color/after/syntax/perl.vim create mode 100644 sources_non_forked/vim-css-color/after/syntax/php.vim create mode 100644 sources_non_forked/vim-css-color/after/syntax/python.vim create mode 100644 sources_non_forked/vim-css-color/after/syntax/r.vim create mode 100644 sources_non_forked/vim-css-color/after/syntax/ruby.vim create mode 100644 sources_non_forked/vim-css-color/after/syntax/sass.vim create mode 100644 sources_non_forked/vim-css-color/after/syntax/scss.vim create mode 100644 sources_non_forked/vim-css-color/after/syntax/stylus.vim create mode 100644 sources_non_forked/vim-css-color/after/syntax/vim.vim create mode 100644 sources_non_forked/vim-css-color/after/syntax/xdefaults.vim create mode 100644 sources_non_forked/vim-css-color/after/syntax/xml.vim create mode 100644 sources_non_forked/vim-css-color/after/syntax/yaml.vim create mode 100644 sources_non_forked/vim-css-color/autoload/css_color.vim create mode 100755 sources_non_forked/vim-css-color/tests/bench create mode 100644 sources_non_forked/vim-css-color/tests/example.css create mode 100644 sources_non_forked/vim-css-color/tests/example.jsx create mode 100644 sources_non_forked/vim-css-color/tests/example.less create mode 100644 sources_non_forked/vim-css-color/tests/example.sass create mode 100644 sources_non_forked/vim-css-color/tests/example.scss create mode 100644 sources_non_forked/vim-css-color/tests/example.stylus create mode 100644 sources_non_forked/vim-css-color/tests/torture.css diff --git a/my_configs.vim b/my_configs.vim index 2b15bda2..57005278 100644 --- a/my_configs.vim +++ b/my_configs.vim @@ -42,3 +42,6 @@ source ~/.vim_runtime/sources_non_forked/Mark/plugin/mark.vim let g:mwDefaultHighlightingPalette = 'maximum' let g:mwDefaultHighlightingNum = 10 +" Vim-jsx +let g:jsx_ext_required = 0 + diff --git a/sources_non_forked/vim-css-color/.gitattributes b/sources_non_forked/vim-css-color/.gitattributes new file mode 100644 index 00000000..5632fd94 --- /dev/null +++ b/sources_non_forked/vim-css-color/.gitattributes @@ -0,0 +1,5 @@ +/autoload/css_color.vim export-subst +/.gitattributes export-ignore +/README.md export-ignore +/LICENSE export-ignore +/tests export-ignore diff --git a/sources_non_forked/vim-css-color/LICENSE b/sources_non_forked/vim-css-color/LICENSE new file mode 100644 index 00000000..592d025c --- /dev/null +++ b/sources_non_forked/vim-css-color/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Aristotle Pagaltzis + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/sources_non_forked/vim-css-color/README.md b/sources_non_forked/vim-css-color/README.md new file mode 100644 index 00000000..4fdc5908 --- /dev/null +++ b/sources_non_forked/vim-css-color/README.md @@ -0,0 +1,8 @@ + + +A very fast color keyword highlighter for Vim with context-sensitive support +for many language syntaxes. + +Originally based on code +by [Niklas Hofer](http://www.vim.org/scripts/script.php?script_id=2150) +and [Max Vasiliev](https://github.com/skammer/vim-css-color). diff --git a/sources_non_forked/vim-css-color/after/syntax/css.vim b/sources_non_forked/vim-css-color/after/syntax/css.vim new file mode 100644 index 00000000..9545d665 --- /dev/null +++ b/sources_non_forked/vim-css-color/after/syntax/css.vim @@ -0,0 +1,4 @@ +" Language: Colorful CSS Color Preview +" Author: Aristotle Pagaltzis + +call css_color#init('css', 'extended', 'cssMediaBlock,cssFunction,cssDefinition,cssAttrRegion,cssComment') diff --git a/sources_non_forked/vim-css-color/after/syntax/go.vim b/sources_non_forked/vim-css-color/after/syntax/go.vim new file mode 100644 index 00000000..62259da4 --- /dev/null +++ b/sources_non_forked/vim-css-color/after/syntax/go.vim @@ -0,0 +1,4 @@ +" Language: Colorful CSS Color Preview +" Author: Aristotle Pagaltzis + +call css_color#init('hex', 'none', 'goComment,goString,goRawString') diff --git a/sources_non_forked/vim-css-color/after/syntax/html.vim b/sources_non_forked/vim-css-color/after/syntax/html.vim new file mode 100644 index 00000000..e2c6a9a2 --- /dev/null +++ b/sources_non_forked/vim-css-color/after/syntax/html.vim @@ -0,0 +1,5 @@ +" Language: Colorful CSS Color Preview +" Author: Aristotle Pagaltzis + +" default html syntax should already be including the css syntax +call css_color#init('none', 'none', 'htmlString,htmlCommentPart') diff --git a/sources_non_forked/vim-css-color/after/syntax/javascript.vim b/sources_non_forked/vim-css-color/after/syntax/javascript.vim new file mode 100644 index 00000000..62c0e616 --- /dev/null +++ b/sources_non_forked/vim-css-color/after/syntax/javascript.vim @@ -0,0 +1,15 @@ +" Language: Colorful CSS Color Preview +" Author: Aristotle Pagaltzis +" Author: Greg Werbin + +" ft=coffee includes javascript, but mostly sets up own syntax groups +" so until it has specific support there's no point in loading anyway +" and for some reason the W3C syntax color keywords break its highlighting +" (this refers to the https://github.com/kchmck/vim-coffee-script plugin) +if -1 < index( split( &filetype, '[.]' ), 'coffee' ) | finish | endif + +" javaScriptX = default Vim syntax, jsX = https://github.com/pangloss/vim-javascript +call css_color#init('hex', 'extended' + \, 'javaScriptComment,javaScriptLineComment,javaScriptStringS,javaScriptStringD' + \. 'jsComment,jsString,jsTemplateString,jsObjectKeyString,jsObjectStringKey,jsClassStringKey' + \) diff --git a/sources_non_forked/vim-css-color/after/syntax/json.vim b/sources_non_forked/vim-css-color/after/syntax/json.vim new file mode 100644 index 00000000..89510ab6 --- /dev/null +++ b/sources_non_forked/vim-css-color/after/syntax/json.vim @@ -0,0 +1,4 @@ +" Language: Colorful CSS Color Preview +" Author: Aristotle Pagaltzis + +call css_color#init('css', 'none', 'jsonString') diff --git a/sources_non_forked/vim-css-color/after/syntax/jsx.vim b/sources_non_forked/vim-css-color/after/syntax/jsx.vim new file mode 100644 index 00000000..35311b13 --- /dev/null +++ b/sources_non_forked/vim-css-color/after/syntax/jsx.vim @@ -0,0 +1,5 @@ +" Language: Colorful CSS Color Preview +" Author: Aristotle Pagaltzis + +" should already be including the javascript and xml syntaxes +call css_color#init('css', 'none', '') diff --git a/sources_non_forked/vim-css-color/after/syntax/less.vim b/sources_non_forked/vim-css-color/after/syntax/less.vim new file mode 100644 index 00000000..298812d1 --- /dev/null +++ b/sources_non_forked/vim-css-color/after/syntax/less.vim @@ -0,0 +1,11 @@ +" Language: Colorful CSS Color Preview +" Author: Aristotle Pagaltzis + +" variable | property | multiline | end-of-line | plugin +" -----------------------+----------------+----------------+-------------+--------- +" lessCssAttribute | lessCssComment | lessComment | https://github.com/genoma/vim-less +" lessAttribute | lessCssComment | lessComment | https://github.com/KohPoll/vim-less +" lessVariableValue | lessDefinition | cssComment | lessComment | https://github.com/groenewege/vim-less +" lessVariableDefinition | cssDefinition | cssComment | lessComment | https://github.com/lunaru/vim-less + +call css_color#init('css', 'extended', 'lessVariableValue,lessVariableDefinition,lessDefinition,lessCssAttribute,lessAttribute,cssDefinition,cssComment,lessCssComment,lessComment') diff --git a/sources_non_forked/vim-css-color/after/syntax/moon.vim b/sources_non_forked/vim-css-color/after/syntax/moon.vim new file mode 100644 index 00000000..0254d7e7 --- /dev/null +++ b/sources_non_forked/vim-css-color/after/syntax/moon.vim @@ -0,0 +1,4 @@ +" Language: Colorful CSS Color Preview +" Author: Aristotle Pagaltzis + +call css_color#init('hex', 'extended', 'moonComment,moonString') diff --git a/sources_non_forked/vim-css-color/after/syntax/perl.vim b/sources_non_forked/vim-css-color/after/syntax/perl.vim new file mode 100644 index 00000000..94702772 --- /dev/null +++ b/sources_non_forked/vim-css-color/after/syntax/perl.vim @@ -0,0 +1,4 @@ +" Language: Colorful CSS Color Preview +" Author: Aristotle Pagaltzis + +call css_color#init('hex', 'none', 'perlComment,perlDATA,perlString,perlStringUnexpanded,perlQQ,perlHereDoc') diff --git a/sources_non_forked/vim-css-color/after/syntax/php.vim b/sources_non_forked/vim-css-color/after/syntax/php.vim new file mode 100644 index 00000000..0632b81f --- /dev/null +++ b/sources_non_forked/vim-css-color/after/syntax/php.vim @@ -0,0 +1,4 @@ +" Language: Colorful CSS Color Preview +" Author: Aristotle Pagaltzis + +call css_color#init('css', 'basic', 'phpComment,phpStringSingle,phpStringDouble') diff --git a/sources_non_forked/vim-css-color/after/syntax/python.vim b/sources_non_forked/vim-css-color/after/syntax/python.vim new file mode 100644 index 00000000..6c057657 --- /dev/null +++ b/sources_non_forked/vim-css-color/after/syntax/python.vim @@ -0,0 +1,5 @@ +" Language: Colorful CSS Color Preview +" Author: DanCardin +" Author: Aristotle Pagaltzis + +call css_color#init('hex', 'none', 'pythonComment,pythonString') diff --git a/sources_non_forked/vim-css-color/after/syntax/r.vim b/sources_non_forked/vim-css-color/after/syntax/r.vim new file mode 100644 index 00000000..1fe7831c --- /dev/null +++ b/sources_non_forked/vim-css-color/after/syntax/r.vim @@ -0,0 +1,4 @@ +" Language: Colorful CSS Color Preview +" Author: Greg Werbin + +call css_color#init('hex', 'extended', 'rComment,rString') diff --git a/sources_non_forked/vim-css-color/after/syntax/ruby.vim b/sources_non_forked/vim-css-color/after/syntax/ruby.vim new file mode 100644 index 00000000..cc8de447 --- /dev/null +++ b/sources_non_forked/vim-css-color/after/syntax/ruby.vim @@ -0,0 +1,4 @@ +" Language: Colorful CSS Color Preview +" Author: Aristotle Pagaltzis + +call css_color#init('hex', 'none', 'rubyComment,rubyData,rubyString') diff --git a/sources_non_forked/vim-css-color/after/syntax/sass.vim b/sources_non_forked/vim-css-color/after/syntax/sass.vim new file mode 100644 index 00000000..02b8d481 --- /dev/null +++ b/sources_non_forked/vim-css-color/after/syntax/sass.vim @@ -0,0 +1,4 @@ +" Language: Colorful CSS Color Preview +" Author: Aristotle Pagaltzis + +call css_color#init('css', 'extended', 'sassCssAttribute,sassComment,sassCssComment') diff --git a/sources_non_forked/vim-css-color/after/syntax/scss.vim b/sources_non_forked/vim-css-color/after/syntax/scss.vim new file mode 100644 index 00000000..472b5fd8 --- /dev/null +++ b/sources_non_forked/vim-css-color/after/syntax/scss.vim @@ -0,0 +1,4 @@ +" Language: Colorful CSS Color Preview +" Author: Aristotle Pagaltzis + +call css_color#init('css', 'extended', 'scssAttribute,scssComment,scssVariableValue,scssMap,scssMapValue,sassCssAttribute,cssComment') diff --git a/sources_non_forked/vim-css-color/after/syntax/stylus.vim b/sources_non_forked/vim-css-color/after/syntax/stylus.vim new file mode 100644 index 00000000..58a55308 --- /dev/null +++ b/sources_non_forked/vim-css-color/after/syntax/stylus.vim @@ -0,0 +1,4 @@ +" Language: Colorful CSS Color Preview +" Author: Aristotle Pagaltzis + +call css_color#init('css', 'extended', 'stylusCssAttribute,stylusComment,cssComment') diff --git a/sources_non_forked/vim-css-color/after/syntax/vim.vim b/sources_non_forked/vim-css-color/after/syntax/vim.vim new file mode 100644 index 00000000..3c9ed2d7 --- /dev/null +++ b/sources_non_forked/vim-css-color/after/syntax/vim.vim @@ -0,0 +1,4 @@ +" Language: Colorful CSS Color Preview +" Author: Aristotle Pagaltzis + +call css_color#init('hex', 'none', 'vimHiGuiRgb,vimComment,vimLineComment') diff --git a/sources_non_forked/vim-css-color/after/syntax/xdefaults.vim b/sources_non_forked/vim-css-color/after/syntax/xdefaults.vim new file mode 100644 index 00000000..a17e6833 --- /dev/null +++ b/sources_non_forked/vim-css-color/after/syntax/xdefaults.vim @@ -0,0 +1,4 @@ +" Language: Colorful CSS Color Preview +" Author: Robert Perce + +call css_color#init('hex', 'extended', 'xdefaultsValue') diff --git a/sources_non_forked/vim-css-color/after/syntax/xml.vim b/sources_non_forked/vim-css-color/after/syntax/xml.vim new file mode 100644 index 00000000..099a4a14 --- /dev/null +++ b/sources_non_forked/vim-css-color/after/syntax/xml.vim @@ -0,0 +1,4 @@ +" Language: Colorful CSS Color Preview +" Author: Aristotle Pagaltzis + +call css_color#init('hex', 'none', 'xmlComment,xmlCommentPart,xmlString') diff --git a/sources_non_forked/vim-css-color/after/syntax/yaml.vim b/sources_non_forked/vim-css-color/after/syntax/yaml.vim new file mode 100644 index 00000000..b8902f12 --- /dev/null +++ b/sources_non_forked/vim-css-color/after/syntax/yaml.vim @@ -0,0 +1,4 @@ +" Language: Colorful CSS Color Preview +" Author: Aristotle Pagaltzis + +call css_color#init('hex', 'extended', 'yamlComment,yamlFlowString,yamlPlainScalar') diff --git a/sources_non_forked/vim-css-color/autoload/css_color.vim b/sources_non_forked/vim-css-color/autoload/css_color.vim new file mode 100644 index 00000000..9501a61d --- /dev/null +++ b/sources_non_forked/vim-css-color/autoload/css_color.vim @@ -0,0 +1,632 @@ +" Language: Colorful CSS Color Preview +" Author: Aristotle Pagaltzis +" Commit: $Format:%H$ +" Licence: The MIT License (MIT) + +if v:version < 700 || !( has('syntax') || has('gui_running') || has('nvim') || &t_Co==256 ) + function! css_color#init(type, keywords, groups) + endfunction + function! css_color#extend(groups) + endfunction + finish +endif + +function! s:rgb2color(r,g,b) + " Convert 80% -> 204, 100% -> 255, etc. + let rgb = map( [a:r,a:g,a:b], 'v:val =~ "%$" ? ( 255 * v:val ) / 100 : v:val' ) + return printf( '%02x%02x%02x', rgb[0], rgb[1], rgb[2] ) +endfunction + +function! s:hsl2color(h,s,l) + " Convert 80% -> 0.8, 100% -> 1.0, etc. + let [s,l] = map( [a:s, a:l], 'v:val =~ "%$" ? v:val / 100.0 : v:val + 0.0' ) + " algorithm transcoded to vim from http://www.w3.org/TR/css3-color/#hsl-color + let hh = ( a:h % 360 ) / 360.0 + let m2 = l <= 0.5 ? l * ( s + 1 ) : l + s - l * s + let m1 = l * 2 - m2 + let rgb = [] + for h in [ hh + (1/3.0), hh, hh - (1/3.0) ] + let h = h < 0 ? h + 1 : h > 1 ? h - 1 : h + let v = + \ h * 6 < 1 ? m1 + ( m2 - m1 ) * h * 6 : + \ h * 2 < 1 ? m2 : + \ h * 3 < 2 ? m1 + ( m2 - m1 ) * ( 2/3.0 - h ) * 6 : + \ m1 + if v > 1.0 | return '' | endif + let rgb += [ float2nr( 255 * v ) ] + endfor + return printf( '%02x%02x%02x', rgb[0], rgb[1], rgb[2] ) +endfunction + +let s:hex={} +for i in range(0, 255) + let s:hex[ printf( '%02x', i ) ] = i +endfor + +if has('gui_running') + function! s:create_highlight(color, is_bright) + exe 'hi BG'.a:color 'guibg=#'.a:color 'guifg=#'.( a:is_bright ? '000000' : 'ffffff' ) + endfunction +else + " preset 16 vt100 colors + let s:xtermcolor = [ + \ [ 0x00, 0x00, 0x00, 0 ], + \ [ 0xCD, 0x00, 0x00, 1 ], + \ [ 0x00, 0xCD, 0x00, 2 ], + \ [ 0xCD, 0xCD, 0x00, 3 ], + \ [ 0x00, 0x00, 0xEE, 4 ], + \ [ 0xCD, 0x00, 0xCD, 5 ], + \ [ 0x00, 0xCD, 0xCD, 6 ], + \ [ 0xE5, 0xE5, 0xE5, 7 ], + \ [ 0x7F, 0x7F, 0x7F, 8 ], + \ [ 0xFF, 0x00, 0x00, 9 ], + \ [ 0x00, 0xFF, 0x00, 10 ], + \ [ 0xFF, 0xFF, 0x00, 11 ], + \ [ 0x5C, 0x5C, 0xFF, 12 ], + \ [ 0xFF, 0x00, 0xFF, 13 ], + \ [ 0x00, 0xFF, 0xFF, 14 ], + \ [ 0xFF, 0xFF, 0xFF, 15 ]] + " grayscale ramp + " (value is 8+10*lum for lum in 0..23) + let s:xtermcolor += [ + \ [ 0x08, 0x08, 0x08, 232 ], + \ [ 0x12, 0x12, 0x12, 233 ], + \ [ 0x1C, 0x1C, 0x1C, 234 ], + \ [ 0x26, 0x26, 0x26, 235 ], + \ [ 0x30, 0x30, 0x30, 236 ], + \ [ 0x3A, 0x3A, 0x3A, 237 ], + \ [ 0x44, 0x44, 0x44, 238 ], + \ [ 0x4E, 0x4E, 0x4E, 239 ], + \ [ 0x58, 0x58, 0x58, 240 ], + \ [ 0x62, 0x62, 0x62, 241 ], + \ [ 0x6C, 0x6C, 0x6C, 242 ], + \ [ 0x76, 0x76, 0x76, 243 ], + \ [ 0x80, 0x80, 0x80, 244 ], + \ [ 0x8A, 0x8A, 0x8A, 245 ], + \ [ 0x94, 0x94, 0x94, 246 ], + \ [ 0x9E, 0x9E, 0x9E, 247 ], + \ [ 0xA8, 0xA8, 0xA8, 248 ], + \ [ 0xB2, 0xB2, 0xB2, 249 ], + \ [ 0xBC, 0xBC, 0xBC, 250 ], + \ [ 0xC6, 0xC6, 0xC6, 251 ], + \ [ 0xD0, 0xD0, 0xD0, 252 ], + \ [ 0xDA, 0xDA, 0xDA, 253 ], + \ [ 0xE4, 0xE4, 0xE4, 254 ], + \ [ 0xEE, 0xEE, 0xEE, 255 ]] + + " the 6 values used in the xterm color cube + " 0 95 135 175 215 255 + let s:cubergb = [ 0x00, 0x5F, 0x87, 0xAF, 0xD7, 0xFF ] + + " 0..255 mapped to 0..5 based on the color cube values + let s:xvquant = repeat([0],48) + \ + repeat([1],68) + \ + repeat([2],40) + \ + repeat([3],40) + \ + repeat([4],40) + \ + repeat([5],20) + " tweak the mapping for the exact matches (0 and 1 already correct) + let s:xvquant[s:cubergb[2]] = 2 + let s:xvquant[s:cubergb[3]] = 3 + let s:xvquant[s:cubergb[4]] = 4 + let s:xvquant[s:cubergb[5]] = 5 + + " selects the nearest xterm color for a rgb value like #FF0000 + function! s:rgb2xterm(color) + let best_match=0 + let smallest_distance = 10000000000 + let color = tolower(a:color) + let r = s:hex[color[0:1]] + let g = s:hex[color[2:3]] + let b = s:hex[color[4:5]] + + let vr = s:xvquant[r] + let vg = s:xvquant[g] + let vb = s:xvquant[b] + let cidx = vr * 36 + vg * 6 + vb + 16 + let ccol = [ s:cubergb[vr], s:cubergb[vg], s:cubergb[vb], cidx ] + + for [tr,tg,tb,idx] in [ ccol ] + s:xtermcolor + let dr = tr - r + let dg = tg - g + let db = tb - b + let distance = dr*dr + dg*dg + db*db + if distance == 0 | return idx | endif + if distance > smallest_distance | continue | endif + let smallest_distance = distance + let best_match = idx + endfor + return best_match + endfunction + + let s:color_idx = {} + function! s:create_highlight(color, is_bright) + let color_idx = get( s:color_idx, a:color, -1 ) + if color_idx == -1 + let color_idx = s:rgb2xterm(a:color) + let s:color_idx[a:color] = color_idx + endif + exe 'hi BG'.a:color 'ctermbg='.color_idx 'ctermfg='.( a:is_bright ? 0 : 15 ) + \ 'guibg=#'.a:color 'guifg=#'.( a:is_bright ? '000000' : 'ffffff' ) + endfunction +endif + +let s:pattern_color = {} +let s:color_bright = {} +function! s:create_syn_match() + + let pattern = submatch(0) + + if has_key( b:css_color_syn, pattern ) | return | endif + let b:css_color_syn[pattern] = 1 + + let rgb_color = get( s:pattern_color, pattern, '' ) + + if ! strlen( rgb_color ) + let hexcolor = submatch(1) + let funcname = submatch(2) + + if funcname == 'rgb' + let rgb_color = s:rgb2color(submatch(3),submatch(4),submatch(5)) + elseif funcname == 'hsl' + let rgb_color = s:hsl2color(submatch(3),submatch(4),submatch(5)) + elseif strlen(hexcolor) == 6 + let rgb_color = tolower(hexcolor) + elseif strlen(hexcolor) == 3 + let rgb_color = substitute(tolower(hexcolor), '\(.\)', '\1\1', 'g') + else + throw 'css_color: create_syn_match invoked on bad match data' + endif + + let s:pattern_color[pattern] = rgb_color + endif + + if ! has_key( b:css_color_hi, rgb_color ) + let is_bright = get( s:color_bright, rgb_color, -1 ) + if is_bright == -1 + let r = s:hex[rgb_color[0:1]] + let g = s:hex[rgb_color[2:3]] + let b = s:hex[rgb_color[4:5]] + let is_bright = r*30 + g*59 + b*11 > 12000 + let s:color_bright[rgb_color] = is_bright + endif + + call s:create_highlight( rgb_color, is_bright ) + let b:css_color_hi[rgb_color] = is_bright + endif + + " iff pattern ends on word character, require word break to match + if pattern =~ '\>$' | let pattern .= '\>' | endif + exe 'syn match BG'.rgb_color.' /'.escape(pattern, '/').'/ contained containedin=@colorableGroup' + + return '' +endfunction + +function! s:clear_matches() + if exists('w:color_match_id') + call filter(w:color_match_id, 'matchdelete(v:val)') + unlet w:color_match_id + endif +endfunction + +function! s:create_matches() + if ! &l:cursorline | return | endif + " adds matches based that duplicate the highlighted colors on the current line + let lnr = line('.') + let group = '' + let groupstart = 0 + let endcol = col('$') + let w:color_match_id = [] + for col in range( 1, endcol ) + let nextgroup = col < endcol ? synIDattr( synID( lnr, col, 1 ), 'name' ) : '' + if group == nextgroup | continue | endif + if group =~ '^BG\x\{6}$' + let regex = '\%'.lnr.'l\%'.groupstart.'c'.repeat( '.', col - groupstart ) + let match = matchadd( group, regex, -1 ) + let w:color_match_id += [ match ] + endif + let group = nextgroup + let groupstart = col + endfor +endfunction + +let s:_hexcolor = '#\(\x\{3}\|\x\{6}\)\>' " submatch 1 +let s:_funcname = '\(rgb\|hsl\)a\?' " submatch 2 +let s:_ws_ = '\s*' +let s:_numval = s:_ws_ . '\(\d\{1,3}%\?\)' " submatch 3,4,5 +let s:_listsep = s:_ws_ . ',' +let s:_otherargs_ = '\%(,[^)]*\)\?' +let s:_funcexpr = s:_funcname . '[(]' . s:_numval . s:_listsep . s:_numval . s:_listsep . s:_numval . s:_ws_ . s:_otherargs_ . '[)]' +let s:_csscolor = s:_hexcolor . '\|' . s:_funcexpr +" N.B. sloppy heuristic constants for performance reasons: +" a) start somewhere left of screen in case of partially visible colorref +" b) take some multiple of &columns to handle multibyte chars etc +" N.B. these substitute() calls are here just for the side effect +" of invoking s:create_syn_match during substitution -- because +" match() and friends do not allow finding all matches in a single +" scan without examining the start of the string over and over +function! s:parse_screen() + call s:clear_matches() + let leftcol = winsaveview().leftcol + let left = max([ leftcol - 15, 0 ]) + let width = &columns * 4 + call filter( range( line('w0'), line('w$') ), 'substitute( strpart( getline(v:val), col([v:val, left]), width ), b:css_color_pat, ''\=s:create_syn_match()'', ''g'' )' ) + call s:create_matches() +endfunction + +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +function! css_color#reinit() + call filter( keys( b:css_color_hi ), 's:create_highlight( v:val, s:color_bright[v:val] )' ) +endfunction + +function! css_color#enable() + if len( b:css_color_grp ) | exe 'syn cluster colorableGroup add=' . join( b:css_color_grp, ',' ) | endif + autocmd CSSColor CursorMoved,CursorMovedI call s:parse_screen() + let b:css_color_off = 0 + call s:parse_screen() +endfunction + +function! css_color#disable() + if len( b:css_color_grp ) | exe 'syn cluster colorableGroup remove=' . join( b:css_color_grp, ',' ) | endif + autocmd! CSSColor CursorMoved,CursorMovedI + let b:css_color_off = 1 +endfunction + +function! css_color#toggle() + if ! exists('b:css_color_off') | return | endif + if b:css_color_off | call css_color#enable() + else | call css_color#disable() + endif +endfunction + +let s:type = [ 'none', 'hex', 'css', 'none' ] " with wraparound for index() == -1 +let s:pat_for_type = [ '^$', s:_hexcolor, s:_csscolor, '^$' ] + +function! css_color#init(type, keywords, groups) + let new_type = index( s:type, a:type ) + let old_type = index( s:pat_for_type, get( b:, 'css_color_pat', '$^' ) ) + + let b:css_color_pat = s:pat_for_type[ max( [ old_type, new_type ] ) ] + let b:css_color_grp = extend( get( b:, 'css_color_grp', [] ), split( a:groups, ',' ), 0 ) + let b:css_color_hi = {} + let b:css_color_syn = {} + + augroup CSSColor + autocmd! * + autocmd ColorScheme call css_color#reinit() + autocmd BufWinEnter call s:create_matches() + autocmd BufWinLeave call s:clear_matches() + augroup END + + call css_color#enable() + + if a:keywords == 'none' | return | endif + + syn case ignore + + " W3C basic colors + + hi BG000000 guibg=#000000 guifg=#FFFFFF ctermbg=16 ctermfg=231 + hi BGc0c0c0 guibg=#C0C0C0 guifg=#000000 ctermbg=250 ctermfg=16 + hi BG808080 guibg=#808080 guifg=#000000 ctermbg=244 ctermfg=16 + hi BGffffff guibg=#FFFFFF guifg=#000000 ctermbg=231 ctermfg=16 + hi BG800000 guibg=#800000 guifg=#FFFFFF ctermbg=88 ctermfg=231 + hi BGff0000 guibg=#FF0000 guifg=#FFFFFF ctermbg=196 ctermfg=231 + hi BG800080 guibg=#800080 guifg=#FFFFFF ctermbg=90 ctermfg=231 + hi BGff00ff guibg=#FF00FF guifg=#FFFFFF ctermbg=201 ctermfg=231 + hi BG008000 guibg=#008000 guifg=#FFFFFF ctermbg=28 ctermfg=231 + hi BG00ff00 guibg=#00FF00 guifg=#000000 ctermbg=46 ctermfg=16 + hi BG808000 guibg=#808000 guifg=#FFFFFF ctermbg=100 ctermfg=231 + hi BGffff00 guibg=#FFFF00 guifg=#000000 ctermbg=226 ctermfg=16 + hi BG000080 guibg=#000080 guifg=#FFFFFF ctermbg=18 ctermfg=231 + hi BG0000ff guibg=#0000FF guifg=#FFFFFF ctermbg=21 ctermfg=231 + hi BG008080 guibg=#008080 guifg=#FFFFFF ctermbg=30 ctermfg=231 + hi BG00ffff guibg=#00FFFF guifg=#000000 ctermbg=51 ctermfg=16 + + call extend( b:css_color_hi, + \{'000000':0,'c0c0c0':1,'808080':1,'ffffff':1,'800000':0,'ff0000':0 + \,'800080':0,'ff00ff':0,'008000':0,'00ff00':1,'808000':0,'ffff00':1 + \,'000080':0,'0000ff':0,'008080':0,'00ffff':1} ) + + syn keyword BG000000 black contained containedin=@colorableGroup + syn keyword BGc0c0c0 silver contained containedin=@colorableGroup + syn keyword BG808080 gray contained containedin=@colorableGroup + syn match BGffffff "\c\" contained containedin=@colorableGroup + syn keyword BG800000 maroon contained containedin=@colorableGroup + syn keyword BGff0000 red contained containedin=@colorableGroup + syn keyword BG800080 purple contained containedin=@colorableGroup + syn keyword BGff00ff fuchsia contained containedin=@colorableGroup + syn keyword BG008000 green contained containedin=@colorableGroup + syn keyword BG00ff00 lime contained containedin=@colorableGroup + syn keyword BG808000 olive contained containedin=@colorableGroup + syn keyword BGffff00 yellow contained containedin=@colorableGroup + syn keyword BG000080 navy contained containedin=@colorableGroup + syn keyword BG0000ff blue contained containedin=@colorableGroup + syn keyword BG008080 teal contained containedin=@colorableGroup + syn keyword BG00ffff aqua contained containedin=@colorableGroup + + if a:keywords == 'basic' | call extend( s:color_bright, b:css_color_hi ) | return | endif + + " W3C extended colors + + hi BG00008b guibg=#00008B guifg=#FFFFFF ctermbg=18 ctermfg=231 + hi BG0000cd guibg=#0000CD guifg=#FFFFFF ctermbg=20 ctermfg=231 + hi BG006400 guibg=#006400 guifg=#FFFFFF ctermbg=22 ctermfg=231 + hi BG008b8b guibg=#008B8B guifg=#FFFFFF ctermbg=30 ctermfg=231 + hi BG00bfff guibg=#00BFFF guifg=#000000 ctermbg=39 ctermfg=16 + hi BG00ced1 guibg=#00CED1 guifg=#000000 ctermbg=6 ctermfg=16 + hi BG00fa9a guibg=#00FA9A guifg=#000000 ctermbg=48 ctermfg=16 + hi BG00ff7f guibg=#00FF7F guifg=#000000 ctermbg=48 ctermfg=16 + hi BG191970 guibg=#191970 guifg=#FFFFFF ctermbg=17 ctermfg=231 + hi BG1e90ff guibg=#1E90FF guifg=#000000 ctermbg=33 ctermfg=16 + hi BG20b2aa guibg=#20B2AA guifg=#000000 ctermbg=37 ctermfg=16 + hi BG228b22 guibg=#228B22 guifg=#FFFFFF ctermbg=28 ctermfg=231 + hi BG2e8b57 guibg=#2E8B57 guifg=#FFFFFF ctermbg=29 ctermfg=231 + hi BG2f4f4f guibg=#2F4F4F guifg=#FFFFFF ctermbg=238 ctermfg=231 + hi BG32cd32 guibg=#32CD32 guifg=#000000 ctermbg=77 ctermfg=16 + hi BG3cb371 guibg=#3CB371 guifg=#000000 ctermbg=71 ctermfg=16 + hi BG40e0d0 guibg=#40E0D0 guifg=#000000 ctermbg=80 ctermfg=16 + hi BG4169e1 guibg=#4169E1 guifg=#FFFFFF ctermbg=62 ctermfg=231 + hi BG4682b4 guibg=#4682B4 guifg=#FFFFFF ctermbg=67 ctermfg=231 + hi BG483d8b guibg=#483D8B guifg=#FFFFFF ctermbg=60 ctermfg=231 + hi BG48d1cc guibg=#48D1CC guifg=#000000 ctermbg=80 ctermfg=16 + hi BG4b0082 guibg=#4B0082 guifg=#FFFFFF ctermbg=54 ctermfg=231 + hi BG556b2f guibg=#556B2F guifg=#FFFFFF ctermbg=239 ctermfg=231 + hi BG5f9ea0 guibg=#5F9EA0 guifg=#000000 ctermbg=73 ctermfg=16 + hi BG6495ed guibg=#6495ED guifg=#000000 ctermbg=69 ctermfg=16 + hi BG66cdaa guibg=#66CDAA guifg=#000000 ctermbg=79 ctermfg=16 + hi BG696969 guibg=#696969 guifg=#FFFFFF ctermbg=242 ctermfg=231 + hi BG6a5acd guibg=#6A5ACD guifg=#FFFFFF ctermbg=62 ctermfg=231 + hi BG6b8e23 guibg=#6B8E23 guifg=#FFFFFF ctermbg=64 ctermfg=231 + hi BG708090 guibg=#708090 guifg=#000000 ctermbg=66 ctermfg=16 + hi BG778899 guibg=#778899 guifg=#000000 ctermbg=102 ctermfg=16 + hi BG7b68ee guibg=#7B68EE guifg=#000000 ctermbg=99 ctermfg=16 + hi BG7cfc00 guibg=#7CFC00 guifg=#000000 ctermbg=118 ctermfg=16 + hi BG7fff00 guibg=#7FFF00 guifg=#000000 ctermbg=118 ctermfg=16 + hi BG7fffd4 guibg=#7FFFD4 guifg=#000000 ctermbg=122 ctermfg=16 + hi BG87ceeb guibg=#87CEEB guifg=#000000 ctermbg=116 ctermfg=16 + hi BG87cefa guibg=#87CEFA guifg=#000000 ctermbg=117 ctermfg=16 + hi BG8a2be2 guibg=#8A2BE2 guifg=#FFFFFF ctermbg=92 ctermfg=231 + hi BG8b0000 guibg=#8B0000 guifg=#FFFFFF ctermbg=88 ctermfg=231 + hi BG8b008b guibg=#8B008B guifg=#FFFFFF ctermbg=90 ctermfg=231 + hi BG8b4513 guibg=#8B4513 guifg=#FFFFFF ctermbg=94 ctermfg=231 + hi BG8fbc8f guibg=#8FBC8F guifg=#000000 ctermbg=108 ctermfg=16 + hi BG90ee90 guibg=#90EE90 guifg=#000000 ctermbg=120 ctermfg=16 + hi BG9370d8 guibg=#9370D8 guifg=#000000 ctermbg=98 ctermfg=16 + hi BG9400d3 guibg=#9400D3 guifg=#FFFFFF ctermbg=92 ctermfg=231 + hi BG98fb98 guibg=#98FB98 guifg=#000000 ctermbg=120 ctermfg=16 + hi BG9932cc guibg=#9932CC guifg=#FFFFFF ctermbg=98 ctermfg=231 + hi BG9acd32 guibg=#9ACD32 guifg=#000000 ctermbg=113 ctermfg=16 + hi BGa0522d guibg=#A0522D guifg=#FFFFFF ctermbg=130 ctermfg=231 + hi BGa52a2a guibg=#A52A2A guifg=#FFFFFF ctermbg=124 ctermfg=231 + hi BGa9a9a9 guibg=#A9A9A9 guifg=#000000 ctermbg=248 ctermfg=16 + hi BGadd8e6 guibg=#ADD8E6 guifg=#000000 ctermbg=152 ctermfg=16 + hi BGadff2f guibg=#ADFF2F guifg=#000000 ctermbg=154 ctermfg=16 + hi BGafeeee guibg=#AFEEEE guifg=#000000 ctermbg=159 ctermfg=16 + hi BGb0c4de guibg=#B0C4DE guifg=#000000 ctermbg=152 ctermfg=16 + hi BGb0e0e6 guibg=#B0E0E6 guifg=#000000 ctermbg=152 ctermfg=16 + hi BGb22222 guibg=#B22222 guifg=#FFFFFF ctermbg=124 ctermfg=231 + hi BGb8860b guibg=#B8860B guifg=#000000 ctermbg=136 ctermfg=16 + hi BGba55d3 guibg=#BA55D3 guifg=#000000 ctermbg=134 ctermfg=16 + hi BGbc8f8f guibg=#BC8F8F guifg=#000000 ctermbg=138 ctermfg=16 + hi BGbdb76b guibg=#BDB76B guifg=#000000 ctermbg=143 ctermfg=16 + hi BGc71585 guibg=#C71585 guifg=#FFFFFF ctermbg=162 ctermfg=231 + hi BGcd5c5c guibg=#CD5C5C guifg=#000000 ctermbg=167 ctermfg=16 + hi BGcd853f guibg=#CD853F guifg=#000000 ctermbg=173 ctermfg=16 + hi BGd2691e guibg=#D2691E guifg=#000000 ctermbg=166 ctermfg=16 + hi BGd2b48c guibg=#D2B48C guifg=#000000 ctermbg=180 ctermfg=16 + hi BGd3d3d3 guibg=#D3D3D3 guifg=#000000 ctermbg=252 ctermfg=16 + hi BGd87093 guibg=#D87093 guifg=#000000 ctermbg=168 ctermfg=16 + hi BGd8bfd8 guibg=#D8BFD8 guifg=#000000 ctermbg=182 ctermfg=16 + hi BGda70d6 guibg=#DA70D6 guifg=#000000 ctermbg=170 ctermfg=16 + hi BGdaa520 guibg=#DAA520 guifg=#000000 ctermbg=178 ctermfg=16 + hi BGdc143c guibg=#DC143C guifg=#FFFFFF ctermbg=161 ctermfg=231 + hi BGdcdcdc guibg=#DCDCDC guifg=#000000 ctermbg=253 ctermfg=16 + hi BGdda0dd guibg=#DDA0DD guifg=#000000 ctermbg=182 ctermfg=16 + hi BGdeb887 guibg=#DEB887 guifg=#000000 ctermbg=180 ctermfg=16 + hi BGe0ffff guibg=#E0FFFF guifg=#000000 ctermbg=195 ctermfg=16 + hi BGe6e6fa guibg=#E6E6FA guifg=#000000 ctermbg=255 ctermfg=16 + hi BGe9967a guibg=#E9967A guifg=#000000 ctermbg=174 ctermfg=16 + hi BGee82ee guibg=#EE82EE guifg=#000000 ctermbg=213 ctermfg=16 + hi BGeee8aa guibg=#EEE8AA guifg=#000000 ctermbg=223 ctermfg=16 + hi BGf08080 guibg=#F08080 guifg=#000000 ctermbg=210 ctermfg=16 + hi BGf0e68c guibg=#F0E68C guifg=#000000 ctermbg=222 ctermfg=16 + hi BGf0f8ff guibg=#F0F8FF guifg=#000000 ctermbg=15 ctermfg=16 + hi BGf0fff0 guibg=#F0FFF0 guifg=#000000 ctermbg=255 ctermfg=16 + hi BGf0ffff guibg=#F0FFFF guifg=#000000 ctermbg=15 ctermfg=16 + hi BGf4a460 guibg=#F4A460 guifg=#000000 ctermbg=215 ctermfg=16 + hi BGf5deb3 guibg=#F5DEB3 guifg=#000000 ctermbg=223 ctermfg=16 + hi BGf5f5dc guibg=#F5F5DC guifg=#000000 ctermbg=230 ctermfg=16 + hi BGf5f5f5 guibg=#F5F5F5 guifg=#000000 ctermbg=255 ctermfg=16 + hi BGf5fffa guibg=#F5FFFA guifg=#000000 ctermbg=15 ctermfg=16 + hi BGf8f8ff guibg=#F8F8FF guifg=#000000 ctermbg=15 ctermfg=16 + hi BGfa8072 guibg=#FA8072 guifg=#000000 ctermbg=209 ctermfg=16 + hi BGfaebd7 guibg=#FAEBD7 guifg=#000000 ctermbg=224 ctermfg=16 + hi BGfaf0e6 guibg=#FAF0E6 guifg=#000000 ctermbg=255 ctermfg=16 + hi BGfafad2 guibg=#FAFAD2 guifg=#000000 ctermbg=230 ctermfg=16 + hi BGfdf5e6 guibg=#FDF5E6 guifg=#000000 ctermbg=230 ctermfg=16 + hi BGff1493 guibg=#FF1493 guifg=#FFFFFF ctermbg=198 ctermfg=231 + hi BGff4500 guibg=#FF4500 guifg=#FFFFFF ctermbg=202 ctermfg=231 + hi BGff6347 guibg=#FF6347 guifg=#000000 ctermbg=203 ctermfg=16 + hi BGff69b4 guibg=#FF69B4 guifg=#000000 ctermbg=205 ctermfg=16 + hi BGff7f50 guibg=#FF7F50 guifg=#000000 ctermbg=209 ctermfg=16 + hi BGff8c00 guibg=#FF8C00 guifg=#000000 ctermbg=208 ctermfg=16 + hi BGffa07a guibg=#FFA07A guifg=#000000 ctermbg=216 ctermfg=16 + hi BGffa500 guibg=#FFA500 guifg=#000000 ctermbg=214 ctermfg=16 + hi BGffb6c1 guibg=#FFB6C1 guifg=#000000 ctermbg=217 ctermfg=16 + hi BGffc0cb guibg=#FFC0CB guifg=#000000 ctermbg=218 ctermfg=16 + hi BGffd700 guibg=#FFD700 guifg=#000000 ctermbg=220 ctermfg=16 + hi BGffdab9 guibg=#FFDAB9 guifg=#000000 ctermbg=223 ctermfg=16 + hi BGffdead guibg=#FFDEAD guifg=#000000 ctermbg=223 ctermfg=16 + hi BGffe4b5 guibg=#FFE4B5 guifg=#000000 ctermbg=223 ctermfg=16 + hi BGffe4c4 guibg=#FFE4C4 guifg=#000000 ctermbg=224 ctermfg=16 + hi BGffe4e1 guibg=#FFE4E1 guifg=#000000 ctermbg=224 ctermfg=16 + hi BGffebcd guibg=#FFEBCD guifg=#000000 ctermbg=224 ctermfg=16 + hi BGffefd5 guibg=#FFEFD5 guifg=#000000 ctermbg=230 ctermfg=16 + hi BGfff0f5 guibg=#FFF0F5 guifg=#000000 ctermbg=15 ctermfg=16 + hi BGfff5ee guibg=#FFF5EE guifg=#000000 ctermbg=255 ctermfg=16 + hi BGfff8dc guibg=#FFF8DC guifg=#000000 ctermbg=230 ctermfg=16 + hi BGfffacd guibg=#FFFACD guifg=#000000 ctermbg=230 ctermfg=16 + hi BGfffaf0 guibg=#FFFAF0 guifg=#000000 ctermbg=15 ctermfg=16 + hi BGfffafa guibg=#FFFAFA guifg=#000000 ctermbg=15 ctermfg=16 + hi BGffffe0 guibg=#FFFFE0 guifg=#000000 ctermbg=230 ctermfg=16 + hi BGfffff0 guibg=#FFFFF0 guifg=#000000 ctermbg=15 ctermfg=16 + + call extend( b:css_color_hi, + \{'00008b':0,'0000cd':0,'006400':0,'008b8b':0,'00bfff':1,'00ced1':1 + \,'00fa9a':1,'00ff7f':1,'191970':0,'1e90ff':1,'20b2aa':1,'228b22':0 + \,'2e8b57':0,'2f4f4f':0,'32cd32':1,'3cb371':1,'40e0d0':1,'4169e1':0 + \,'4682b4':0,'483d8b':0,'48d1cc':1,'4b0082':0,'556b2f':0,'5f9ea0':1 + \,'6495ed':1,'66cdaa':1,'696969':0,'6a5acd':0,'6b8e23':0,'708090':1 + \,'778899':1,'7b68ee':1,'7cfc00':1,'7fff00':1,'7fffd4':1,'87ceeb':1 + \,'87cefa':1,'8a2be2':0,'8b0000':0,'8b008b':0,'8b4513':0,'8fbc8f':1 + \,'90ee90':1,'9370d8':1,'9400d3':0,'98fb98':1,'9932cc':0,'9acd32':1 + \,'a0522d':0,'a52a2a':0,'a9a9a9':1,'add8e6':1,'adff2f':1,'afeeee':1 + \,'b0c4de':1,'b0e0e6':1,'b22222':0,'b8860b':1,'ba55d3':1,'bc8f8f':1 + \,'bdb76b':1,'c71585':0,'cd5c5c':1,'cd853f':1,'d2691e':1,'d2b48c':1 + \,'d3d3d3':1,'d87093':1,'d8bfd8':1,'da70d6':1,'daa520':1,'dc143c':0 + \,'dcdcdc':1,'dda0dd':1,'deb887':1,'e0ffff':1,'e6e6fa':1,'e9967a':1 + \,'ee82ee':1,'eee8aa':1,'f08080':1,'f0e68c':1,'f0f8ff':1,'f0fff0':1 + \,'f0ffff':1,'f4a460':1,'f5deb3':1,'f5f5dc':1,'f5f5f5':1,'f5fffa':1 + \,'f8f8ff':1,'fa8072':1,'faebd7':1,'faf0e6':1,'fafad2':1,'fdf5e6':1 + \,'ff1493':0,'ff4500':0,'ff6347':1,'ff69b4':1,'ff7f50':1,'ff8c00':1 + \,'ffa07a':1,'ffa500':1,'ffb6c1':1,'ffc0cb':1,'ffd700':1,'ffdab9':1 + \,'ffdead':1,'ffe4b5':1,'ffe4c4':1,'ffe4e1':1,'ffebcd':1,'ffefd5':1 + \,'fff0f5':1,'fff5ee':1,'fff8dc':1,'fffacd':1,'fffaf0':1,'fffafa':1 + \,'ffffe0':1,'fffff0':1} ) + + syn keyword BGf0f8ff AliceBlue contained containedin=@colorableGroup + syn keyword BGfaebd7 AntiqueWhite contained containedin=@colorableGroup + syn keyword BG7fffd4 Aquamarine contained containedin=@colorableGroup + syn keyword BGf0ffff Azure contained containedin=@colorableGroup + syn keyword BGf5f5dc Beige contained containedin=@colorableGroup + syn keyword BGffe4c4 Bisque contained containedin=@colorableGroup + syn keyword BGffebcd BlanchedAlmond contained containedin=@colorableGroup + syn keyword BG8a2be2 BlueViolet contained containedin=@colorableGroup + syn keyword BGa52a2a Brown contained containedin=@colorableGroup + syn keyword BGdeb887 BurlyWood contained containedin=@colorableGroup + syn keyword BG5f9ea0 CadetBlue contained containedin=@colorableGroup + syn keyword BG7fff00 Chartreuse contained containedin=@colorableGroup + syn keyword BGd2691e Chocolate contained containedin=@colorableGroup + syn keyword BGff7f50 Coral contained containedin=@colorableGroup + syn keyword BG6495ed CornflowerBlue contained containedin=@colorableGroup + syn keyword BGfff8dc Cornsilk contained containedin=@colorableGroup + syn keyword BGdc143c Crimson contained containedin=@colorableGroup + syn keyword BG00ffff Cyan contained containedin=@colorableGroup + syn keyword BG00008b DarkBlue contained containedin=@colorableGroup + syn keyword BG008b8b DarkCyan contained containedin=@colorableGroup + syn keyword BGb8860b DarkGoldenRod contained containedin=@colorableGroup + syn keyword BGa9a9a9 DarkGray contained containedin=@colorableGroup + syn keyword BG006400 DarkGreen contained containedin=@colorableGroup + syn keyword BGa9a9a9 DarkGrey contained containedin=@colorableGroup + syn keyword BGbdb76b DarkKhaki contained containedin=@colorableGroup + syn keyword BG8b008b DarkMagenta contained containedin=@colorableGroup + syn keyword BG556b2f DarkOliveGreen contained containedin=@colorableGroup + syn keyword BG9932cc DarkOrchid contained containedin=@colorableGroup + syn keyword BG8b0000 DarkRed contained containedin=@colorableGroup + syn keyword BGe9967a DarkSalmon contained containedin=@colorableGroup + syn keyword BG8fbc8f DarkSeaGreen contained containedin=@colorableGroup + syn keyword BG483d8b DarkSlateBlue contained containedin=@colorableGroup + syn keyword BG2f4f4f DarkSlateGray contained containedin=@colorableGroup + syn keyword BG2f4f4f DarkSlateGrey contained containedin=@colorableGroup + syn keyword BG00ced1 DarkTurquoise contained containedin=@colorableGroup + syn keyword BG9400d3 DarkViolet contained containedin=@colorableGroup + syn keyword BGff8c00 Darkorange contained containedin=@colorableGroup + syn keyword BGff1493 DeepPink contained containedin=@colorableGroup + syn keyword BG00bfff DeepSkyBlue contained containedin=@colorableGroup + syn keyword BG696969 DimGray contained containedin=@colorableGroup + syn keyword BG696969 DimGrey contained containedin=@colorableGroup + syn keyword BG1e90ff DodgerBlue contained containedin=@colorableGroup + syn keyword BGb22222 FireBrick contained containedin=@colorableGroup + syn keyword BGfffaf0 FloralWhite contained containedin=@colorableGroup + syn keyword BG228b22 ForestGreen contained containedin=@colorableGroup + syn keyword BGdcdcdc Gainsboro contained containedin=@colorableGroup + syn keyword BGf8f8ff GhostWhite contained containedin=@colorableGroup + syn keyword BGffd700 Gold contained containedin=@colorableGroup + syn keyword BGdaa520 GoldenRod contained containedin=@colorableGroup + syn keyword BGadff2f GreenYellow contained containedin=@colorableGroup + syn keyword BG808080 Grey contained containedin=@colorableGroup + syn keyword BGf0fff0 HoneyDew contained containedin=@colorableGroup + syn keyword BGff69b4 HotPink contained containedin=@colorableGroup + syn keyword BGcd5c5c IndianRed contained containedin=@colorableGroup + syn keyword BG4b0082 Indigo contained containedin=@colorableGroup + syn keyword BGfffff0 Ivory contained containedin=@colorableGroup + syn keyword BGf0e68c Khaki contained containedin=@colorableGroup + syn keyword BGe6e6fa Lavender contained containedin=@colorableGroup + syn keyword BGfff0f5 LavenderBlush contained containedin=@colorableGroup + syn keyword BG7cfc00 LawnGreen contained containedin=@colorableGroup + syn keyword BGfffacd LemonChiffon contained containedin=@colorableGroup + syn keyword BGadd8e6 LightBlue contained containedin=@colorableGroup + syn keyword BGf08080 LightCoral contained containedin=@colorableGroup + syn keyword BGe0ffff LightCyan contained containedin=@colorableGroup + syn keyword BGfafad2 LightGoldenRodYellow contained containedin=@colorableGroup + syn keyword BGd3d3d3 LightGray contained containedin=@colorableGroup + syn keyword BG90ee90 LightGreen contained containedin=@colorableGroup + syn keyword BGd3d3d3 LightGrey contained containedin=@colorableGroup + syn keyword BGffb6c1 LightPink contained containedin=@colorableGroup + syn keyword BGffa07a LightSalmon contained containedin=@colorableGroup + syn keyword BG20b2aa LightSeaGreen contained containedin=@colorableGroup + syn keyword BG87cefa LightSkyBlue contained containedin=@colorableGroup + syn keyword BG778899 LightSlateGray contained containedin=@colorableGroup + syn keyword BG778899 LightSlateGrey contained containedin=@colorableGroup + syn keyword BGb0c4de LightSteelBlue contained containedin=@colorableGroup + syn keyword BGffffe0 LightYellow contained containedin=@colorableGroup + syn keyword BG32cd32 LimeGreen contained containedin=@colorableGroup + syn keyword BGfaf0e6 Linen contained containedin=@colorableGroup + syn keyword BGff00ff Magenta contained containedin=@colorableGroup + syn keyword BG66cdaa MediumAquaMarine contained containedin=@colorableGroup + syn keyword BG0000cd MediumBlue contained containedin=@colorableGroup + syn keyword BGba55d3 MediumOrchid contained containedin=@colorableGroup + syn keyword BG9370d8 MediumPurple contained containedin=@colorableGroup + syn keyword BG3cb371 MediumSeaGreen contained containedin=@colorableGroup + syn keyword BG7b68ee MediumSlateBlue contained containedin=@colorableGroup + syn keyword BG00fa9a MediumSpringGreen contained containedin=@colorableGroup + syn keyword BG48d1cc MediumTurquoise contained containedin=@colorableGroup + syn keyword BGc71585 MediumVioletRed contained containedin=@colorableGroup + syn keyword BG191970 MidnightBlue contained containedin=@colorableGroup + syn keyword BGf5fffa MintCream contained containedin=@colorableGroup + syn keyword BGffe4e1 MistyRose contained containedin=@colorableGroup + syn keyword BGffe4b5 Moccasin contained containedin=@colorableGroup + syn keyword BGffdead NavajoWhite contained containedin=@colorableGroup + syn keyword BGfdf5e6 OldLace contained containedin=@colorableGroup + syn keyword BG6b8e23 OliveDrab contained containedin=@colorableGroup + syn keyword BGffa500 Orange contained containedin=@colorableGroup + syn keyword BGff4500 OrangeRed contained containedin=@colorableGroup + syn keyword BGda70d6 Orchid contained containedin=@colorableGroup + syn keyword BGeee8aa PaleGoldenRod contained containedin=@colorableGroup + syn keyword BG98fb98 PaleGreen contained containedin=@colorableGroup + syn keyword BGafeeee PaleTurquoise contained containedin=@colorableGroup + syn keyword BGd87093 PaleVioletRed contained containedin=@colorableGroup + syn keyword BGffefd5 PapayaWhip contained containedin=@colorableGroup + syn keyword BGffdab9 PeachPuff contained containedin=@colorableGroup + syn keyword BGcd853f Peru contained containedin=@colorableGroup + syn keyword BGffc0cb Pink contained containedin=@colorableGroup + syn keyword BGdda0dd Plum contained containedin=@colorableGroup + syn keyword BGb0e0e6 PowderBlue contained containedin=@colorableGroup + syn keyword BGbc8f8f RosyBrown contained containedin=@colorableGroup + syn keyword BG4169e1 RoyalBlue contained containedin=@colorableGroup + syn keyword BG8b4513 SaddleBrown contained containedin=@colorableGroup + syn keyword BGfa8072 Salmon contained containedin=@colorableGroup + syn keyword BGf4a460 SandyBrown contained containedin=@colorableGroup + syn keyword BG2e8b57 SeaGreen contained containedin=@colorableGroup + syn keyword BGfff5ee SeaShell contained containedin=@colorableGroup + syn keyword BGa0522d Sienna contained containedin=@colorableGroup + syn keyword BG87ceeb SkyBlue contained containedin=@colorableGroup + syn keyword BG6a5acd SlateBlue contained containedin=@colorableGroup + syn keyword BG708090 SlateGray contained containedin=@colorableGroup + syn keyword BG708090 SlateGrey contained containedin=@colorableGroup + syn keyword BGfffafa Snow contained containedin=@colorableGroup + syn keyword BG00ff7f SpringGreen contained containedin=@colorableGroup + syn keyword BG4682b4 SteelBlue contained containedin=@colorableGroup + syn keyword BGd2b48c Tan contained containedin=@colorableGroup + syn keyword BGd8bfd8 Thistle contained containedin=@colorableGroup + syn keyword BGff6347 Tomato contained containedin=@colorableGroup + syn keyword BG40e0d0 Turquoise contained containedin=@colorableGroup + syn keyword BGee82ee Violet contained containedin=@colorableGroup + syn keyword BGf5deb3 Wheat contained containedin=@colorableGroup + syn keyword BGf5f5f5 WhiteSmoke contained containedin=@colorableGroup + syn keyword BG9acd32 YellowGreen contained containedin=@colorableGroup + + call extend( s:color_bright, b:css_color_hi ) +endfunction diff --git a/sources_non_forked/vim-css-color/tests/bench b/sources_non_forked/vim-css-color/tests/bench new file mode 100755 index 00000000..21e6eea5 --- /dev/null +++ b/sources_non_forked/vim-css-color/tests/bench @@ -0,0 +1,6 @@ +#!/bin/sh +set -e +s=startuptime.txt +vim --startuptime $s -o -c qa "$@" +perl -lane'$sum += $F[1] if m!/\.vim/after/syntax/css\.vim$!; END {print $sum}' $s +rm $s diff --git a/sources_non_forked/vim-css-color/tests/example.css b/sources_non_forked/vim-css-color/tests/example.css new file mode 100644 index 00000000..d420cbd5 --- /dev/null +++ b/sources_non_forked/vim-css-color/tests/example.css @@ -0,0 +1,24 @@ +i { background: #359 } +b { background: #335599 } +u { background: rgba(144, 0, 0, .5) } +s { background: hsl(0, 100%, 50%) } + +*::color1 { -x-: #359 } +*::color2 { -x-: #335599 } +*::color3 { -x-: rgba(144, 0, 0, .5) } +*::color4 { -x-: hsl(0, 100%, 50%) } + +/* + * #123, #456 + */ + +/* #123456 */ + +ul { + color: white; +} + +ul li { + color: yellow; + background: black; +} diff --git a/sources_non_forked/vim-css-color/tests/example.jsx b/sources_non_forked/vim-css-color/tests/example.jsx new file mode 100644 index 00000000..06084666 --- /dev/null +++ b/sources_non_forked/vim-css-color/tests/example.jsx @@ -0,0 +1,11 @@ +var Example = React.createClass({ + render: function() { + var style = { + color: '#ffde00', + backgroundColor: 'green', + border: '3px dotted rgba(255,0,0)' + fontSize: 200 + }; + return
Hi!
; + } +}); diff --git a/sources_non_forked/vim-css-color/tests/example.less b/sources_non_forked/vim-css-color/tests/example.less new file mode 100644 index 00000000..ffadbad9 --- /dev/null +++ b/sources_non_forked/vim-css-color/tests/example.less @@ -0,0 +1,24 @@ +i { background: #359 } +b { background: #335599 } +u { background: rgba(144, 0, 0, .5) } +s { background: hsl(0, 100%, 50%) } + +@color1: #359; +@color1: #335599; +@color3: rgba(144, 0, 0, .5); +@color4: hsl(0, 100%, 50%); + +/* + * #123, #456 + */ + +// #123456 + +ul { + color: white; + + li { + color: yellow; + background: black; + } +} diff --git a/sources_non_forked/vim-css-color/tests/example.sass b/sources_non_forked/vim-css-color/tests/example.sass new file mode 100644 index 00000000..e1c8cd04 --- /dev/null +++ b/sources_non_forked/vim-css-color/tests/example.sass @@ -0,0 +1,25 @@ +i + background: #359 +b + background: #335599 +u + background: rgba(144, 0, 0, .5) +s + background: hsl(0, 100%, 50%) + +!color1 = #359 +!color2 = #335599 +!color3 = rgba(144, 0, 0, .5) +!color4 = hsl(0, 100%, 50%) + +/* + * #123, #456 + */ + +// #123456 + +ul + color = white + li + color = yellow + background = black diff --git a/sources_non_forked/vim-css-color/tests/example.scss b/sources_non_forked/vim-css-color/tests/example.scss new file mode 100644 index 00000000..a93f4daa --- /dev/null +++ b/sources_non_forked/vim-css-color/tests/example.scss @@ -0,0 +1,24 @@ +i { background: #359 } +b { background: #335599 } +u { background: rgba(144, 0, 0, .5) } +s { background: hsl(0, 100%, 50%) } + +$color1: #359; +$color2: #335599; +$color3: rgba(144, 0, 0, .5); +$color4: hsl(0, 100%, 50%); + +/* + * #123, #456 + */ + +// #123456 + +ul { + color: white; + + li { + color: yellow; + background: black; + } +} diff --git a/sources_non_forked/vim-css-color/tests/example.stylus b/sources_non_forked/vim-css-color/tests/example.stylus new file mode 100644 index 00000000..97895070 --- /dev/null +++ b/sources_non_forked/vim-css-color/tests/example.stylus @@ -0,0 +1,28 @@ +i + background #359 +b + background #335599 +u + background rgba(144, 0, 0, .5) +s + background hsl(0, 100%, 50%) + +color1 = #359 +color2 = #335599 +color3 = rgba(144, 0, 0, .5) +color4 = hsl(0, 100%, 50%) + +/* + * #123, #456 + */ + +// #123456 + +ul { + color: white; + + li { + color: yellow; + background: black; + } +} diff --git a/sources_non_forked/vim-css-color/tests/torture.css b/sources_non_forked/vim-css-color/tests/torture.css new file mode 100644 index 00000000..5705f848 --- /dev/null +++ b/sources_non_forked/vim-css-color/tests/torture.css @@ -0,0 +1,256 @@ +p { color: #300000; color: #300001; color: #300002; color: #300003; color: #300004; color: #300005; color: #300006; color: #300007; color: #300008; color: #300009; color: #30000a; color: #30000b; color: #30000c; color: #30000d; color: #30000e; color: #30000f; +color: #300100; color: #300101; color: #300102; color: #300103; color: #300104; color: #300105; color: #300106; color: #300107; color: #300108; color: #300109; color: #30010a; color: #30010b; color: #30010c; color: #30010d; color: #30010e; color: #30010f; +color: #300200; color: #300201; color: #300202; color: #300203; color: #300204; color: #300205; color: #300206; color: #300207; color: #300208; color: #300209; color: #30020a; color: #30020b; color: #30020c; color: #30020d; color: #30020e; color: #30020f; +color: #300300; color: #300301; color: #300302; color: #300303; color: #300304; color: #300305; color: #300306; color: #300307; color: #300308; color: #300309; color: #30030a; color: #30030b; color: #30030c; color: #30030d; color: #30030e; color: #30030f; +color: #300400; color: #300401; color: #300402; color: #300403; color: #300404; color: #300405; color: #300406; color: #300407; color: #300408; color: #300409; color: #30040a; color: #30040b; color: #30040c; color: #30040d; color: #30040e; color: #30040f; +color: #300500; color: #300501; color: #300502; color: #300503; color: #300504; color: #300505; color: #300506; color: #300507; color: #300508; color: #300509; color: #30050a; color: #30050b; color: #30050c; color: #30050d; color: #30050e; color: #30050f; +color: #300600; color: #300601; color: #300602; color: #300603; color: #300604; color: #300605; color: #300606; color: #300607; color: #300608; color: #300609; color: #30060a; color: #30060b; color: #30060c; color: #30060d; color: #30060e; color: #30060f; +color: #300700; color: #300701; color: #300702; color: #300703; color: #300704; color: #300705; color: #300706; color: #300707; color: #300708; color: #300709; color: #30070a; color: #30070b; color: #30070c; color: #30070d; color: #30070e; color: #30070f; +color: #300800; color: #300801; color: #300802; color: #300803; color: #300804; color: #300805; color: #300806; color: #300807; color: #300808; color: #300809; color: #30080a; color: #30080b; color: #30080c; color: #30080d; color: #30080e; color: #30080f; +color: #300900; color: #300901; color: #300902; color: #300903; color: #300904; color: #300905; color: #300906; color: #300907; color: #300908; color: #300909; color: #30090a; color: #30090b; color: #30090c; color: #30090d; color: #30090e; color: #30090f; +color: #300a00; color: #300a01; color: #300a02; color: #300a03; color: #300a04; color: #300a05; color: #300a06; color: #300a07; color: #300a08; color: #300a09; color: #300a0a; color: #300a0b; color: #300a0c; color: #300a0d; color: #300a0e; color: #300a0f; +color: #300b00; color: #300b01; color: #300b02; color: #300b03; color: #300b04; color: #300b05; color: #300b06; color: #300b07; color: #300b08; color: #300b09; color: #300b0a; color: #300b0b; color: #300b0c; color: #300b0d; color: #300b0e; color: #300b0f; +color: #300c00; color: #300c01; color: #300c02; color: #300c03; color: #300c04; color: #300c05; color: #300c06; color: #300c07; color: #300c08; color: #300c09; color: #300c0a; color: #300c0b; color: #300c0c; color: #300c0d; color: #300c0e; color: #300c0f; +color: #300d00; color: #300d01; color: #300d02; color: #300d03; color: #300d04; color: #300d05; color: #300d06; color: #300d07; color: #300d08; color: #300d09; color: #300d0a; color: #300d0b; color: #300d0c; color: #300d0d; color: #300d0e; color: #300d0f; +color: #300e00; color: #300e01; color: #300e02; color: #300e03; color: #300e04; color: #300e05; color: #300e06; color: #300e07; color: #300e08; color: #300e09; color: #300e0a; color: #300e0b; color: #300e0c; color: #300e0d; color: #300e0e; color: #300e0f; +color: #300f00; color: #300f01; color: #300f02; color: #300f03; color: #300f04; color: #300f05; color: #300f06; color: #300f07; color: #300f08; color: #300f09; color: #300f0a; color: #300f0b; color: #300f0c; color: #300f0d; color: #300f0e; color: #300f0f; +color: #301000; color: #301001; color: #301002; color: #301003; color: #301004; color: #301005; color: #301006; color: #301007; color: #301008; color: #301009; color: #30100a; color: #30100b; color: #30100c; color: #30100d; color: #30100e; color: #30100f; +color: #301100; color: #301101; color: #301102; color: #301103; color: #301104; color: #301105; color: #301106; color: #301107; color: #301108; color: #301109; color: #30110a; color: #30110b; color: #30110c; color: #30110d; color: #30110e; color: #30110f; +color: #301200; color: #301201; color: #301202; color: #301203; color: #301204; color: #301205; color: #301206; color: #301207; color: #301208; color: #301209; color: #30120a; color: #30120b; color: #30120c; color: #30120d; color: #30120e; color: #30120f; +color: #301300; color: #301301; color: #301302; color: #301303; color: #301304; color: #301305; color: #301306; color: #301307; color: #301308; color: #301309; color: #30130a; color: #30130b; color: #30130c; color: #30130d; color: #30130e; color: #30130f; +color: #301400; color: #301401; color: #301402; color: #301403; color: #301404; color: #301405; color: #301406; color: #301407; color: #301408; color: #301409; color: #30140a; color: #30140b; color: #30140c; color: #30140d; color: #30140e; color: #30140f; +color: #301500; color: #301501; color: #301502; color: #301503; color: #301504; color: #301505; color: #301506; color: #301507; color: #301508; color: #301509; color: #30150a; color: #30150b; color: #30150c; color: #30150d; color: #30150e; color: #30150f; +color: #301600; color: #301601; color: #301602; color: #301603; color: #301604; color: #301605; color: #301606; color: #301607; color: #301608; color: #301609; color: #30160a; color: #30160b; color: #30160c; color: #30160d; color: #30160e; color: #30160f; +color: #301700; color: #301701; color: #301702; color: #301703; color: #301704; color: #301705; color: #301706; color: #301707; color: #301708; color: #301709; color: #30170a; color: #30170b; color: #30170c; color: #30170d; color: #30170e; color: #30170f; +color: #301800; color: #301801; color: #301802; color: #301803; color: #301804; color: #301805; color: #301806; color: #301807; color: #301808; color: #301809; color: #30180a; color: #30180b; color: #30180c; color: #30180d; color: #30180e; color: #30180f; +color: #301900; color: #301901; color: #301902; color: #301903; color: #301904; color: #301905; color: #301906; color: #301907; color: #301908; color: #301909; color: #30190a; color: #30190b; color: #30190c; color: #30190d; color: #30190e; color: #30190f; +color: #301a00; color: #301a01; color: #301a02; color: #301a03; color: #301a04; color: #301a05; color: #301a06; color: #301a07; color: #301a08; color: #301a09; color: #301a0a; color: #301a0b; color: #301a0c; color: #301a0d; color: #301a0e; color: #301a0f; +color: #301b00; color: #301b01; color: #301b02; color: #301b03; color: #301b04; color: #301b05; color: #301b06; color: #301b07; color: #301b08; color: #301b09; color: #301b0a; color: #301b0b; color: #301b0c; color: #301b0d; color: #301b0e; color: #301b0f; +color: #301c00; color: #301c01; color: #301c02; color: #301c03; color: #301c04; color: #301c05; color: #301c06; color: #301c07; color: #301c08; color: #301c09; color: #301c0a; color: #301c0b; color: #301c0c; color: #301c0d; color: #301c0e; color: #301c0f; +color: #301d00; color: #301d01; color: #301d02; color: #301d03; color: #301d04; color: #301d05; color: #301d06; color: #301d07; color: #301d08; color: #301d09; color: #301d0a; color: #301d0b; color: #301d0c; color: #301d0d; color: #301d0e; color: #301d0f; +color: #301e00; color: #301e01; color: #301e02; color: #301e03; color: #301e04; color: #301e05; color: #301e06; color: #301e07; color: #301e08; color: #301e09; color: #301e0a; color: #301e0b; color: #301e0c; color: #301e0d; color: #301e0e; color: #301e0f; +color: #301f00; color: #301f01; color: #301f02; color: #301f03; color: #301f04; color: #301f05; color: #301f06; color: #301f07; color: #301f08; color: #301f09; color: #301f0a; color: #301f0b; color: #301f0c; color: #301f0d; color: #301f0e; color: #301f0f; +color: #302000; color: #302001; color: #302002; color: #302003; color: #302004; color: #302005; color: #302006; color: #302007; color: #302008; color: #302009; color: #30200a; color: #30200b; color: #30200c; color: #30200d; color: #30200e; color: #30200f; +color: #302100; color: #302101; color: #302102; color: #302103; color: #302104; color: #302105; color: #302106; color: #302107; color: #302108; color: #302109; color: #30210a; color: #30210b; color: #30210c; color: #30210d; color: #30210e; color: #30210f; +color: #302200; color: #302201; color: #302202; color: #302203; color: #302204; color: #302205; color: #302206; color: #302207; color: #302208; color: #302209; color: #30220a; color: #30220b; color: #30220c; color: #30220d; color: #30220e; color: #30220f; +color: #302300; color: #302301; color: #302302; color: #302303; color: #302304; color: #302305; color: #302306; color: #302307; color: #302308; color: #302309; color: #30230a; color: #30230b; color: #30230c; color: #30230d; color: #30230e; color: #30230f; +color: #302400; color: #302401; color: #302402; color: #302403; color: #302404; color: #302405; color: #302406; color: #302407; color: #302408; color: #302409; color: #30240a; color: #30240b; color: #30240c; color: #30240d; color: #30240e; color: #30240f; +color: #302500; color: #302501; color: #302502; color: #302503; color: #302504; color: #302505; color: #302506; color: #302507; color: #302508; color: #302509; color: #30250a; color: #30250b; color: #30250c; color: #30250d; color: #30250e; color: #30250f; +color: #302600; color: #302601; color: #302602; color: #302603; color: #302604; color: #302605; color: #302606; color: #302607; color: #302608; color: #302609; color: #30260a; color: #30260b; color: #30260c; color: #30260d; color: #30260e; color: #30260f; +color: #302700; color: #302701; color: #302702; color: #302703; color: #302704; color: #302705; color: #302706; color: #302707; color: #302708; color: #302709; color: #30270a; color: #30270b; color: #30270c; color: #30270d; color: #30270e; color: #30270f; +color: #302800; color: #302801; color: #302802; color: #302803; color: #302804; color: #302805; color: #302806; color: #302807; color: #302808; color: #302809; color: #30280a; color: #30280b; color: #30280c; color: #30280d; color: #30280e; color: #30280f; +color: #302900; color: #302901; color: #302902; color: #302903; color: #302904; color: #302905; color: #302906; color: #302907; color: #302908; color: #302909; color: #30290a; color: #30290b; color: #30290c; color: #30290d; color: #30290e; color: #30290f; +color: #302a00; color: #302a01; color: #302a02; color: #302a03; color: #302a04; color: #302a05; color: #302a06; color: #302a07; color: #302a08; color: #302a09; color: #302a0a; color: #302a0b; color: #302a0c; color: #302a0d; color: #302a0e; color: #302a0f; +color: #302b00; color: #302b01; color: #302b02; color: #302b03; color: #302b04; color: #302b05; color: #302b06; color: #302b07; color: #302b08; color: #302b09; color: #302b0a; color: #302b0b; color: #302b0c; color: #302b0d; color: #302b0e; color: #302b0f; +color: #302c00; color: #302c01; color: #302c02; color: #302c03; color: #302c04; color: #302c05; color: #302c06; color: #302c07; color: #302c08; color: #302c09; color: #302c0a; color: #302c0b; color: #302c0c; color: #302c0d; color: #302c0e; color: #302c0f; +color: #302d00; color: #302d01; color: #302d02; color: #302d03; color: #302d04; color: #302d05; color: #302d06; color: #302d07; color: #302d08; color: #302d09; color: #302d0a; color: #302d0b; color: #302d0c; color: #302d0d; color: #302d0e; color: #302d0f; +color: #302e00; color: #302e01; color: #302e02; color: #302e03; color: #302e04; color: #302e05; color: #302e06; color: #302e07; color: #302e08; color: #302e09; color: #302e0a; color: #302e0b; color: #302e0c; color: #302e0d; color: #302e0e; color: #302e0f; +color: #302f00; color: #302f01; color: #302f02; color: #302f03; color: #302f04; color: #302f05; color: #302f06; color: #302f07; color: #302f08; color: #302f09; color: #302f0a; color: #302f0b; color: #302f0c; color: #302f0d; color: #302f0e; color: #302f0f; +color: #303000; color: #303001; color: #303002; color: #303003; color: #303004; color: #303005; color: #303006; color: #303007; color: #303008; color: #303009; color: #30300a; color: #30300b; color: #30300c; color: #30300d; color: #30300e; color: #30300f; +color: #303100; color: #303101; color: #303102; color: #303103; color: #303104; color: #303105; color: #303106; color: #303107; color: #303108; color: #303109; color: #30310a; color: #30310b; color: #30310c; color: #30310d; color: #30310e; color: #30310f; +color: #303200; color: #303201; color: #303202; color: #303203; color: #303204; color: #303205; color: #303206; color: #303207; color: #303208; color: #303209; color: #30320a; color: #30320b; color: #30320c; color: #30320d; color: #30320e; color: #30320f; +color: #303300; color: #303301; color: #303302; color: #303303; color: #303304; color: #303305; color: #303306; color: #303307; color: #303308; color: #303309; color: #30330a; color: #30330b; color: #30330c; color: #30330d; color: #30330e; color: #30330f; +color: #303400; color: #303401; color: #303402; color: #303403; color: #303404; color: #303405; color: #303406; color: #303407; color: #303408; color: #303409; color: #30340a; color: #30340b; color: #30340c; color: #30340d; color: #30340e; color: #30340f; +color: #303500; color: #303501; color: #303502; color: #303503; color: #303504; color: #303505; color: #303506; color: #303507; color: #303508; color: #303509; color: #30350a; color: #30350b; color: #30350c; color: #30350d; color: #30350e; color: #30350f; +color: #303600; color: #303601; color: #303602; color: #303603; color: #303604; color: #303605; color: #303606; color: #303607; color: #303608; color: #303609; color: #30360a; color: #30360b; color: #30360c; color: #30360d; color: #30360e; color: #30360f; +color: #303700; color: #303701; color: #303702; color: #303703; color: #303704; color: #303705; color: #303706; color: #303707; color: #303708; color: #303709; color: #30370a; color: #30370b; color: #30370c; color: #30370d; color: #30370e; color: #30370f; +color: #303800; color: #303801; color: #303802; color: #303803; color: #303804; color: #303805; color: #303806; color: #303807; color: #303808; color: #303809; color: #30380a; color: #30380b; color: #30380c; color: #30380d; color: #30380e; color: #30380f; +color: #303900; color: #303901; color: #303902; color: #303903; color: #303904; color: #303905; color: #303906; color: #303907; color: #303908; color: #303909; color: #30390a; color: #30390b; color: #30390c; color: #30390d; color: #30390e; color: #30390f; +color: #303a00; color: #303a01; color: #303a02; color: #303a03; color: #303a04; color: #303a05; color: #303a06; color: #303a07; color: #303a08; color: #303a09; color: #303a0a; color: #303a0b; color: #303a0c; color: #303a0d; color: #303a0e; color: #303a0f; +color: #303b00; color: #303b01; color: #303b02; color: #303b03; color: #303b04; color: #303b05; color: #303b06; color: #303b07; color: #303b08; color: #303b09; color: #303b0a; color: #303b0b; color: #303b0c; color: #303b0d; color: #303b0e; color: #303b0f; +color: #303c00; color: #303c01; color: #303c02; color: #303c03; color: #303c04; color: #303c05; color: #303c06; color: #303c07; color: #303c08; color: #303c09; color: #303c0a; color: #303c0b; color: #303c0c; color: #303c0d; color: #303c0e; color: #303c0f; +color: #303d00; color: #303d01; color: #303d02; color: #303d03; color: #303d04; color: #303d05; color: #303d06; color: #303d07; color: #303d08; color: #303d09; color: #303d0a; color: #303d0b; color: #303d0c; color: #303d0d; color: #303d0e; color: #303d0f; +color: #303e00; color: #303e01; color: #303e02; color: #303e03; color: #303e04; color: #303e05; color: #303e06; color: #303e07; color: #303e08; color: #303e09; color: #303e0a; color: #303e0b; color: #303e0c; color: #303e0d; color: #303e0e; color: #303e0f; +color: #303f00; color: #303f01; color: #303f02; color: #303f03; color: #303f04; color: #303f05; color: #303f06; color: #303f07; color: #303f08; color: #303f09; color: #303f0a; color: #303f0b; color: #303f0c; color: #303f0d; color: #303f0e; color: #303f0f; +color: #304000; color: #304001; color: #304002; color: #304003; color: #304004; color: #304005; color: #304006; color: #304007; color: #304008; color: #304009; color: #30400a; color: #30400b; color: #30400c; color: #30400d; color: #30400e; color: #30400f; +color: #304100; color: #304101; color: #304102; color: #304103; color: #304104; color: #304105; color: #304106; color: #304107; color: #304108; color: #304109; color: #30410a; color: #30410b; color: #30410c; color: #30410d; color: #30410e; color: #30410f; +color: #304200; color: #304201; color: #304202; color: #304203; color: #304204; color: #304205; color: #304206; color: #304207; color: #304208; color: #304209; color: #30420a; color: #30420b; color: #30420c; color: #30420d; color: #30420e; color: #30420f; +color: #304300; color: #304301; color: #304302; color: #304303; color: #304304; color: #304305; color: #304306; color: #304307; color: #304308; color: #304309; color: #30430a; color: #30430b; color: #30430c; color: #30430d; color: #30430e; color: #30430f; +color: #304400; color: #304401; color: #304402; color: #304403; color: #304404; color: #304405; color: #304406; color: #304407; color: #304408; color: #304409; color: #30440a; color: #30440b; color: #30440c; color: #30440d; color: #30440e; color: #30440f; +color: #304500; color: #304501; color: #304502; color: #304503; color: #304504; color: #304505; color: #304506; color: #304507; color: #304508; color: #304509; color: #30450a; color: #30450b; color: #30450c; color: #30450d; color: #30450e; color: #30450f; +color: #304600; color: #304601; color: #304602; color: #304603; color: #304604; color: #304605; color: #304606; color: #304607; color: #304608; color: #304609; color: #30460a; color: #30460b; color: #30460c; color: #30460d; color: #30460e; color: #30460f; +color: #304700; color: #304701; color: #304702; color: #304703; color: #304704; color: #304705; color: #304706; color: #304707; color: #304708; color: #304709; color: #30470a; color: #30470b; color: #30470c; color: #30470d; color: #30470e; color: #30470f; +color: #304800; color: #304801; color: #304802; color: #304803; color: #304804; color: #304805; color: #304806; color: #304807; color: #304808; color: #304809; color: #30480a; color: #30480b; color: #30480c; color: #30480d; color: #30480e; color: #30480f; +color: #304900; color: #304901; color: #304902; color: #304903; color: #304904; color: #304905; color: #304906; color: #304907; color: #304908; color: #304909; color: #30490a; color: #30490b; color: #30490c; color: #30490d; color: #30490e; color: #30490f; +color: #304a00; color: #304a01; color: #304a02; color: #304a03; color: #304a04; color: #304a05; color: #304a06; color: #304a07; color: #304a08; color: #304a09; color: #304a0a; color: #304a0b; color: #304a0c; color: #304a0d; color: #304a0e; color: #304a0f; +color: #304b00; color: #304b01; color: #304b02; color: #304b03; color: #304b04; color: #304b05; color: #304b06; color: #304b07; color: #304b08; color: #304b09; color: #304b0a; color: #304b0b; color: #304b0c; color: #304b0d; color: #304b0e; color: #304b0f; +color: #304c00; color: #304c01; color: #304c02; color: #304c03; color: #304c04; color: #304c05; color: #304c06; color: #304c07; color: #304c08; color: #304c09; color: #304c0a; color: #304c0b; color: #304c0c; color: #304c0d; color: #304c0e; color: #304c0f; +color: #304d00; color: #304d01; color: #304d02; color: #304d03; color: #304d04; color: #304d05; color: #304d06; color: #304d07; color: #304d08; color: #304d09; color: #304d0a; color: #304d0b; color: #304d0c; color: #304d0d; color: #304d0e; color: #304d0f; +color: #304e00; color: #304e01; color: #304e02; color: #304e03; color: #304e04; color: #304e05; color: #304e06; color: #304e07; color: #304e08; color: #304e09; color: #304e0a; color: #304e0b; color: #304e0c; color: #304e0d; color: #304e0e; color: #304e0f; +color: #304f00; color: #304f01; color: #304f02; color: #304f03; color: #304f04; color: #304f05; color: #304f06; color: #304f07; color: #304f08; color: #304f09; color: #304f0a; color: #304f0b; color: #304f0c; color: #304f0d; color: #304f0e; color: #304f0f; +color: #305000; color: #305001; color: #305002; color: #305003; color: #305004; color: #305005; color: #305006; color: #305007; color: #305008; color: #305009; color: #30500a; color: #30500b; color: #30500c; color: #30500d; color: #30500e; color: #30500f; +color: #305100; color: #305101; color: #305102; color: #305103; color: #305104; color: #305105; color: #305106; color: #305107; color: #305108; color: #305109; color: #30510a; color: #30510b; color: #30510c; color: #30510d; color: #30510e; color: #30510f; +color: #305200; color: #305201; color: #305202; color: #305203; color: #305204; color: #305205; color: #305206; color: #305207; color: #305208; color: #305209; color: #30520a; color: #30520b; color: #30520c; color: #30520d; color: #30520e; color: #30520f; +color: #305300; color: #305301; color: #305302; color: #305303; color: #305304; color: #305305; color: #305306; color: #305307; color: #305308; color: #305309; color: #30530a; color: #30530b; color: #30530c; color: #30530d; color: #30530e; color: #30530f; +color: #305400; color: #305401; color: #305402; color: #305403; color: #305404; color: #305405; color: #305406; color: #305407; color: #305408; color: #305409; color: #30540a; color: #30540b; color: #30540c; color: #30540d; color: #30540e; color: #30540f; +color: #305500; color: #305501; color: #305502; color: #305503; color: #305504; color: #305505; color: #305506; color: #305507; color: #305508; color: #305509; color: #30550a; color: #30550b; color: #30550c; color: #30550d; color: #30550e; color: #30550f; +color: #305600; color: #305601; color: #305602; color: #305603; color: #305604; color: #305605; color: #305606; color: #305607; color: #305608; color: #305609; color: #30560a; color: #30560b; color: #30560c; color: #30560d; color: #30560e; color: #30560f; +color: #305700; color: #305701; color: #305702; color: #305703; color: #305704; color: #305705; color: #305706; color: #305707; color: #305708; color: #305709; color: #30570a; color: #30570b; color: #30570c; color: #30570d; color: #30570e; color: #30570f; +color: #305800; color: #305801; color: #305802; color: #305803; color: #305804; color: #305805; color: #305806; color: #305807; color: #305808; color: #305809; color: #30580a; color: #30580b; color: #30580c; color: #30580d; color: #30580e; color: #30580f; +color: #305900; color: #305901; color: #305902; color: #305903; color: #305904; color: #305905; color: #305906; color: #305907; color: #305908; color: #305909; color: #30590a; color: #30590b; color: #30590c; color: #30590d; color: #30590e; color: #30590f; +color: #305a00; color: #305a01; color: #305a02; color: #305a03; color: #305a04; color: #305a05; color: #305a06; color: #305a07; color: #305a08; color: #305a09; color: #305a0a; color: #305a0b; color: #305a0c; color: #305a0d; color: #305a0e; color: #305a0f; +color: #305b00; color: #305b01; color: #305b02; color: #305b03; color: #305b04; color: #305b05; color: #305b06; color: #305b07; color: #305b08; color: #305b09; color: #305b0a; color: #305b0b; color: #305b0c; color: #305b0d; color: #305b0e; color: #305b0f; +color: #305c00; color: #305c01; color: #305c02; color: #305c03; color: #305c04; color: #305c05; color: #305c06; color: #305c07; color: #305c08; color: #305c09; color: #305c0a; color: #305c0b; color: #305c0c; color: #305c0d; color: #305c0e; color: #305c0f; +color: #305d00; color: #305d01; color: #305d02; color: #305d03; color: #305d04; color: #305d05; color: #305d06; color: #305d07; color: #305d08; color: #305d09; color: #305d0a; color: #305d0b; color: #305d0c; color: #305d0d; color: #305d0e; color: #305d0f; +color: #305e00; color: #305e01; color: #305e02; color: #305e03; color: #305e04; color: #305e05; color: #305e06; color: #305e07; color: #305e08; color: #305e09; color: #305e0a; color: #305e0b; color: #305e0c; color: #305e0d; color: #305e0e; color: #305e0f; +color: #305f00; color: #305f01; color: #305f02; color: #305f03; color: #305f04; color: #305f05; color: #305f06; color: #305f07; color: #305f08; color: #305f09; color: #305f0a; color: #305f0b; color: #305f0c; color: #305f0d; color: #305f0e; color: #305f0f; +color: #306000; color: #306001; color: #306002; color: #306003; color: #306004; color: #306005; color: #306006; color: #306007; color: #306008; color: #306009; color: #30600a; color: #30600b; color: #30600c; color: #30600d; color: #30600e; color: #30600f; +color: #306100; color: #306101; color: #306102; color: #306103; color: #306104; color: #306105; color: #306106; color: #306107; color: #306108; color: #306109; color: #30610a; color: #30610b; color: #30610c; color: #30610d; color: #30610e; color: #30610f; +color: #306200; color: #306201; color: #306202; color: #306203; color: #306204; color: #306205; color: #306206; color: #306207; color: #306208; color: #306209; color: #30620a; color: #30620b; color: #30620c; color: #30620d; color: #30620e; color: #30620f; +color: #306300; color: #306301; color: #306302; color: #306303; color: #306304; color: #306305; color: #306306; color: #306307; color: #306308; color: #306309; color: #30630a; color: #30630b; color: #30630c; color: #30630d; color: #30630e; color: #30630f; +color: #306400; color: #306401; color: #306402; color: #306403; color: #306404; color: #306405; color: #306406; color: #306407; color: #306408; color: #306409; color: #30640a; color: #30640b; color: #30640c; color: #30640d; color: #30640e; color: #30640f; +color: #306500; color: #306501; color: #306502; color: #306503; color: #306504; color: #306505; color: #306506; color: #306507; color: #306508; color: #306509; color: #30650a; color: #30650b; color: #30650c; color: #30650d; color: #30650e; color: #30650f; +color: #306600; color: #306601; color: #306602; color: #306603; color: #306604; color: #306605; color: #306606; color: #306607; color: #306608; color: #306609; color: #30660a; color: #30660b; color: #30660c; color: #30660d; color: #30660e; color: #30660f; +color: #306700; color: #306701; color: #306702; color: #306703; color: #306704; color: #306705; color: #306706; color: #306707; color: #306708; color: #306709; color: #30670a; color: #30670b; color: #30670c; color: #30670d; color: #30670e; color: #30670f; +color: #306800; color: #306801; color: #306802; color: #306803; color: #306804; color: #306805; color: #306806; color: #306807; color: #306808; color: #306809; color: #30680a; color: #30680b; color: #30680c; color: #30680d; color: #30680e; color: #30680f; +color: #306900; color: #306901; color: #306902; color: #306903; color: #306904; color: #306905; color: #306906; color: #306907; color: #306908; color: #306909; color: #30690a; color: #30690b; color: #30690c; color: #30690d; color: #30690e; color: #30690f; +color: #306a00; color: #306a01; color: #306a02; color: #306a03; color: #306a04; color: #306a05; color: #306a06; color: #306a07; color: #306a08; color: #306a09; color: #306a0a; color: #306a0b; color: #306a0c; color: #306a0d; color: #306a0e; color: #306a0f; +color: #306b00; color: #306b01; color: #306b02; color: #306b03; color: #306b04; color: #306b05; color: #306b06; color: #306b07; color: #306b08; color: #306b09; color: #306b0a; color: #306b0b; color: #306b0c; color: #306b0d; color: #306b0e; color: #306b0f; +color: #306c00; color: #306c01; color: #306c02; color: #306c03; color: #306c04; color: #306c05; color: #306c06; color: #306c07; color: #306c08; color: #306c09; color: #306c0a; color: #306c0b; color: #306c0c; color: #306c0d; color: #306c0e; color: #306c0f; +color: #306d00; color: #306d01; color: #306d02; color: #306d03; color: #306d04; color: #306d05; color: #306d06; color: #306d07; color: #306d08; color: #306d09; color: #306d0a; color: #306d0b; color: #306d0c; color: #306d0d; color: #306d0e; color: #306d0f; +color: #306e00; color: #306e01; color: #306e02; color: #306e03; color: #306e04; color: #306e05; color: #306e06; color: #306e07; color: #306e08; color: #306e09; color: #306e0a; color: #306e0b; color: #306e0c; color: #306e0d; color: #306e0e; color: #306e0f; +color: #306f00; color: #306f01; color: #306f02; color: #306f03; color: #306f04; color: #306f05; color: #306f06; color: #306f07; color: #306f08; color: #306f09; color: #306f0a; color: #306f0b; color: #306f0c; color: #306f0d; color: #306f0e; color: #306f0f; +color: #307000; color: #307001; color: #307002; color: #307003; color: #307004; color: #307005; color: #307006; color: #307007; color: #307008; color: #307009; color: #30700a; color: #30700b; color: #30700c; color: #30700d; color: #30700e; color: #30700f; +color: #307100; color: #307101; color: #307102; color: #307103; color: #307104; color: #307105; color: #307106; color: #307107; color: #307108; color: #307109; color: #30710a; color: #30710b; color: #30710c; color: #30710d; color: #30710e; color: #30710f; +color: #307200; color: #307201; color: #307202; color: #307203; color: #307204; color: #307205; color: #307206; color: #307207; color: #307208; color: #307209; color: #30720a; color: #30720b; color: #30720c; color: #30720d; color: #30720e; color: #30720f; +color: #307300; color: #307301; color: #307302; color: #307303; color: #307304; color: #307305; color: #307306; color: #307307; color: #307308; color: #307309; color: #30730a; color: #30730b; color: #30730c; color: #30730d; color: #30730e; color: #30730f; +color: #307400; color: #307401; color: #307402; color: #307403; color: #307404; color: #307405; color: #307406; color: #307407; color: #307408; color: #307409; color: #30740a; color: #30740b; color: #30740c; color: #30740d; color: #30740e; color: #30740f; +color: #307500; color: #307501; color: #307502; color: #307503; color: #307504; color: #307505; color: #307506; color: #307507; color: #307508; color: #307509; color: #30750a; color: #30750b; color: #30750c; color: #30750d; color: #30750e; color: #30750f; +color: #307600; color: #307601; color: #307602; color: #307603; color: #307604; color: #307605; color: #307606; color: #307607; color: #307608; color: #307609; color: #30760a; color: #30760b; color: #30760c; color: #30760d; color: #30760e; color: #30760f; +color: #307700; color: #307701; color: #307702; color: #307703; color: #307704; color: #307705; color: #307706; color: #307707; color: #307708; color: #307709; color: #30770a; color: #30770b; color: #30770c; color: #30770d; color: #30770e; color: #30770f; +color: #307800; color: #307801; color: #307802; color: #307803; color: #307804; color: #307805; color: #307806; color: #307807; color: #307808; color: #307809; color: #30780a; color: #30780b; color: #30780c; color: #30780d; color: #30780e; color: #30780f; +color: #307900; color: #307901; color: #307902; color: #307903; color: #307904; color: #307905; color: #307906; color: #307907; color: #307908; color: #307909; color: #30790a; color: #30790b; color: #30790c; color: #30790d; color: #30790e; color: #30790f; +color: #307a00; color: #307a01; color: #307a02; color: #307a03; color: #307a04; color: #307a05; color: #307a06; color: #307a07; color: #307a08; color: #307a09; color: #307a0a; color: #307a0b; color: #307a0c; color: #307a0d; color: #307a0e; color: #307a0f; +color: #307b00; color: #307b01; color: #307b02; color: #307b03; color: #307b04; color: #307b05; color: #307b06; color: #307b07; color: #307b08; color: #307b09; color: #307b0a; color: #307b0b; color: #307b0c; color: #307b0d; color: #307b0e; color: #307b0f; +color: #307c00; color: #307c01; color: #307c02; color: #307c03; color: #307c04; color: #307c05; color: #307c06; color: #307c07; color: #307c08; color: #307c09; color: #307c0a; color: #307c0b; color: #307c0c; color: #307c0d; color: #307c0e; color: #307c0f; +color: #307d00; color: #307d01; color: #307d02; color: #307d03; color: #307d04; color: #307d05; color: #307d06; color: #307d07; color: #307d08; color: #307d09; color: #307d0a; color: #307d0b; color: #307d0c; color: #307d0d; color: #307d0e; color: #307d0f; +color: #307e00; color: #307e01; color: #307e02; color: #307e03; color: #307e04; color: #307e05; color: #307e06; color: #307e07; color: #307e08; color: #307e09; color: #307e0a; color: #307e0b; color: #307e0c; color: #307e0d; color: #307e0e; color: #307e0f; +color: #307f00; color: #307f01; color: #307f02; color: #307f03; color: #307f04; color: #307f05; color: #307f06; color: #307f07; color: #307f08; color: #307f09; color: #307f0a; color: #307f0b; color: #307f0c; color: #307f0d; color: #307f0e; color: #307f0f; +color: #308000; color: #308001; color: #308002; color: #308003; color: #308004; color: #308005; color: #308006; color: #308007; color: #308008; color: #308009; color: #30800a; color: #30800b; color: #30800c; color: #30800d; color: #30800e; color: #30800f; +color: #308100; color: #308101; color: #308102; color: #308103; color: #308104; color: #308105; color: #308106; color: #308107; color: #308108; color: #308109; color: #30810a; color: #30810b; color: #30810c; color: #30810d; color: #30810e; color: #30810f; +color: #308200; color: #308201; color: #308202; color: #308203; color: #308204; color: #308205; color: #308206; color: #308207; color: #308208; color: #308209; color: #30820a; color: #30820b; color: #30820c; color: #30820d; color: #30820e; color: #30820f; +color: #308300; color: #308301; color: #308302; color: #308303; color: #308304; color: #308305; color: #308306; color: #308307; color: #308308; color: #308309; color: #30830a; color: #30830b; color: #30830c; color: #30830d; color: #30830e; color: #30830f; +color: #308400; color: #308401; color: #308402; color: #308403; color: #308404; color: #308405; color: #308406; color: #308407; color: #308408; color: #308409; color: #30840a; color: #30840b; color: #30840c; color: #30840d; color: #30840e; color: #30840f; +color: #308500; color: #308501; color: #308502; color: #308503; color: #308504; color: #308505; color: #308506; color: #308507; color: #308508; color: #308509; color: #30850a; color: #30850b; color: #30850c; color: #30850d; color: #30850e; color: #30850f; +color: #308600; color: #308601; color: #308602; color: #308603; color: #308604; color: #308605; color: #308606; color: #308607; color: #308608; color: #308609; color: #30860a; color: #30860b; color: #30860c; color: #30860d; color: #30860e; color: #30860f; +color: #308700; color: #308701; color: #308702; color: #308703; color: #308704; color: #308705; color: #308706; color: #308707; color: #308708; color: #308709; color: #30870a; color: #30870b; color: #30870c; color: #30870d; color: #30870e; color: #30870f; +color: #308800; color: #308801; color: #308802; color: #308803; color: #308804; color: #308805; color: #308806; color: #308807; color: #308808; color: #308809; color: #30880a; color: #30880b; color: #30880c; color: #30880d; color: #30880e; color: #30880f; +color: #308900; color: #308901; color: #308902; color: #308903; color: #308904; color: #308905; color: #308906; color: #308907; color: #308908; color: #308909; color: #30890a; color: #30890b; color: #30890c; color: #30890d; color: #30890e; color: #30890f; +color: #308a00; color: #308a01; color: #308a02; color: #308a03; color: #308a04; color: #308a05; color: #308a06; color: #308a07; color: #308a08; color: #308a09; color: #308a0a; color: #308a0b; color: #308a0c; color: #308a0d; color: #308a0e; color: #308a0f; +color: #308b00; color: #308b01; color: #308b02; color: #308b03; color: #308b04; color: #308b05; color: #308b06; color: #308b07; color: #308b08; color: #308b09; color: #308b0a; color: #308b0b; color: #308b0c; color: #308b0d; color: #308b0e; color: #308b0f; +color: #308c00; color: #308c01; color: #308c02; color: #308c03; color: #308c04; color: #308c05; color: #308c06; color: #308c07; color: #308c08; color: #308c09; color: #308c0a; color: #308c0b; color: #308c0c; color: #308c0d; color: #308c0e; color: #308c0f; +color: #308d00; color: #308d01; color: #308d02; color: #308d03; color: #308d04; color: #308d05; color: #308d06; color: #308d07; color: #308d08; color: #308d09; color: #308d0a; color: #308d0b; color: #308d0c; color: #308d0d; color: #308d0e; color: #308d0f; +color: #308e00; color: #308e01; color: #308e02; color: #308e03; color: #308e04; color: #308e05; color: #308e06; color: #308e07; color: #308e08; color: #308e09; color: #308e0a; color: #308e0b; color: #308e0c; color: #308e0d; color: #308e0e; color: #308e0f; +color: #308f00; color: #308f01; color: #308f02; color: #308f03; color: #308f04; color: #308f05; color: #308f06; color: #308f07; color: #308f08; color: #308f09; color: #308f0a; color: #308f0b; color: #308f0c; color: #308f0d; color: #308f0e; color: #308f0f; +color: #309000; color: #309001; color: #309002; color: #309003; color: #309004; color: #309005; color: #309006; color: #309007; color: #309008; color: #309009; color: #30900a; color: #30900b; color: #30900c; color: #30900d; color: #30900e; color: #30900f; +color: #309100; color: #309101; color: #309102; color: #309103; color: #309104; color: #309105; color: #309106; color: #309107; color: #309108; color: #309109; color: #30910a; color: #30910b; color: #30910c; color: #30910d; color: #30910e; color: #30910f; +color: #309200; color: #309201; color: #309202; color: #309203; color: #309204; color: #309205; color: #309206; color: #309207; color: #309208; color: #309209; color: #30920a; color: #30920b; color: #30920c; color: #30920d; color: #30920e; color: #30920f; +color: #309300; color: #309301; color: #309302; color: #309303; color: #309304; color: #309305; color: #309306; color: #309307; color: #309308; color: #309309; color: #30930a; color: #30930b; color: #30930c; color: #30930d; color: #30930e; color: #30930f; +color: #309400; color: #309401; color: #309402; color: #309403; color: #309404; color: #309405; color: #309406; color: #309407; color: #309408; color: #309409; color: #30940a; color: #30940b; color: #30940c; color: #30940d; color: #30940e; color: #30940f; +color: #309500; color: #309501; color: #309502; color: #309503; color: #309504; color: #309505; color: #309506; color: #309507; color: #309508; color: #309509; color: #30950a; color: #30950b; color: #30950c; color: #30950d; color: #30950e; color: #30950f; +color: #309600; color: #309601; color: #309602; color: #309603; color: #309604; color: #309605; color: #309606; color: #309607; color: #309608; color: #309609; color: #30960a; color: #30960b; color: #30960c; color: #30960d; color: #30960e; color: #30960f; +color: #309700; color: #309701; color: #309702; color: #309703; color: #309704; color: #309705; color: #309706; color: #309707; color: #309708; color: #309709; color: #30970a; color: #30970b; color: #30970c; color: #30970d; color: #30970e; color: #30970f; +color: #309800; color: #309801; color: #309802; color: #309803; color: #309804; color: #309805; color: #309806; color: #309807; color: #309808; color: #309809; color: #30980a; color: #30980b; color: #30980c; color: #30980d; color: #30980e; color: #30980f; +color: #309900; color: #309901; color: #309902; color: #309903; color: #309904; color: #309905; color: #309906; color: #309907; color: #309908; color: #309909; color: #30990a; color: #30990b; color: #30990c; color: #30990d; color: #30990e; color: #30990f; +color: #309a00; color: #309a01; color: #309a02; color: #309a03; color: #309a04; color: #309a05; color: #309a06; color: #309a07; color: #309a08; color: #309a09; color: #309a0a; color: #309a0b; color: #309a0c; color: #309a0d; color: #309a0e; color: #309a0f; +color: #309b00; color: #309b01; color: #309b02; color: #309b03; color: #309b04; color: #309b05; color: #309b06; color: #309b07; color: #309b08; color: #309b09; color: #309b0a; color: #309b0b; color: #309b0c; color: #309b0d; color: #309b0e; color: #309b0f; +color: #309c00; color: #309c01; color: #309c02; color: #309c03; color: #309c04; color: #309c05; color: #309c06; color: #309c07; color: #309c08; color: #309c09; color: #309c0a; color: #309c0b; color: #309c0c; color: #309c0d; color: #309c0e; color: #309c0f; +color: #309d00; color: #309d01; color: #309d02; color: #309d03; color: #309d04; color: #309d05; color: #309d06; color: #309d07; color: #309d08; color: #309d09; color: #309d0a; color: #309d0b; color: #309d0c; color: #309d0d; color: #309d0e; color: #309d0f; +color: #309e00; color: #309e01; color: #309e02; color: #309e03; color: #309e04; color: #309e05; color: #309e06; color: #309e07; color: #309e08; color: #309e09; color: #309e0a; color: #309e0b; color: #309e0c; color: #309e0d; color: #309e0e; color: #309e0f; +color: #309f00; color: #309f01; color: #309f02; color: #309f03; color: #309f04; color: #309f05; color: #309f06; color: #309f07; color: #309f08; color: #309f09; color: #309f0a; color: #309f0b; color: #309f0c; color: #309f0d; color: #309f0e; color: #309f0f; +color: #30a000; color: #30a001; color: #30a002; color: #30a003; color: #30a004; color: #30a005; color: #30a006; color: #30a007; color: #30a008; color: #30a009; color: #30a00a; color: #30a00b; color: #30a00c; color: #30a00d; color: #30a00e; color: #30a00f; +color: #30a100; color: #30a101; color: #30a102; color: #30a103; color: #30a104; color: #30a105; color: #30a106; color: #30a107; color: #30a108; color: #30a109; color: #30a10a; color: #30a10b; color: #30a10c; color: #30a10d; color: #30a10e; color: #30a10f; +color: #30a200; color: #30a201; color: #30a202; color: #30a203; color: #30a204; color: #30a205; color: #30a206; color: #30a207; color: #30a208; color: #30a209; color: #30a20a; color: #30a20b; color: #30a20c; color: #30a20d; color: #30a20e; color: #30a20f; +color: #30a300; color: #30a301; color: #30a302; color: #30a303; color: #30a304; color: #30a305; color: #30a306; color: #30a307; color: #30a308; color: #30a309; color: #30a30a; color: #30a30b; color: #30a30c; color: #30a30d; color: #30a30e; color: #30a30f; +color: #30a400; color: #30a401; color: #30a402; color: #30a403; color: #30a404; color: #30a405; color: #30a406; color: #30a407; color: #30a408; color: #30a409; color: #30a40a; color: #30a40b; color: #30a40c; color: #30a40d; color: #30a40e; color: #30a40f; +color: #30a500; color: #30a501; color: #30a502; color: #30a503; color: #30a504; color: #30a505; color: #30a506; color: #30a507; color: #30a508; color: #30a509; color: #30a50a; color: #30a50b; color: #30a50c; color: #30a50d; color: #30a50e; color: #30a50f; +color: #30a600; color: #30a601; color: #30a602; color: #30a603; color: #30a604; color: #30a605; color: #30a606; color: #30a607; color: #30a608; color: #30a609; color: #30a60a; color: #30a60b; color: #30a60c; color: #30a60d; color: #30a60e; color: #30a60f; +color: #30a700; color: #30a701; color: #30a702; color: #30a703; color: #30a704; color: #30a705; color: #30a706; color: #30a707; color: #30a708; color: #30a709; color: #30a70a; color: #30a70b; color: #30a70c; color: #30a70d; color: #30a70e; color: #30a70f; +color: #30a800; color: #30a801; color: #30a802; color: #30a803; color: #30a804; color: #30a805; color: #30a806; color: #30a807; color: #30a808; color: #30a809; color: #30a80a; color: #30a80b; color: #30a80c; color: #30a80d; color: #30a80e; color: #30a80f; +color: #30a900; color: #30a901; color: #30a902; color: #30a903; color: #30a904; color: #30a905; color: #30a906; color: #30a907; color: #30a908; color: #30a909; color: #30a90a; color: #30a90b; color: #30a90c; color: #30a90d; color: #30a90e; color: #30a90f; +color: #30aa00; color: #30aa01; color: #30aa02; color: #30aa03; color: #30aa04; color: #30aa05; color: #30aa06; color: #30aa07; color: #30aa08; color: #30aa09; color: #30aa0a; color: #30aa0b; color: #30aa0c; color: #30aa0d; color: #30aa0e; color: #30aa0f; +color: #30ab00; color: #30ab01; color: #30ab02; color: #30ab03; color: #30ab04; color: #30ab05; color: #30ab06; color: #30ab07; color: #30ab08; color: #30ab09; color: #30ab0a; color: #30ab0b; color: #30ab0c; color: #30ab0d; color: #30ab0e; color: #30ab0f; +color: #30ac00; color: #30ac01; color: #30ac02; color: #30ac03; color: #30ac04; color: #30ac05; color: #30ac06; color: #30ac07; color: #30ac08; color: #30ac09; color: #30ac0a; color: #30ac0b; color: #30ac0c; color: #30ac0d; color: #30ac0e; color: #30ac0f; +color: #30ad00; color: #30ad01; color: #30ad02; color: #30ad03; color: #30ad04; color: #30ad05; color: #30ad06; color: #30ad07; color: #30ad08; color: #30ad09; color: #30ad0a; color: #30ad0b; color: #30ad0c; color: #30ad0d; color: #30ad0e; color: #30ad0f; +color: #30ae00; color: #30ae01; color: #30ae02; color: #30ae03; color: #30ae04; color: #30ae05; color: #30ae06; color: #30ae07; color: #30ae08; color: #30ae09; color: #30ae0a; color: #30ae0b; color: #30ae0c; color: #30ae0d; color: #30ae0e; color: #30ae0f; +color: #30af00; color: #30af01; color: #30af02; color: #30af03; color: #30af04; color: #30af05; color: #30af06; color: #30af07; color: #30af08; color: #30af09; color: #30af0a; color: #30af0b; color: #30af0c; color: #30af0d; color: #30af0e; color: #30af0f; +color: #30b000; color: #30b001; color: #30b002; color: #30b003; color: #30b004; color: #30b005; color: #30b006; color: #30b007; color: #30b008; color: #30b009; color: #30b00a; color: #30b00b; color: #30b00c; color: #30b00d; color: #30b00e; color: #30b00f; +color: #30b100; color: #30b101; color: #30b102; color: #30b103; color: #30b104; color: #30b105; color: #30b106; color: #30b107; color: #30b108; color: #30b109; color: #30b10a; color: #30b10b; color: #30b10c; color: #30b10d; color: #30b10e; color: #30b10f; +color: #30b200; color: #30b201; color: #30b202; color: #30b203; color: #30b204; color: #30b205; color: #30b206; color: #30b207; color: #30b208; color: #30b209; color: #30b20a; color: #30b20b; color: #30b20c; color: #30b20d; color: #30b20e; color: #30b20f; +color: #30b300; color: #30b301; color: #30b302; color: #30b303; color: #30b304; color: #30b305; color: #30b306; color: #30b307; color: #30b308; color: #30b309; color: #30b30a; color: #30b30b; color: #30b30c; color: #30b30d; color: #30b30e; color: #30b30f; +color: #30b400; color: #30b401; color: #30b402; color: #30b403; color: #30b404; color: #30b405; color: #30b406; color: #30b407; color: #30b408; color: #30b409; color: #30b40a; color: #30b40b; color: #30b40c; color: #30b40d; color: #30b40e; color: #30b40f; +color: #30b500; color: #30b501; color: #30b502; color: #30b503; color: #30b504; color: #30b505; color: #30b506; color: #30b507; color: #30b508; color: #30b509; color: #30b50a; color: #30b50b; color: #30b50c; color: #30b50d; color: #30b50e; color: #30b50f; +color: #30b600; color: #30b601; color: #30b602; color: #30b603; color: #30b604; color: #30b605; color: #30b606; color: #30b607; color: #30b608; color: #30b609; color: #30b60a; color: #30b60b; color: #30b60c; color: #30b60d; color: #30b60e; color: #30b60f; +color: #30b700; color: #30b701; color: #30b702; color: #30b703; color: #30b704; color: #30b705; color: #30b706; color: #30b707; color: #30b708; color: #30b709; color: #30b70a; color: #30b70b; color: #30b70c; color: #30b70d; color: #30b70e; color: #30b70f; +color: #30b800; color: #30b801; color: #30b802; color: #30b803; color: #30b804; color: #30b805; color: #30b806; color: #30b807; color: #30b808; color: #30b809; color: #30b80a; color: #30b80b; color: #30b80c; color: #30b80d; color: #30b80e; color: #30b80f; +color: #30b900; color: #30b901; color: #30b902; color: #30b903; color: #30b904; color: #30b905; color: #30b906; color: #30b907; color: #30b908; color: #30b909; color: #30b90a; color: #30b90b; color: #30b90c; color: #30b90d; color: #30b90e; color: #30b90f; +color: #30ba00; color: #30ba01; color: #30ba02; color: #30ba03; color: #30ba04; color: #30ba05; color: #30ba06; color: #30ba07; color: #30ba08; color: #30ba09; color: #30ba0a; color: #30ba0b; color: #30ba0c; color: #30ba0d; color: #30ba0e; color: #30ba0f; +color: #30bb00; color: #30bb01; color: #30bb02; color: #30bb03; color: #30bb04; color: #30bb05; color: #30bb06; color: #30bb07; color: #30bb08; color: #30bb09; color: #30bb0a; color: #30bb0b; color: #30bb0c; color: #30bb0d; color: #30bb0e; color: #30bb0f; +color: #30bc00; color: #30bc01; color: #30bc02; color: #30bc03; color: #30bc04; color: #30bc05; color: #30bc06; color: #30bc07; color: #30bc08; color: #30bc09; color: #30bc0a; color: #30bc0b; color: #30bc0c; color: #30bc0d; color: #30bc0e; color: #30bc0f; +color: #30bd00; color: #30bd01; color: #30bd02; color: #30bd03; color: #30bd04; color: #30bd05; color: #30bd06; color: #30bd07; color: #30bd08; color: #30bd09; color: #30bd0a; color: #30bd0b; color: #30bd0c; color: #30bd0d; color: #30bd0e; color: #30bd0f; +color: #30be00; color: #30be01; color: #30be02; color: #30be03; color: #30be04; color: #30be05; color: #30be06; color: #30be07; color: #30be08; color: #30be09; color: #30be0a; color: #30be0b; color: #30be0c; color: #30be0d; color: #30be0e; color: #30be0f; +color: #30bf00; color: #30bf01; color: #30bf02; color: #30bf03; color: #30bf04; color: #30bf05; color: #30bf06; color: #30bf07; color: #30bf08; color: #30bf09; color: #30bf0a; color: #30bf0b; color: #30bf0c; color: #30bf0d; color: #30bf0e; color: #30bf0f; +color: #30c000; color: #30c001; color: #30c002; color: #30c003; color: #30c004; color: #30c005; color: #30c006; color: #30c007; color: #30c008; color: #30c009; color: #30c00a; color: #30c00b; color: #30c00c; color: #30c00d; color: #30c00e; color: #30c00f; +color: #30c100; color: #30c101; color: #30c102; color: #30c103; color: #30c104; color: #30c105; color: #30c106; color: #30c107; color: #30c108; color: #30c109; color: #30c10a; color: #30c10b; color: #30c10c; color: #30c10d; color: #30c10e; color: #30c10f; +color: #30c200; color: #30c201; color: #30c202; color: #30c203; color: #30c204; color: #30c205; color: #30c206; color: #30c207; color: #30c208; color: #30c209; color: #30c20a; color: #30c20b; color: #30c20c; color: #30c20d; color: #30c20e; color: #30c20f; +color: #30c300; color: #30c301; color: #30c302; color: #30c303; color: #30c304; color: #30c305; color: #30c306; color: #30c307; color: #30c308; color: #30c309; color: #30c30a; color: #30c30b; color: #30c30c; color: #30c30d; color: #30c30e; color: #30c30f; +color: #30c400; color: #30c401; color: #30c402; color: #30c403; color: #30c404; color: #30c405; color: #30c406; color: #30c407; color: #30c408; color: #30c409; color: #30c40a; color: #30c40b; color: #30c40c; color: #30c40d; color: #30c40e; color: #30c40f; +color: #30c500; color: #30c501; color: #30c502; color: #30c503; color: #30c504; color: #30c505; color: #30c506; color: #30c507; color: #30c508; color: #30c509; color: #30c50a; color: #30c50b; color: #30c50c; color: #30c50d; color: #30c50e; color: #30c50f; +color: #30c600; color: #30c601; color: #30c602; color: #30c603; color: #30c604; color: #30c605; color: #30c606; color: #30c607; color: #30c608; color: #30c609; color: #30c60a; color: #30c60b; color: #30c60c; color: #30c60d; color: #30c60e; color: #30c60f; +color: #30c700; color: #30c701; color: #30c702; color: #30c703; color: #30c704; color: #30c705; color: #30c706; color: #30c707; color: #30c708; color: #30c709; color: #30c70a; color: #30c70b; color: #30c70c; color: #30c70d; color: #30c70e; color: #30c70f; +color: #30c800; color: #30c801; color: #30c802; color: #30c803; color: #30c804; color: #30c805; color: #30c806; color: #30c807; color: #30c808; color: #30c809; color: #30c80a; color: #30c80b; color: #30c80c; color: #30c80d; color: #30c80e; color: #30c80f; +color: #30c900; color: #30c901; color: #30c902; color: #30c903; color: #30c904; color: #30c905; color: #30c906; color: #30c907; color: #30c908; color: #30c909; color: #30c90a; color: #30c90b; color: #30c90c; color: #30c90d; color: #30c90e; color: #30c90f; +color: #30ca00; color: #30ca01; color: #30ca02; color: #30ca03; color: #30ca04; color: #30ca05; color: #30ca06; color: #30ca07; color: #30ca08; color: #30ca09; color: #30ca0a; color: #30ca0b; color: #30ca0c; color: #30ca0d; color: #30ca0e; color: #30ca0f; +color: #30cb00; color: #30cb01; color: #30cb02; color: #30cb03; color: #30cb04; color: #30cb05; color: #30cb06; color: #30cb07; color: #30cb08; color: #30cb09; color: #30cb0a; color: #30cb0b; color: #30cb0c; color: #30cb0d; color: #30cb0e; color: #30cb0f; +color: #30cc00; color: #30cc01; color: #30cc02; color: #30cc03; color: #30cc04; color: #30cc05; color: #30cc06; color: #30cc07; color: #30cc08; color: #30cc09; color: #30cc0a; color: #30cc0b; color: #30cc0c; color: #30cc0d; color: #30cc0e; color: #30cc0f; +color: #30cd00; color: #30cd01; color: #30cd02; color: #30cd03; color: #30cd04; color: #30cd05; color: #30cd06; color: #30cd07; color: #30cd08; color: #30cd09; color: #30cd0a; color: #30cd0b; color: #30cd0c; color: #30cd0d; color: #30cd0e; color: #30cd0f; +color: #30ce00; color: #30ce01; color: #30ce02; color: #30ce03; color: #30ce04; color: #30ce05; color: #30ce06; color: #30ce07; color: #30ce08; color: #30ce09; color: #30ce0a; color: #30ce0b; color: #30ce0c; color: #30ce0d; color: #30ce0e; color: #30ce0f; +color: #30cf00; color: #30cf01; color: #30cf02; color: #30cf03; color: #30cf04; color: #30cf05; color: #30cf06; color: #30cf07; color: #30cf08; color: #30cf09; color: #30cf0a; color: #30cf0b; color: #30cf0c; color: #30cf0d; color: #30cf0e; color: #30cf0f; +color: #30d000; color: #30d001; color: #30d002; color: #30d003; color: #30d004; color: #30d005; color: #30d006; color: #30d007; color: #30d008; color: #30d009; color: #30d00a; color: #30d00b; color: #30d00c; color: #30d00d; color: #30d00e; color: #30d00f; +color: #30d100; color: #30d101; color: #30d102; color: #30d103; color: #30d104; color: #30d105; color: #30d106; color: #30d107; color: #30d108; color: #30d109; color: #30d10a; color: #30d10b; color: #30d10c; color: #30d10d; color: #30d10e; color: #30d10f; +color: #30d200; color: #30d201; color: #30d202; color: #30d203; color: #30d204; color: #30d205; color: #30d206; color: #30d207; color: #30d208; color: #30d209; color: #30d20a; color: #30d20b; color: #30d20c; color: #30d20d; color: #30d20e; color: #30d20f; +color: #30d300; color: #30d301; color: #30d302; color: #30d303; color: #30d304; color: #30d305; color: #30d306; color: #30d307; color: #30d308; color: #30d309; color: #30d30a; color: #30d30b; color: #30d30c; color: #30d30d; color: #30d30e; color: #30d30f; +color: #30d400; color: #30d401; color: #30d402; color: #30d403; color: #30d404; color: #30d405; color: #30d406; color: #30d407; color: #30d408; color: #30d409; color: #30d40a; color: #30d40b; color: #30d40c; color: #30d40d; color: #30d40e; color: #30d40f; +color: #30d500; color: #30d501; color: #30d502; color: #30d503; color: #30d504; color: #30d505; color: #30d506; color: #30d507; color: #30d508; color: #30d509; color: #30d50a; color: #30d50b; color: #30d50c; color: #30d50d; color: #30d50e; color: #30d50f; +color: #30d600; color: #30d601; color: #30d602; color: #30d603; color: #30d604; color: #30d605; color: #30d606; color: #30d607; color: #30d608; color: #30d609; color: #30d60a; color: #30d60b; color: #30d60c; color: #30d60d; color: #30d60e; color: #30d60f; +color: #30d700; color: #30d701; color: #30d702; color: #30d703; color: #30d704; color: #30d705; color: #30d706; color: #30d707; color: #30d708; color: #30d709; color: #30d70a; color: #30d70b; color: #30d70c; color: #30d70d; color: #30d70e; color: #30d70f; +color: #30d800; color: #30d801; color: #30d802; color: #30d803; color: #30d804; color: #30d805; color: #30d806; color: #30d807; color: #30d808; color: #30d809; color: #30d80a; color: #30d80b; color: #30d80c; color: #30d80d; color: #30d80e; color: #30d80f; +color: #30d900; color: #30d901; color: #30d902; color: #30d903; color: #30d904; color: #30d905; color: #30d906; color: #30d907; color: #30d908; color: #30d909; color: #30d90a; color: #30d90b; color: #30d90c; color: #30d90d; color: #30d90e; color: #30d90f; +color: #30da00; color: #30da01; color: #30da02; color: #30da03; color: #30da04; color: #30da05; color: #30da06; color: #30da07; color: #30da08; color: #30da09; color: #30da0a; color: #30da0b; color: #30da0c; color: #30da0d; color: #30da0e; color: #30da0f; +color: #30db00; color: #30db01; color: #30db02; color: #30db03; color: #30db04; color: #30db05; color: #30db06; color: #30db07; color: #30db08; color: #30db09; color: #30db0a; color: #30db0b; color: #30db0c; color: #30db0d; color: #30db0e; color: #30db0f; +color: #30dc00; color: #30dc01; color: #30dc02; color: #30dc03; color: #30dc04; color: #30dc05; color: #30dc06; color: #30dc07; color: #30dc08; color: #30dc09; color: #30dc0a; color: #30dc0b; color: #30dc0c; color: #30dc0d; color: #30dc0e; color: #30dc0f; +color: #30dd00; color: #30dd01; color: #30dd02; color: #30dd03; color: #30dd04; color: #30dd05; color: #30dd06; color: #30dd07; color: #30dd08; color: #30dd09; color: #30dd0a; color: #30dd0b; color: #30dd0c; color: #30dd0d; color: #30dd0e; color: #30dd0f; +color: #30de00; color: #30de01; color: #30de02; color: #30de03; color: #30de04; color: #30de05; color: #30de06; color: #30de07; color: #30de08; color: #30de09; color: #30de0a; color: #30de0b; color: #30de0c; color: #30de0d; color: #30de0e; color: #30de0f; +color: #30df00; color: #30df01; color: #30df02; color: #30df03; color: #30df04; color: #30df05; color: #30df06; color: #30df07; color: #30df08; color: #30df09; color: #30df0a; color: #30df0b; color: #30df0c; color: #30df0d; color: #30df0e; color: #30df0f; +color: #30e000; color: #30e001; color: #30e002; color: #30e003; color: #30e004; color: #30e005; color: #30e006; color: #30e007; color: #30e008; color: #30e009; color: #30e00a; color: #30e00b; color: #30e00c; color: #30e00d; color: #30e00e; color: #30e00f; +color: #30e100; color: #30e101; color: #30e102; color: #30e103; color: #30e104; color: #30e105; color: #30e106; color: #30e107; color: #30e108; color: #30e109; color: #30e10a; color: #30e10b; color: #30e10c; color: #30e10d; color: #30e10e; color: #30e10f; +color: #30e200; color: #30e201; color: #30e202; color: #30e203; color: #30e204; color: #30e205; color: #30e206; color: #30e207; color: #30e208; color: #30e209; color: #30e20a; color: #30e20b; color: #30e20c; color: #30e20d; color: #30e20e; color: #30e20f; +color: #30e300; color: #30e301; color: #30e302; color: #30e303; color: #30e304; color: #30e305; color: #30e306; color: #30e307; color: #30e308; color: #30e309; color: #30e30a; color: #30e30b; color: #30e30c; color: #30e30d; color: #30e30e; color: #30e30f; +color: #30e400; color: #30e401; color: #30e402; color: #30e403; color: #30e404; color: #30e405; color: #30e406; color: #30e407; color: #30e408; color: #30e409; color: #30e40a; color: #30e40b; color: #30e40c; color: #30e40d; color: #30e40e; color: #30e40f; +color: #30e500; color: #30e501; color: #30e502; color: #30e503; color: #30e504; color: #30e505; color: #30e506; color: #30e507; color: #30e508; color: #30e509; color: #30e50a; color: #30e50b; color: #30e50c; color: #30e50d; color: #30e50e; color: #30e50f; +color: #30e600; color: #30e601; color: #30e602; color: #30e603; color: #30e604; color: #30e605; color: #30e606; color: #30e607; color: #30e608; color: #30e609; color: #30e60a; color: #30e60b; color: #30e60c; color: #30e60d; color: #30e60e; color: #30e60f; +color: #30e700; color: #30e701; color: #30e702; color: #30e703; color: #30e704; color: #30e705; color: #30e706; color: #30e707; color: #30e708; color: #30e709; color: #30e70a; color: #30e70b; color: #30e70c; color: #30e70d; color: #30e70e; color: #30e70f; +color: #30e800; color: #30e801; color: #30e802; color: #30e803; color: #30e804; color: #30e805; color: #30e806; color: #30e807; color: #30e808; color: #30e809; color: #30e80a; color: #30e80b; color: #30e80c; color: #30e80d; color: #30e80e; color: #30e80f; +color: #30e900; color: #30e901; color: #30e902; color: #30e903; color: #30e904; color: #30e905; color: #30e906; color: #30e907; color: #30e908; color: #30e909; color: #30e90a; color: #30e90b; color: #30e90c; color: #30e90d; color: #30e90e; color: #30e90f; +color: #30ea00; color: #30ea01; color: #30ea02; color: #30ea03; color: #30ea04; color: #30ea05; color: #30ea06; color: #30ea07; color: #30ea08; color: #30ea09; color: #30ea0a; color: #30ea0b; color: #30ea0c; color: #30ea0d; color: #30ea0e; color: #30ea0f; +color: #30eb00; color: #30eb01; color: #30eb02; color: #30eb03; color: #30eb04; color: #30eb05; color: #30eb06; color: #30eb07; color: #30eb08; color: #30eb09; color: #30eb0a; color: #30eb0b; color: #30eb0c; color: #30eb0d; color: #30eb0e; color: #30eb0f; +color: #30ec00; color: #30ec01; color: #30ec02; color: #30ec03; color: #30ec04; color: #30ec05; color: #30ec06; color: #30ec07; color: #30ec08; color: #30ec09; color: #30ec0a; color: #30ec0b; color: #30ec0c; color: #30ec0d; color: #30ec0e; color: #30ec0f; +color: #30ed00; color: #30ed01; color: #30ed02; color: #30ed03; color: #30ed04; color: #30ed05; color: #30ed06; color: #30ed07; color: #30ed08; color: #30ed09; color: #30ed0a; color: #30ed0b; color: #30ed0c; color: #30ed0d; color: #30ed0e; color: #30ed0f; +color: #30ee00; color: #30ee01; color: #30ee02; color: #30ee03; color: #30ee04; color: #30ee05; color: #30ee06; color: #30ee07; color: #30ee08; color: #30ee09; color: #30ee0a; color: #30ee0b; color: #30ee0c; color: #30ee0d; color: #30ee0e; color: #30ee0f; +color: #30ef00; color: #30ef01; color: #30ef02; color: #30ef03; color: #30ef04; color: #30ef05; color: #30ef06; color: #30ef07; color: #30ef08; color: #30ef09; color: #30ef0a; color: #30ef0b; color: #30ef0c; color: #30ef0d; color: #30ef0e; color: #30ef0f; +color: #30f000; color: #30f001; color: #30f002; color: #30f003; color: #30f004; color: #30f005; color: #30f006; color: #30f007; color: #30f008; color: #30f009; color: #30f00a; color: #30f00b; color: #30f00c; color: #30f00d; color: #30f00e; color: #30f00f; +color: #30f100; color: #30f101; color: #30f102; color: #30f103; color: #30f104; color: #30f105; color: #30f106; color: #30f107; color: #30f108; color: #30f109; color: #30f10a; color: #30f10b; color: #30f10c; color: #30f10d; color: #30f10e; color: #30f10f; +color: #30f200; color: #30f201; color: #30f202; color: #30f203; color: #30f204; color: #30f205; color: #30f206; color: #30f207; color: #30f208; color: #30f209; color: #30f20a; color: #30f20b; color: #30f20c; color: #30f20d; color: #30f20e; color: #30f20f; +color: #30f300; color: #30f301; color: #30f302; color: #30f303; color: #30f304; color: #30f305; color: #30f306; color: #30f307; color: #30f308; color: #30f309; color: #30f30a; color: #30f30b; color: #30f30c; color: #30f30d; color: #30f30e; color: #30f30f; +color: #30f400; color: #30f401; color: #30f402; color: #30f403; color: #30f404; color: #30f405; color: #30f406; color: #30f407; color: #30f408; color: #30f409; color: #30f40a; color: #30f40b; color: #30f40c; color: #30f40d; color: #30f40e; color: #30f40f; +color: #30f500; color: #30f501; color: #30f502; color: #30f503; color: #30f504; color: #30f505; color: #30f506; color: #30f507; color: #30f508; color: #30f509; color: #30f50a; color: #30f50b; color: #30f50c; color: #30f50d; color: #30f50e; color: #30f50f; +color: #30f600; color: #30f601; color: #30f602; color: #30f603; color: #30f604; color: #30f605; color: #30f606; color: #30f607; color: #30f608; color: #30f609; color: #30f60a; color: #30f60b; color: #30f60c; color: #30f60d; color: #30f60e; color: #30f60f; +color: #30f700; color: #30f701; color: #30f702; color: #30f703; color: #30f704; color: #30f705; color: #30f706; color: #30f707; color: #30f708; color: #30f709; color: #30f70a; color: #30f70b; color: #30f70c; color: #30f70d; color: #30f70e; color: #30f70f; +color: #30f800; color: #30f801; color: #30f802; color: #30f803; color: #30f804; color: #30f805; color: #30f806; color: #30f807; color: #30f808; color: #30f809; color: #30f80a; color: #30f80b; color: #30f80c; color: #30f80d; color: #30f80e; color: #30f80f; +color: #30f900; color: #30f901; color: #30f902; color: #30f903; color: #30f904; color: #30f905; color: #30f906; color: #30f907; color: #30f908; color: #30f909; color: #30f90a; color: #30f90b; color: #30f90c; color: #30f90d; color: #30f90e; color: #30f90f; +color: #30fa00; color: #30fa01; color: #30fa02; color: #30fa03; color: #30fa04; color: #30fa05; color: #30fa06; color: #30fa07; color: #30fa08; color: #30fa09; color: #30fa0a; color: #30fa0b; color: #30fa0c; color: #30fa0d; color: #30fa0e; color: #30fa0f; +color: #30fb00; color: #30fb01; color: #30fb02; color: #30fb03; color: #30fb04; color: #30fb05; color: #30fb06; color: #30fb07; color: #30fb08; color: #30fb09; color: #30fb0a; color: #30fb0b; color: #30fb0c; color: #30fb0d; color: #30fb0e; color: #30fb0f; +color: #30fc00; color: #30fc01; color: #30fc02; color: #30fc03; color: #30fc04; color: #30fc05; color: #30fc06; color: #30fc07; color: #30fc08; color: #30fc09; color: #30fc0a; color: #30fc0b; color: #30fc0c; color: #30fc0d; color: #30fc0e; color: #30fc0f; +color: #30fd00; color: #30fd01; color: #30fd02; color: #30fd03; color: #30fd04; color: #30fd05; color: #30fd06; color: #30fd07; color: #30fd08; color: #30fd09; color: #30fd0a; color: #30fd0b; color: #30fd0c; color: #30fd0d; color: #30fd0e; color: #30fd0f; +color: #30fe00; color: #30fe01; color: #30fe02; color: #30fe03; color: #30fe04; color: #30fe05; color: #30fe06; color: #30fe07; color: #30fe08; color: #30fe09; color: #30fe0a; color: #30fe0b; color: #30fe0c; color: #30fe0d; color: #30fe0e; color: #30fe0f; +color: #30ff00; color: #30ff01; color: #30ff02; color: #30ff03; color: #30ff04; color: #30ff05; color: #30ff06; color: #30ff07; color: #30ff08; color: #30ff09; color: #30ff0a; color: #30ff0b; color: #30ff0c; color: #30ff0d; color: #30ff0e; color: #30ff0f; }